Creu pynciau ar gyfer grwpiau Meetup

Kostas Stathoulopoulos | June 15, 2017

Mae cyfarfodydd Meetup technoleg yn ffordd ragorol i bobl o ddisgyblaethau gwahanol gyfarfod, cyfnewid syniadau, dysgu oddi wrth ei gilydd a rhwydweithio. Gall y cysylltiadau hyn arwain at achosion posib o gydweithio sy’n effeithio ar arloesi mewn ecosystem. Platfform yw Meetup.com lle gall pobl drefnu a mynychu digwyddiadau. Yn Arloesiadur, defnyddiom brosesu iaith naturiol a theori graff i ddadansoddi’r ffynhonnell ddata hon, deall strwythur a diddordebau’r gymuned dechnoleg yng Nghymru a nodi technolegau addawol. Atebom y cwestiynau canlynol:

  • Beth yw’r tueddiadau rhwydweithio technoleg yng Nghymru?
  • Beth yw strwythur rhwydwaith y gymuned dechnoleg yng Nghymru?
  • Sut mae’r rhwydweithiau technoleg hyn wedi newid gydag amser?
  • Beth yw’r cysylltiadau rhwng cymunedau technoleg Cymru a rhannau eraill o’r Deyrnas Unedig?

Casglu Data

Sefydlwyd Meetup yn 2002. Defnyddiom ei API i gasglu gwybodaeth am grwpiau, digwyddiadau a defnyddwyr cofrestredig ym maes technoleg, ar gyfer dinasoedd y Deyrnas Unedig yn unig. Yn benodol, edrychom ar ddata 2,878 o grwpiau, 972,413 o ddefnyddwyr a 38,929 o ddigwyddiadau unigryw. Er mai 2006-2016 oedd ffrâm amser y set ddata, canolbwyntiom ar y cyfnod rhwng 2012 a 2016 gan nad oedd Cymru wedi datblygu unrhyw weithgarwch ar y platfform hwn cyn hynny. Dylid nodi y crëwyd 80% o grwpiau Meetup yn y Deyrnas Unedig yn y cyfnod hwn. Mae grwpiau Meetup yn defnyddio tagiau i nodi eu meysydd ffocws yn benodol, a nodom 3725 o dagiau unigryw. Er bod tagiau yn cynnig ffordd fanwl i archwilio cymuned dechnoleg, mae’r ffaith bod nifer fawr ohonynt yn bodoli yn cymhlethu’r arfer o adnabod tueddiadau a rhwydweithiau ehangach o gydweithio. Dyma pam y bu inni eu cyfuno i greu pynciau lefel uwch.

Yn y blog hwn, disgrifiwn sut y creom hierarchaeth y tagiau, y pynciau a’r categorïau eang. Mae’r hierarchaeth hon yn creu cyswllt rhwng grwpiau Meetup â meysydd gweithgarwch er mwyn ateb y cwestiynau uchod.

Paratoi data

Defnyddiom brosesu iaith naturiol a dysgu heb oruchwyliaeth i glystyru’r tagiau a ymddangosai mewn cyd-destun tebyg, ac wedyn dyrannu grwpiau Meetup i’r clystyrau hyn yn ôl y tagiau a ddefnyddiwyd ganddynt.

I gychwyn, rhoesom y tagiau mewn llythrennau is, a’u gwahanu gan ddefnyddio mynegiadau rheolaidd. Wedyn creom N-gramau os oedd y tagiau yn cynnwys rhagor nag un gair. Er enghraifft, nid hollti’r tag “big data” yn ddau air a wnaed; yn hytrach, crëwyd y bigram “big_data”. Yn olaf, ffurfiom frawddegau artiffisial lle’r oedd pob brawddeg yn cynnwys tagiau wedi’u rhagbrosesu a ddefnyddiwyd i labelu grŵp Meetup gan ei berchennog.

O dagiau i bynciau

Bwydom y casgliad hwn o docynnau fesul brawddeg i word2vec, sef rhwydwaith newral bas sy’n canfod cynrychioliad fector dwys geiriau. O ganlyniad, mae geiriau a ddefnyddir mewn cyd-destun tebyg yn ymddangos yn agosach yn y gofod fector mewn ffordd y mae modd ei fesur. Mae’r tabl canlynol yn rhoi enghraifft o’r tocynnau a ganfuwyd yn yr un cyd-destun.

<table>

Er y gall y model hyfforddedig gipio tebygrwydd termau penodol, mae’r fectorau allbwn wedi’u lluniau ar ofod 350 dimensiwn sy’n golygu mai amhosib yw dehongli a delweddu’r canlyniadau. Roedd modd goresgyn yr anhawster hwn drwy ddefnyddio t-SNE, techneg lleihau dimensiynedd sy’n addas iawn i daflunio fectorau mewn gofod dau ddimensiwn, ond gan gadw pwyntiau tebyg yn agos at ei gilydd. Mae modd plotio canlyniad y dull hwn ar blot gwasgariad lle y bydd pwyntiau tebyg i’w gweld yn agosach at ei gilydd na’r rhai annhebyg.

Wedyn defnyddiwn fodel Cymysgedd Gauss i glystyru pwyntiau’r gofod 2D drwy ddysgu dosraniad tebygolrwydd gwahanol is-boblogaethau sy’n bodoli yn y set. Yn y clystyrau a gynhyrchir, mae pob clwstwr yn gasgliad o dagiau sy’n cynrychioli’r pynciau y mae’r grwpiau Meetup yn weithredol ynddynt. At ei gilydd, nodwyd 42 o bynciau, ac fe’u labelwyd â llaw gan mai nifer cymharol fach ohonynt oedd.

Cynrychioliad dau ddimensiwn o dagiau Meetup. Mae tagiau o’r un lliw yn perthyn i’r un clwstwr, a labelwyd pob un ohonynt â llaw. Yn yr Arloesiadur, cyfunwyd y 42 o bynciau a nodwyd i greu 9 categori eang er mwyn lleihau cymhlethdod y delweddau rhyngweithiol.
Cynrychioliad dau ddimensiwn o dagiau Meetup. Mae tagiau o’r un lliw yn perthyn i’r un clwstwr, a labelwyd pob un ohonynt â llaw. Yn yr Arloesiadur, cyfunwyd y 42 o bynciau a nodwyd i greu 9 categori eang er mwyn lleihau cymhlethdod y delweddau rhyngweithiol.

Neilltuo grwpiau Meetup i bynciau

Nid yw pob tag yn rhoi dealltwriaeth inni o weithgareddau grŵp. Pan fo tag yn ymddangos mewn grwpiau lluosog, y mae fel arfer yn derm eang iawn nad yw o gymorth inni wahaniaethu rhwng yr hyn mae gwahanol grwpiau Meetup yn gwneud. Mae tocynnau megis new_technology, web_development, web_technology a software_development, yn perthyn i’r categori generig hwn. Defnyddiom bwysau TF-IDF (Amlder Term, Amlder Dogfen Gwrthdro) i fesur pwysigrwydd tocyn mewn dogfen, lle mai dogfen yw set o dagiau grŵp Meetup. Gall tocynnau sydd â phwysau TF-IDF uchel ein helpu i gategoreiddio gweithgareddau grŵp, tra bo’r rhai sydd â phwysau TF-IDF isel i’w canfod mewn dogfennau lluosog ac felly heb fod o gymorth mawr i segmentu grwpiau.

Ar y llaw arall, pan fo tag yn ymddangos mewn llond dwrn o grwpiau yn unig, caiff ei ystyried yn brin iawn ac nid yw o fudd i nodi pynciau eang. Yn Arloesiadur, gwaredom 1,752 o dagiau a ddefnyddiwyd gan lai na phum grŵp.

Hyd yma, roeddem wedi clystyru tagiau Meetup a dewis y rhai a gâi eu defnyddio i ddosbarthu grwpiau Meetup i bynciau technoleg. Rhan olaf ein dadansoddiad oedd canfod pwysau’r pynciau ar gyfer pob grŵp Meetup. Aethom i’r afael â hyn drwy fesur nifer y tocynnau sydd â’r un label pwnc mewn grŵp fel cyfran o’i holl docynnau. O ganlyniad, caiff pob grŵp Meetup ei ddisgrifio gan ddosbarthiad o bynciau, lle mae pob pwnc yn gasgliad o dagiau.

 

Rhai pethau i fod yn ymwybodol ohonynt:

  • Hyfforddwyd word2vec gan ddefnyddio tagiau holl grwpiau Meetup y Deyrnas Unedig. Gwnaethom hyn gan fod y model yn cyd-fynd yn dda iawn â maint y set ddata.
  • Wrth hyfforddi word2vec, anwybyddom y tagiau a ymddangosai mewn llai na 5 grŵp. Yn benodol, gosodom y trothwy ar gyfer gorbaramedr min_count, a ddefnyddir i anwybyddu’r holl eiriau sy’n llai nag ef, yn hafal i bump.
  • Dewiswyd nifer y clystyrau yn GMM gan ddefnyddio Meini Prawf Gwybodaeth Bayesaidd (BIC) a sgôr silwét.
  • I gychwyn, nid oes gan y clystyrau o dagiau label. Er bod llawer o lenyddiaeth ar sut i fynd i’r afael â labelu pynciau, penderfynom eu labelu â llaw am fod y nifer yn fach.
  • Yn Ffig. 1, y mae tri chlwstwr nad oedd modd inni ddod o hyd i label gyffredin ar eu cyfer. Tynnwyd hwy, a’u tagiau, o’r dadansoddiad.

Cyfyngiadau

  • Mae Word2vec wedi’i hyfforddi ar eirfa benodol o dagiau sy’n cipio eu defnydd cyfredol. Ond bydd gofyn ailhyfforddi’r model i ymestyn maint ei eirfa a deall pa mor aml y caiff y tagiau eu defnyddio.
  • Gan fod yn rhaid ailhyfforddi word2vec, bydd cynrychioliad fector y tagiau yn wahanol. Felly bydd yn rhaid hyfforddi ac optimeiddio unwaith eto gan leihau dimensiynedd gyda t-SNE a chlystyru gyda GMM.
Yn ôl i'r brig