k47.cz
výběr kolo foto Praha povídky kultura
TECH ▞▞ | twitter RSS
««« »»»

Podobnosti & doporučování 3

12. 12. 2019 — k47

Asi takhle: Zase jsem tady na k47čce o něco málo vy­lep­šil do­po­ru­čo­vání po­dob­ných článků. Pod ka­po­tou sále tiká velice ne­bez­pečná ~~~UMĚLÁ IN­TE­LI­GENCE~~~, na tom se nic ne­změ­nilo, teď je jen o něco málo in­te­li­gent­nější a o něco blíž re­voltě nad pa­te­tic­kými pytli masa, které mají tu drzost se ozna­čo­vat jako homo sa­pi­ens. A když říkám umě-int, myslím tím al­go­rit­mus word2vec z obou stran oba­lený pri­mi­tiv­ními ad-hoc funk­cemi.

Výběr pří­buz­ných textů má v 99% pří­padů pod palcem pro­gram za­lo­žený na počtu sdí­le­ných štítků, tagů a ka­te­go­rií, který fun­guje docela dobře. Pouze v pří­padě, že tyto chybí, se ke slovu do­sta­nou al­ter­na­tivy, do kte­rých se řadí i teď vy­lep­šený al­go­rit­mus.

První verze po­dob­nosti zjiš­ťo­vala jen za pomoci klí­čo­vých slov. Druhá při­dala word2vec pro ex­panzi se­znamu klí­čo­vých ter­mínů o sy­no­nyma. Třetí verze před­sta­vo­vala ne­ú­spěšný pokus s cluste­ro­vá­ním. Snažil jsem se slova s pomocí word2vec slou­čit do clus­terů a pak pra­co­vat s nimi. To ne­fun­go­valo z důvodů, které jsou teď víc než jasné.

V dalším kroku jsem pak za­ho­dil jed­no­du­chý Jac­car­dův index a pro vý­po­čet po­dob­ností použil přímo word2vec. Bylo to na jednu stranu jed­no­du­ché, spo­lečné klí­čové slovo bylo za­po­čí­táno nejen, když dva články sdí­lely iden­tický termín, ale i v pří­pa­dech, kdy ob­sa­ho­valy slova je­jichž vek­tory měly po­dob­nost nad ur­či­tou mezí. Na druhou stranu to zna­me­nalo značné zpo­ma­lení vý­po­čtu po­dob­nosti. Na­jed­nou bylo nutné pro­vést O(n2) ska­lár­ních sou­činů, ne jen jed­noho Jac­carda, který běží v čase O(n+m).

Po­slední kolo úprav pak za­hr­no­valo ladění funkce při­dě­lu­jící váhu jed­not­li­vým slovům. Ta hraje klí­čo­vou roli v de­tekci klí­čo­vých slov – ter­míny s velkou váhou jsou po­va­žo­vány za klí­čové. Nešlo o žádné stro­jové učení, pro­tože stroj se nic nového ne­na­u­čil. Po­stu­po­val jsem stylem pokus/omyl, in­terní ma­chi­nace al­go­ritmu pod drob­no­hle­dem, pa­ra­me­try od­ha­lené den­nímu světlu, snažil jsem se jim po­ro­zu­mět, udělat si v nich po­řá­dek a vědomě je upra­vit do podoby, kdy fun­go­valy. Jestli se někdo něco naučil pak jsem to byl já, nikoli stroj, a roz­hodně nešlo o nic nového.

Shodou náhod jsem ne­dávno četl raný paper za­bý­va­jící se pro­blé­mem au­to­ma­tické ex­trakce ano­tací. Jeho autor na­vr­ho­val velice po­dobný způsob vážení klí­čo­vých slov, jako napadl mě. Jen on (Hans Peter Luhn, na­ro­zený 1896, ne­zá­visle na ostat­ních ob­je­vil hash ta­bulku) to navrhl v roce 1959. Takové zjiš­tění mi vždy dodá jis­totu. Když ti nej­lepší z nej­lep­ších přišli na něco po­dob­ného, zna­mená to, že i když jdu s kříž­kem po funuse, nejsem úplně mimo.

Jinak mi při­padá, že teď de­tekce re­le­vant­ních článků jen na zá­kladě textu fun­guje docela dobře. Ke ±kaž­dému článku najde aspoň něco re­le­vant­ního a ne­stává se, že by na prv­ních příč­kách skon­čily zcela zcestné texty (v žar­gonu sta­tis­tiků: nízký recall, ale dobrá pre­ci­sion) a mohla by celkem efek­tivně na­hra­dit po­dob­nosti na zá­kladě tagů a ta­xo­no­mie.

Iro­nicky, pro­blém je jen v tom, že nej­lepší vý­sledky podává na člán­cích, které jsou již ota­go­vané. Když má text jasné téma, tak ono téma také vy­zna­čím ně­ja­kým tagem. Na­proti tomu te­ma­ticky mlhavé články, kterým nej­čas­těji chybí tag, ne­ob­sa­hují ani jasně roz­li­šu­jící klí­čová slova.

píše k47 & hosté, ascii@k47.cz