Hogyan lesz előítéletes az AI? Erre keressük a választ magyar alternatív zenekarok dalszövegeiből készített szóbeágyazási modellt hívva segítségül. A szóbeágyazási modellt ezen az interaktív vizualizáción keresztül lehet felfedezni, de lentebb azt is elmondjuk, hogy mely szavak jellemzőbbek inkább a fiúkra, melyek a lányokra - legalábbis az underground dalszerzői szerint.
A word2vec egy nagyon jó dolog! A szóbeágyazási modelleket egyre több helyen tudjuk használni. ezért egyáltalán nem mindegy, milyen adatokon tanítjuk be. Pár éve még a The Unreasonable Effectiveness of Data nyomán úgy gondoltuk, hogy ha netről (meg más forrásokból) sok adatot gyűjtünk, akkor nem tévedhetünk, az adatok majd vezetni fognak minket. Azonban az adatokat mi emberek gyűjtjük saját magunkról, így - ahogy arról már a nyesten is írtunk - az adatokba igen gyakran belekerülnek saját előítéleteink, melyeket azután a rajtuk trénelt algoritmusok vissza is adnak. Jó példa erre a Google szentimentelemzője is, ami nagyon érdekes értékeket rendelt egyes mondatokhoz, ahogy a Motherboard példái is mutatják:
Nagyon szeretjük a pretrained modelleket, különösen ha klasszifikációról van szó. Ezek általában a Wikipedia-ról és/vagy híroldalakról gyűjtött adatokon vannak betanítva. Gondolhatnánk, hogy egy enciklopédia vagy egy objektivitásra törekvő híroldal biztos torzításoktól mentes. Olyan tanulmányoknak köszönhetően mint pl. a Man is to Computer Programmer as Woman is to Homemaker? Debiasing Word Embeddings azonban rájöttünk, ez koránt sem igaz - az összes előítéletünk megjelenik ezekben a modellekben. Szerencsére tehetünk ellene, ha akarunk.
Mennyire érhetjük tetten ezeket a torzításokat (bias) a magyar szövegekben? Honnét tudjuk, hogy rendben van a korpuszunk? Mi van, ha nincs olyan sok adatunk, amin megéri egy word2vec modellt trénelni. Ilyen kérdések foglalkoztatnak minket mostanában.
Az a tapasztalatunk, hogy a word2vec igazán akkor működik jól, ha tényleg sok adatunk van. Ha nem ez a helyzet, akkor jól jön a régi kölcsönös információ (pointwise mutual information), de eleve a szóbeágyazási modellek ezeket közelítik és az iparban nagyon népszerű manapság egy poszt, ami amellett érvel, hogy hagyjuk a fenébe a word2vec-et, térjünk vissza a jól bevált eszközeinkhez.
Egy korábbi projektünkhöz 24 magyar alternatív zenekar 1503 számának szövegét gyűjtöttük le. Ahogy manapság mindenki teszi, mi is implementáltuk magunknak a word2vec pótlékunkat a posztot követve. A szövegeket a modellbe téve a szokásos algebrai műveletek elvégezhetőek. Nézzük mely szavak állnak inkább a 'fiú' szóhoz közelebb:
fiú - lány
('ész_NOUN', 0.6413571868189918)
('ház_NOUN', 0.6394038735224673)
('mintha_SCONJ', 0.6356254038639404)
('kör_NOUN', 0.6347388228382129)
('fekete_ADJ', 0.6340567298146321)
És akkor nézzük mely szavak állnak közel a "lány"-hoz:
lány - fiú
('munka_NOUN', 0.13039697590585775),
('hagy_VERB', 0.10222601358418776),
('éppen_ADV', 0.09844298177559987),
('vesz_VERB', 0.09752982783571493)
('hát_ADV', 0.05191687249170514)
Nézzünk egy példát analógiára:
fiú ~ lány = kisfiú ~ X
pikkelyes_ADJ 1.4021871931471783
látva_ADV 1.3847004769180082
rió_NOUN 1.3657105563904626
andrea_PROPN 1.365663414523725
tánctér_NOUN 1.3635914156567344
Mi a kislányt vártuk volna, de hát a magyar underground nem adta! Viszont mint minden rendes szóbeágyazási modellt, ezt is be lehet varázsolni a TensorFlow csodás Embedding Projector alkalmazásába, szóval fel is tettük a modellt, itt lehet nézegetni.
Ha a Bookmarks résznél rákattintunk a tsne-re, akkor bejön az előre beállított kis vizunk is.
Jobb oldalon pedig lehet a szavakra keresni és legközelebbi szomszédaikra szűrni.
Hamarosan más szereplők megnyilvánulásaiból származó korpuszon részletesebben is bemutatjuk eredményeinket!