Skrivene značajke u sustavima preporučivanja

Autor: Adrian Satja Kurdija

Kao jedna od značajnijih ideja umjetne inteligencije u posljednjih desetak godina rabe se vektorske reprezentacije. Riječi, proizvodi, filmovi, korisnici i razni drugi entiteti predstavljaju se vektorima. Vektor je niz realnih brojeva odabrane duljine i često ga ne možemo lako interpretirati: vizualni pregled niza od nekoliko stotina brojeva koji predstavljaju neku riječ, primjerice u Word2vec [1] reprezentaciji, kao “slučajnom čitatelju” ne znači nam ništa. No poanta leži u međusobnom odnosu pojedinih reprezentacija; njihovim sličnostima, razlikama, udaljenostima i drugim relacijama, koje razumije i upotrebljava odgovarajući algoritam umjetne inteligencije.

Recimo, značenjski odnosi među riječima odgovaraju matematičkim odnosima među vektorima koji predstavljaju te riječi. Kao primjeri takvih relacija među Word2vec reprezentacijama ponekad se navode man : boy = woman : girl ili Paris — France + Italy = Rome ili Scientist — Einstein + Picasso = Painter ili Windows — Microsoft + Google = Android. (Razumijevanje unutar ljudskog mozga vjerojatno se zasniva na sličnim odnosima, među drugačijim reprezentacijama o kojima ne znamo mnogo.) Nedavno se pojavio i bolji model, Googleov BERT [3], koji uz pomoć neuronske mreže zvane Transformer uzima u obzir kontekst za svaku pojavu zadane riječi. Na primjer, dok će riječ running imati istu Word2vec reprezentaciju za obje pojave u rečenicama “He is running a company” i “He is running a marathon”, BERT će pružiti kontekstualiziranu reprezentaciju koja će ovisiti o rečenici.

Vektori mogu opisivati i osobe. Primjerice, vrhovi (engl. nodes) velikog grafa koji predstavlja društvenu mrežu mogu se također “zakodirati” metodom Node2vec [4] na način da bliski vrhovi imaju bliske reprezentacije, koje se onda upotrebljavaju za klasifikaciju, predviđanje interesa, budućih poveznica i slično.

Za preporučivanje sadržaja u sustavima poput Amazona, Netflixa, YouTubea i sličnih, za razliku od grafa, povezanosti između korisnika nisu eksplicitno zadane, nego sličnosti korisnika proizlaze iz njihovog ponašanja: na što klikću, što gledaju, što “lajkaju”, kako ocjenjuju pojedine proizvode i slično. Ako sustav zaključi da Ana i Marko imaju slične interese, preporučit će Ani ono što je gledao Marko. Slično, ako proizvode P i Q preferira sličan skup korisnika, onda će korisniku kojemu se svidio P preporučiti i Q. Postoji više načina na koje se ove ideje mogu matematički ostvariti. Jedan je eksplicitno računanje sličnosti korisnika/proizvoda (npr. Pearsonovim koeficijentom korelacije), nakon čega se za procjenu interesa za par (korisnik A, proizvod P) uzima težinski prosjek interesa za parove (korisnik A, sličan proizvod P’) i/ili parove (sličan korisnik A’, proizvod P).

Novija i bolja ideja jest korištenje već spomenutih vektorskih reprezentacija za korisnike i proizvode. Te reprezentacije algoritam strojnog učenja “naštimava” na osnovi poznatih interesa, a upotrebljava za predviđanje nepoznatih interesa, na način da skalarni produkt vektora koji odgovara korisniku A i vektora koji odgovara proizvodu P bude (približno) jednak odgovarajućem interesu. Ta metoda naziva se matričnom faktorizacijom [5] jer se navedeni skalarni produkti mogu svesti na matrično množenje. Metoda se pojavila 2006. godine kada je pobijedila na Netflix Prize natjecanju za predviđanje korisničkih ocjena filmova. U međuvremenu su se pojavile i metode koje na reprezentacijama umjesto skalarnog produkta koriste neuronsku mrežu [6].

Slika 1. IZVOR: [5]. Karakterizacija filmova s obzirom na prve dvije dimenzije iz vektora skrivenih značajki.

Komponente (pojedini elementi) vektorske reprezentacije nazivaju se skrivenim značajkama (engl. latent features) jer ih ne definira čovjek, nego ih prirodno otkriva algoritam strojnog učenja i nije ih jednostavno interpretirati. Ipak, odgovarajućim naknadnim grupiranjem entiteta s obzirom na pojedine komponente možemo naslutiti njihovo značenje. Tako, kao na Slici 1, jedna komponenta (ovdje na x-osi) može mjeriti koliko je film “ozbiljan”, a neka druga komponenta (ovdje na y-osi) koliko je “neobičan” (odnosno “mainstream” na suprotnoj strani). Ako je riječ o korisniku, komponente opisuju njegove sklonosti istim karakteristikama pa se i oni smještaju u isti vektorski prostor. Komponente mogu opisivati i slabije definirane dimenzije, poput dubine razvoja glavnog lika ili predvidivosti raspleta, kao i potpuno neinterpretabilne dimenzije.

Sve ovo pomaže nam razumjeti dio onoga što i manji, a pogotovo veći internetski igrači poput Googlea i Facebooka mogu “znati o nama” kombinirajući podatke iz svih navedenih izvora: iz grafa društvenih veza, te iz interesa koje pokazujemo čitanjem ili gledanjem objava, videa, stranica i slično. Povijest naše aktivnosti ponegdje možemo i formalno obrisati, ali to su samo ulazni, sirovi podatci iz kojih se mogu izvesti “skrivene” brojčane reprezentacije koje nas jako dobro opisuju. Osim očitih dimenzija poput toga kakve sadržaje volimo, vektor od tisuću brojeva pridruženih nekom korisniku može nam opisati njegovu osobnost [7] — psihološke dimenzije poput ekstraverzije, discipliniranosti, ugodnosti, neurotičnosti, kreativnosti, a i one koje ne bismo ni razumjeli. Dok kompulzivno scrollamo u svakom trenutku dosade, neki brojači se povećavaju i neki čip poznaje nas bolje od nas samih.

Kolege s FER-a i ja u Consumer Computing Lab-u pokušali smo vektorske reprezentacije riječi upotrijebiti u svrhu izgradnje sustava preporučivanja kandidata za projekte/poslove. Konkretno, u članku [2] korisnički životopisi i opisi projekata predstavljaju se vektorima na osnovi brojčanih reprezentacija ključnih riječi (vještina) i onda odgovarajuće strukture podataka omogućuju brzo pretraživanje, tj. traženje najbližih susjeda zadanom vektoru.

Adrian Satja Kurdija
Fakultet elektrotehnike i računarstva, Sveučilište u Zagrebu
https://www.fer.unizg.hr/adrian_satja.kurdija
[email protected]

— — — — — — — — — — —
Reference i dodatni interesantni izvori:
[1] https://code.google.com/archive/p/word2vec/
[2] Building Vector Representations for Candidates and Projects in a CV Recommender System. Kurdija, Adrian Satja ; Afrić, Petar ; Šikić, Lucija ; Plejić, Boris ; Šilić, Marin ; Delač, Goran ; Vladimir, Klemo ; Srbljić, Siniša. 9th International Conference on Artificial Intelligence and Mobile Services — AIMS 2020. https://link.springer.com/chapter/10.1007/978-3-030-59605-7_2
[3] Devlin, Jacob, et al. “Bert: Pre-training of deep bidirectional transformers for language understanding” (2018), https://arxiv.org/pdf/1810.04805.pdf
[4] Grover, Aditya, and Jure Leskovec. “node2vec: Scalable feature learning for networks.” Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. 2016. https://dl.acm.org/doi/abs/10.1145/2939672.2939754
[5] Matrix factorization techniques for recommender systems. Y Koren, R Bell, C Volinsky. Computer, 2009. https://datajobs.com/data-science-repo/Recommender-Systems-[Netflix].pdf
[6] Steffen Rendle, Walid Krichene, Li Zhang, and John Anderson. 2020. Neural Collaborative Filtering vs. Matrix Factorization Revisited. In Fourteenth ACM Conference on Recommender Systems (RecSys ‘20). Association for Computing Machinery, New York, NY, USA, 240–248. https://doi.org/10.1145/3383313.3412488
[7] Computers judge personalities better than humans. Wu Youyou, Michal Kosinski, David Stillwell. Proceedings of the National Academy of Sciences Jan 2015, 112 (4) 1036–1040; DOI: 10.1073/pnas.1418680112. https://www.pnas.org/content/112/4/1036

Leave a Reply

Your email address will not be published. Required fields are marked *