A mátrix faktorizáció csapdája Buza Antal, B. Kis Piroska Összefoglalás Az utóbbi időben egyre több cikk, előadás sugallja, hogy az ajánlórendszerekben általánosságban is milyen jól használható a mátrix faktorizáció. Ez azonban csak bizonyos, nehezen ellenőrizhető feltételek teljesülése esetén van így és erre a szerzők sajnos többnyire nem szoktak kitérni. E cikkben példákat mutatunk be arra, hogy a szükséges feltételek vizsgálata nélkül, általánosságban a mátrix faktorizáció alkalmazása az ajánló rendszerekben igen súlyos tévedéshez, hibás következtetések levonásához vezethet. Abstract Recently, more and more papers and presentations suggest that the matrix factorization is a very usable tool for recommender systems. However, the usage of matrix factorization has a lot of hardly verifiable and controllable criteria which are unfortunately not mentioned by the authors in the most of the cases. The paper presents a few matrix factorizations in order to serve as examples for that the general application of the matrix factorization may led to false conclusions. Not knowing the conditions or without checking the strict conditions, the application of the matrix factorization for recommender systems may result unpredictable haphazard solutions. Bevezetés Az ajánlórendszerek olyan rendszerek, amelyek a korábban gyűjtött tapasztalatok felhasználásával igyekeznek megítélni, hogy a még nem tapasztalt esetekre vonatkozóan mekkora lehet az igény / a hatás. film1 film2 film3 film4 néző1 16 néző2 17 16 néző3 15 10 néző4 18 néző5 7 6 1. ábra: Pontszámok, ahogy a nézők a filmeket értékelték Ajánló rendszerekkel kapcsolatban az egyik leggyakrabban említett példa a filmekkel kapcsolatos ajánlattevő rendszer. A korábban gyűjtött tapasztalat ilyenkor azt jelenti, hogy aki már látott egy filmet az közli/rögzíti, hogy hány pontra értékeli az adott filmet. Ezek az értékelések táblázatba foglalhatók, így az 1. ábrán láthatóhoz hasonló táblázatot kapunk. A feladat pedig az, hogy derítsük ki nyilván minél nagyobb biztonsággal, hogy egy-egy néző az 1
általa még nem látott filmeket hogyan értékelné, mert eszerint célzottan és várhatóan eredményesen tudjuk felhívni rá a figyelmét. Más megfogalmazásban tehát a pontszámok alkotta mátrixban ki nem töltött helyekre jutó értékeket kellene minél nagyobb biztonsággal megállapítanunk. Az ajánlat megkeresésének módszerei A hiányzó értékek megállapítására többféle meggondolást is használhatunk. Az egyik például a legközelebbi szomszéd módszer(ek) alkalmazása. Ennek az az alapgondolata, hogy ha két egyed tulajdonságai példánkban a két néző filmekre vonatkozó véleménye sok ponton megegyező, vagy egymáshoz közeli, akkor feltételezhető, hogy a nem ismert értékek is egyezőek, vagy legalábbis hasonlóak. Ezt a módszert többen kritizálják és hivatkoznak olyan tapasztalati példákra, melyek szerint e módszer a gyakorlatban nem mindig szolgáltat megfelelő értéket. Több szerző (Koren at al., 2009; Forbes és Zhu, 2011; Takács et al., 2008) ajánlja a mátrix faktorizáció módszerét, és néhány gyakorlati tapasztalattal támasztja alá ennek használhatóságát. A mátrix faktorizáció módszerek lényege abban áll, hogy keressünk olyan mátrixokat, amelyek szorzata az ismert helyeken éppen az ismert vagy azokhoz eléggé közeli értékeket adja. Ha találtunk ilyen mátrixokat, akkor a kiindulási mátrixunk hiányzó értékeinek tekintsük a mátrix faktorizációval kapott mátrixok szorzataként előálló mátrixban az adott helyeken szereplő értékeket. A meggondolás azon alapul, hogy a kiindulási mátrixunk elemei között van valamilyen összefüggés, amit lehet, hogy éppen a mátrix felbontása ír le helyesen. Ha nem tételeznénk fel semmilyen összefüggést, akkor semmilyen alapunk nem lenne a hiányzó értékek megjósolására. Mátrix faktorizáció Esetünkben a mátrix faktorizáció azt jelenti, hogy egy adott R, n m méretű mátrixhoz keressük olyan P, n r méretű és Q, r m méretű mátrixokat, amelyekre P Q = R teljesül. Az r értékére nincs speciális kikötés. Lehetségesség Ismeretlenek tehát a P és Q mátrixok. Jelöljük a P, Q és R mátrixok elemeit rendre p i,j, q i,j, r i,j -vel. Eldöntendő még az r érték, ezt tekintsük rögzítettnek. Megoldandó tehát az p i,1 q 1,j + p i,2 q 2,j +...+ p i,k q k,j = r i,j i = 1,..., n és j = 1,...,m 2
egyenletrendszer. Az ismeretlenek száma (n+m) r. Az egyenletek száma anynyi ahány értékét az R mátrixnak ismerjük, maximum n m. A szóban forgó ajánlórendszerek szempontjából nem feltétlenül szükséges a mátrix faktorizációs egyenletrendszer pontos megoldása, hanem közelítő megoldás is használható lehet. A közelítő megoldás keresése azt jelenti, hogy az R mátrix helyett egy olyan, szorzatként előálló R mátrixot keresünk meg, amely elemeinek az R mátrix összes ismert elemeitől való eltérés négyzetöszszege minimális. Tehát a négyzetes hibafüggvényt minimalizáljuk. Ennek megfelelő mátrix felbontást mutatnak be például Koren (Koren at al., 2009), Lee (Lee at al., 2001) és Yeung (Yeung, 2010) cikkeikben. A négyzetes hibafüggvény módosított változatait illetve más hibafüggvényeket is használnak. A négyzetes hibafüggvényre vonatkozó kritikai megjegyzések olvashatók például Bodon (Bodon, 2010) anyagában. Bármilyen hibafüggvényt alkalmazunk is, az olyan felbontást hibátlannak kell tekinteni, amely az ismert értékeket pontosan visszaadja. Különböző felbontások előfordulásának lehetősége Előfordulnak olyan esetek, amikor egy mátrixnak több felbontása, faktorizációja is létezik. Az 1. ábrán látható mátrixnak több különböző felbontása létezik. Ezen felbontásokból képzett szorzatmátrixok: 16 38 34 11 7 17 16 5 7 15 10 4 28 64 52 18 3 7 6 2 16 26 18 27 13 17 16 13 9 15 10 16 28 32 36 18 5 7 6 6 Mindkét felbontás a faktorizálandó mátrix ismert elemeit pontosan állítja elő, így mindkettő hibája 0, ami jobb nem is lehet. Ugyanakkor látható, hogy az R mátrix első sorának negyedik elemére az első felbontásból 11-et, a másodikból 27-et kapunk eredményül. Ezek bizony lényegesen eltérő következtetésekre is vezethetnek, az első felbontásban 11 például az R mátrix első sorában a legkisebb érték, ugyanakkor a második felbontásban a 27 az R mátrix első sorában a legnagyobb érték. Ha tehát valaki egy faktorizációs eljárással megtalálja az első mátrixhoz vezető (hibátlan) felbontást, akkor egy ajánlattevő alkalmazásban arra a következtetésre jut, hogy a néző1 néző a film4 filmet a legkevesebb pontszámmal értékelné, tehát számára ezt a filmet nem érdemes javasolnunk, ugyanakkor más faktorizációs módszer a második mátrixot eredményezi, amiből pontosan ellentétes következtetés vonunk le. Mivel a különböző felbontások ellentétes következtetésekhez vezethetnek, így nem tekinthetjük mindkét felbontást jónak. A valóságos helyzetet legfeljebb az egyik felbontás tükrözheti. 3
Miután mindkét felbontás matematikai értelemben tökéletes, így semmilyen elméleti meggondolás alapján nem tudjuk eldönteni, hogy (amint láttuk ellentétes következtetésekre vezető) felbontások közül melyik a helyesebb, melyiket szabad a gyakorlati feladat megoldásához inkább felhasználni. A problémát az okozza, hogy a felbontáshoz nem rendeltünk valamilyen gyakorlati szempontból értelmezhető jelentést. Azt gondoljuk, hogy a feladat gyakorlati jelentésétől elvonatkoztatva, pusztán a felbontandó mátrixra alapozott matematikai meggondolásokkal ez általánosságban nem is lehetséges. Egyes mátrix felbontásokra helyes, használható értelmezést találnunk, csak az adott mátrix gyakorlati jelentésével együtt van esélyünk. Kísérlet a felbontás megértésére Láttuk, hogy előfordulhat többféle, akár ellentmondásos következtetésekre vezető mátrix felbontás. Matematikai értelemben mindegyik jó, de a valóságot nem mindegyik írja le helyesen. Fontos tehát a felbontások közül megtalálni azt, amelyik az adott valóságos alkalmazási környezetben magyarázható, értelmezhető. Értelmezhetőnek kell lennie: az r darab rejtett attribútumnak, a P és Q mátrixoknak, és annak is, hogy miért éppen ezek szorzataként áll elő a kiindulási R mátrix, hiszen nyilvánvaló, hogy a P és Q mátrixok értékeiből sokféle módon is származtatható valamilyen eredmény. A példánkban bemutatott filmeket pontozó mátrix egy értelmezhető felbontása lehet például egy olyan felbontás, amelyben a rejtett attribútumok a film írója, rendezője, és színésze(i). Ekkor a P mátrix jelentése lehet az, hogy egy-egy néző melyik írót, rendezőt, színészt mennyire kedveli, a Q mátrix jelentése lehet az, hogy az író, a rendező, a színész mennyire hat a film sikerességére. Ha még az is értelmezhető, hogy egy néző véleménye, az általa adott pontszám, az összhatás vagyis az R mátrix éppen úgy alakítható ki, hogy összegezzük a kedvel és a hatás pontszámok szorzatait, akkor a felbontást értelmezni tudtuk. Természetesen többféle értelmezés is lehetséges. Azt, hogy egy felbontás értelmezése helyes-e, részben a szakterület szakértőjével konzultálva tudjuk eldönteni, de nagyon sokat segít a döntés megalapozásában, ha akár más felmérésből legalább a P és Q mátrixok egyikére vonatkozóan vannak adataink. Ha példánkban ismerjük, hogy nézők mennyire kedvelik az írókat, rendezőket, színészeket, akkor ezzel alátámaszthatjuk, vagy éppen elvethetjük egyik vagy másik felbontásunkat. Ha a felbontással keletkezett mátrixok nem 4
hordoznak jelentést, sőt bizonyos jelentéssel bíró felbontások esetén is az eredeti mátrixra vonatkozó bármilyen következtetés levonása például a hiányzó értékekre vonatkozó következtetés megkérdőjelezhető, nagyon vitatható, akár kóklerkedésnek is tekinthető. Természetesen vannak olyan esetek, amikor a felbontás mátrixai biztonsággal értelmezhetők. Egy táplálkozással kapcsolatos felmérésben például előfordulhat, hogy egy mátrixban adjuk meg azt, hogy melyik megfigyelt személy milyen ételből adott napon mennyit fogyasztott, egy másik mátrix tartalma lehet az, hogy melyik étel milyen összetevőkből áll. Ekkor az egyes emberek által fogyasztott összetevők összmennyisége a két mátrix szorzataként áll elő. E utóbbi mátrix tehát felbontható legalább annak a két mátrixnak a szorzatára, amelyek szorzataként keletkezett. E példában a felbontással keletkezett mátrixok is és a szorzatmátrixuk is valamilyen, gyakorlatban értelmezett jelentéssel bírnak. Látszik az is, hogy a szorzatmátrixból az már sehogyan nem következtethető ki, hogy a felbontással keletkezett mátrixokban megjelenő rejtett attribútum micsoda és mi lehet a jelentése. Példánkban ezek a különböző ételféleségek voltak. Következtetések, nyitott kérdések A különböző mátrix felbontások az ismeretlen elemekre vonatkozóan különböző értékeket adhatnak, tehát lényegesen különböző következtetésekre vezethetik az elemzőt. Láttuk, hogy különböző felbontások is pontosan előállíthatják az ismert értékeket, matematikai szempontokkal a különböző felbontások között minőségi különbség nem állapítható meg, ugyanakkor, mint láttuk teljesen ellentétes következtetések objektív alátámasztását adják. Kijelenthető tehát, hogy pusztán a négyzetes hiba, de bármilyen más, a mátrixokat pusztán matematikai konstrukcióként tekintő hibafüggvény alkalmazása sem elegendő a felbontások minősítésére. Bármilyen hibafüggvényt alkalmaznak is, elvárható, hogy a hibafüggvénynek ott legyen minimuma, ahol nincs hiba. Önmagában mátrixelméleti meggondolásokkal nem állapítható meg, hogy a felbontások használatával a hiányzó értékekre vonatkozóan melyik jóslatunk adja meg a helyes vagy legalábbis ahhoz közeli értékeket és melyek a teljesen helytelen, tehát félrevezető, hibás következtetést okozó értékeket. Ezért fontos, hogy csak értelmezhető felbontásokat használjunk. Természetesen előfordulhat olyan eset is, amikor jó felbontást tehát olyat, amely segítségével a hiányzó elemeket, a gyakorlat által is igazoltan, eléggé pontosan tudjuk megjósolni találunk, de a komponenseket nem tudjuk értelmezni, még a szakértő bevonásával sem. Ilyenkor a felbontás értelmének, jelentésének a megkeresése önálló, komoly szakmai feladat lehet, amely eb- 5
ből a szempontból új ismeretekre vezethet, ebben az értelemben tehát ez is adatbányászati eredmény, hiszen az adatok elemzéséből kiindulva kapott valamilyen szakmai ismeret megtalálásához ad segítséget. A mátrix faktorizáció általánosabb értelmezése Két mátrixból nemcsak szorzással származtatható egy harmadik. Ha más származtatásnak is van gyakorlati értelmezése, akkor az is tekinthető faktorizációs alapnak, azaz annak, hogy az így faktorizált mátrixokat keressük és azokat használjuk fel a hiányzó értékek megbecsülésére Nyitott kérdések Az a meglátásunk, hogy a mátrix faktorizációnak az ajánló rendszerekben való megbízható alkalmazásához minden egyes gyakorlati esetben különkülön valamilyen szakértői ismeretekre támaszkodva meg kell találni az értelmezhető felbontásokat. Ehhez szükség van a megfelelő rejtett attribútumok használatára. Az értelmezhetőséghez tartozik az is, hogy éppen a talált mátrixok szorzása produkálja a kiinduló mátrixunk elemeit. Hivatkozott források Bodon Ferenc: Adatbányászati algoritmusok, (2010). Peter Forbes, Mu Zhu: Content-boosted Matrix Factorization for Recommender Systems: Experiments with Recipe Recommendation. RecSys'11, (2011). Yehuda Koren, Robert Bell, Chris Volinsky: Matrix factorization techniques for recommender systems. IEEE, Computer, August 2009, pp 42-49. (2009). Daniel D. Lee, H. Sebastian Seung: Algorithms for Non-negative Matrix Factorization. Advances in Neural Information Processing Systems 13: Proceedings of the 2000 Conference. MIT Press. pp. 556 562. (2000). Gábor Takács, István Pilászy, Bottyán Németh, Domonkos Tikk: Investigation of Various Matrix Factorization Methods for Large Recommender Systems. KDD netfix workshop. (2008). Albert Au Yeung: Matrix Factorization: A Simple Tutorial and Implementation in Python, (2010). Szerzők Buza Antal, Phd, főiskolai tanár Dunaújvárosi Főiskola buza.antal@yahoo.com B. Kis Piroska, Phd, főiskolai tanár Dunaújvárosi Főiskola buzanekispiroska@yahoo.com 6