LM-ről Poly2-re, MF-re FM-ről FFM-re

Az ajánlórendszerek kontextusában a Field Aware Factorization Machines (FFM) különösen hasznosak, mivel képesek kezelni a nagy, ritka adatkészleteket, számos kategorikus jellemzővel.

Ahhoz, hogy megértsük, hogyan jött létre az FFM, szögezzünk le néhány alapvetést, és értsük meg, miért jó az FFM, és mire jó.

Lineáris regresszió

A legegyszerűbb modell, amelyre akkor gondolhatunk, amikor egy függő változó és egy vagy több független változó közötti kapcsolatot próbáljuk modellezni, egy lineáris regressziós modell.

Például annak előrejelzésére, hogy a felhasználó milyen értékeléseket adhat egy adott filmnek, számos különböző funkciót használhatunk előrejelzőként. Az egyszerűség kedvéért azonban tételezzünk fel két változót – a nemet (x1) és a film műfaját (x2).

Ebben az esetben a következő egyenletet kapnánk (feltételezzük, hogy nincs torzítás, és feltételezzük, hogy valamilyen kódolást végeznek a kategorikus változókon):

Ezután megoldjuk a w1 és w2 súlyokat. Természetesen a lineáris regresszió nem teljesítene jól, mert megpróbálja megtanulni az egyes változók átlagos viselkedését, és nem veszi figyelembe a változók közötti interakció lehetőségét (azaz nem tudja megtanulni, hogy x1 korrelációban állhat x2-val).

Poli2

Ezen interakciók modellezéséhez bemutatjuk a következő legegyszerűbb modellt - Poly2. A fenti egyenlet helyett minden egyes szolgáltatáspárhoz hozzáadunk egy interakciós kifejezést. Ez ad nekünk:

Nyilvánvaló azonban, hogy ennek a módszernek vannak jelentős hátrányai. Először is, a nagyon kevés interakciók előrejelzése megbízhatatlan, másodszor pedig a láthatatlan interakciók (azaz nulla interakciók) triviális előrejelzésekkel. .

Például egy 10 000 példából álló edzéskészletben, ha csak 2 példánk van thrillerfilmet néző férfiakra, a thrillerfilmeket néző férfiakkal kapcsolatos jövőbeli előrejelzéseink kizárólag ezen a 2 edzési példán alapulnak (azaz az interakciós kifejezés súlyát 2 határozza meg adat pontok). Továbbá, ha az edzéskészletünkben nincs példa arra, hogy nők nézzenek sci-fi filmeket (mint a fenti táblázatban), az ezekre vonatkozó előrejelzések triviálisak és értelmetlenek lesznek.

Matrix Factorization (MF)

Az MF-ben általában kissé eltérő módon ábrázoljuk az adatokat. Ahelyett, hogy az egyes változókat férfiként vagy nőként kódolnánk, és a film műfaját használnánk, szeretnénk megragadni a felhasználó és az elem közötti interakciókat. Nézzük az új adatainkat:

A fenti diagramon a felhasználók a sorokba, míg az elemek az oszlopokban találhatók. Egy adott felhasználói elem interakció pozitív értéke az a besorolás, amelyet a felhasználó adott az adott filmre (vegye figyelembe, hogy az értékek binárisak is lehetnek, mint az alábbi képen a megtekintett vagy nem megtekintett érték jelzésére /em>).

Adott a felhasználói elem mátrix R [M x N] felett, a A cél két mátrix közelítése – egy P [M x k] felhasználói látens mátrix és egy Q rejtett elemmátrix > [Nx k], ahol a k sokkal kisebb, mint az N és M >. Az MF robusztusabb módszere a súlyozott MF, ahol a nem interakciós értékeket nullákkal töltik fel, majd súlyozott alternáló legkisebb négyzetek (WALS) vagy sztochasztikus gradiens süllyedés (SGD) használatával optimalizálják a hibák négyzetes összegével (a megfigyelt és nem megfigyelt bejegyzések összegével). ) veszteségfüggvényként. Általában egy hiperparamétert adnak hozzá a nem megfigyelt bejegyzések hibáinak súlyozására, mivel ezek a ritkaság miatt általában sokkal nagyobbak.

Hogyan javítja az MF a Lineáris regressziót és a Poly2-t?

Az MF eredendően látens faktormodell, ami azt jelenti, hogy egy nagyon ritka (és nagy dimenziójú) mátrixot tud reprezentálni két mátrixban, amelyek mérete sokkal kisebb. Magas szinten hasonlóképpen képzelhető el, mint a főkomponens-elemzés (PCA), ahol a lehető legnagyobb eltérést próbáljuk megragadni k komponensekben.

Megjegyzés: A látens vektorok fogalma a vektorbeágyazások szinonimája, ahol az ötlet az, hogy egy nagy dimenziós térből tanuljunk meg egy kompakt ábrázolást.

Az MF hátránya, hogy egyszerűen egy mátrixbontási keretrendszer. Mint ilyen, a mátrixot csak felhasználói elem mátrixként tudjuk ábrázolni, és nem tudunk olyan mellékjellemzőket beépíteni, mint a film műfaja, nyelve stb. A faktorizációs folyamatnak mindezt meg kell tanulnia a meglévő interakciókból. Ezért a faktorizációs gépeket az MF továbbfejlesztett változataként vezetik be.

(Mivel ez a cikk az FFM-re összpontosít, nem fogok belemenni az MF további részleteibe. Ha többet szeretne megtudni, ajánlom a Google bevezető tanfolyamát az ajánlórendszerekről.)

Faktorizációs gépek (FM)

Ahogy korábban bemutattuk, az FM az MF továbbfejlesztett változata. Pontosabban, az FM egy általánosabb előrejelző, mint a támogatási vektorgépek (SVM), de képes megbízható paramétereket becsülni ritkaság mellett [2]. Egyszerűen fogalmazva: Az FM lineáris modellként van megfogalmazva, a funkciók közötti interakciókkal további paraméterekként (szolgáltatásokként). Ezek a funkciók interakciói a látens térábrázolásukban valósulnak meg az egyszerű formátumuk helyett. Matematikailag a következőképpen ábrázolják:

Amint már említettük, a fenti egyenletet két részre bonthatjuk – egy Lineáris regressziós modellre a bal oldalon és egy ezzel egyenértékű mátrixfaktorizációra a jobb oldalon.

Miben különbözik az interakciók rögzítése a Poly2-től?

A fenti egyenlet jobb oldala elriaszthatja az embereket, mert félelmetesnek tűnik. A könnyebb megértéshez nézzük meg, hogyan ábrázolhatjuk az MF-ben látott felhasználói elem mátrixot.

Kezdetben a felhasználó-elem interakciót egy gyors kódolási vektorként szeretnénk megjeleníteni, ahol az átalakított sorok mindegyikében csak egyetlen aktív felhasználó és elem lesz. . Ezután hozzáadhatunk kiegészítő funkciókat (pl. a felhasználó által értékelt egyéb filmek, az utolsó film értékelése, az adott film elfogyasztási ideje stb.) akár egyszeri kódolásként, akár normalizált vektorokként.

Általánosságban elmondható, hogy a faktorizációs gépek képesek megbecsülni az interakciókat ritka beállításokkal, mert megtörik az interakciós paraméterek függetlenségét azok faktorizálásával (a <v_i, v_j>-ben kifejezett látens vektorok használatával). Ez azt jelenti, hogy egy interakció adatai segítenek a kapcsolódó interakciók paramétereinek becslésében is (hasonlóan a mátrixfaktorizálás és a kollaboratív szűrés ötletéhez).

A Poly2-höz képest az egyes interakciók súlyát FM-ben a két látens vektor belső szorzatának felhasználásával becsüljük meg. Ez azt jelenti, hogy még ha nincs is interakció x_i és x_j között a betanítási halmazban, az FM képes lesz általánosítani ezt az interakciót, mert már létrehozott egy beágyazást (mint az MF példában, ahol két látens mátrixot kapunk) a betanítás során. A Poly2-ben ez nem lett volna lehetséges, mert a modell nem látta ezt a konkrét interakciót. Vegye figyelembe, hogy az FM-ben van egy további k hiperparaméter –a használt rejtett szolgáltatások száma (amint az a fenti diagramon látható).

Ha az FM már ilyen jól tud általánosítani, hogyan javul az FFM az FM-hez képest?

Field Aware Factorization Machines (FFM)

Mielőtt belemerülnénk az FFM-be, döntő fontosságú megjegyezni a terminológiák különbségét: az olyan független változókat, mint a Műfaj és a Nem, mostantól mezőknek nevezzük. Az egyes mezők által használt kategorikus értékeket szolgáltatásoknak nevezzük. Például a férfi, , az akció, a romantika stb. mind jellemzők.

Az FM-ben minden funkciónak csak egy látens vektora van, hogy megtanulja a látens hatást az összes egyéb funkcióval együtt [1]. Például, ha három mezőnk van: Nem, Műfaj és Ország, akkor az FM alatti interakciót a következőképpen számítjuk ki:

Példaként a fenti táblázat első sorát véve a Férfi látens vektorát használjuk a látens hatás megtanulására az Action <v_male, v_action> és az Észak-Amerika funkcióval. > <v_male, v_northamerica>. Azonban az Action a Műfaj mezőhöz, míg az Észak-Amerika a Régió mezőhöz tartozik, mégis a ugyanaz a látens vektor, amely a férfit ábrázolja.

Az FFM ezt az egyetlen reprezentációt több látens vektorra bontja – az egyikre, amelyek egymás mezőit reprezentálják. Ennek hátterében az az intuíció áll, hogy a <v_male, v_action> és <v_male, v_northamerica> látens vektora valószínűleg meglehetősen eltérő, és pontosabban szeretnénk rögzíteni őket. Az FFM alatti interakció a következő lenne:

A <v_male, v_action> látens hatásának megismeréséhez a v_male,genre értéket használjuk, mert a látens vektort kifejezetten a műfaj mezőhöz szeretnénk használni. Hasonlóképpen a v_action,gender értéket használjuk, mert a látens vektort kifejezetten a gendermezőhözszeretnénk rögzíteni.

Mikor használjunk FFM-et FM-en keresztül?

Az FFM és az FM összehasonlítása során az FFM minden szolgáltatáshoz több látens vektort, míg az FM minden egyes szolgáltatáshoz egy látens vektort tanul meg. Az előbbit úgy értelmezhetjük, hogy az interakciókat egy szemcsésebb szinten próbáljuk ábrázolni. Mint ilyen, az ilyen szemcsés interakciók megjelenítéséhez szükséges k látens jellemzők száma kisebb, azaz k az FFM-ben ‹‹ k az FM-ben.

A hivatalos FFM-dokumentumban empirikusan bebizonyosodott, hogy a nagy, ritka, sok kategorikus jellemzőt tartalmazó adatkészletek esetében az FFM jobban teljesít. Ezzel szemben kicsi és sűrű adatkészletek vagy numerikus adatkészletek esetén az FFM nem feltétlenül olyan hatékony, mint az FM. Az FFM szintén hajlamos a betanítási adatkészlet túlillesztésére, ezért különálló érvényesítési készletet kell használni, és korai leállítást kell használni, amikor a veszteség növekszik.

Összegzés

Remélhetőleg ez hasznos volt mindenkinek, aki az FFM vagy FM használatát vizsgálja a felügyelt tanulás ritka mátrixokkal történő alkalmazásában vagy az ajánlórendszerek felfedezésében. :) Nyugodtan írjatok véleményt!

Támogass! — Ha tetszik a tartalmam, és nem iratkoztál fel a Médiumra, fontold meg, hogy támogasson, és iratkozzon fel az ajánló linkemen keresztül itt (MEGJEGYZÉS: tagsági díjának egy részét ajánlási díjként osztjuk ki rám).

Referenciák:

[1] Mezőismeretes faktorizációs gépek a CTR előrejelzéséhez

[2] „faktorizációs gépek”

[3] Google Recommender System Course

[4] „Gyorsulj és virágozd a mély tanulásban: FM-modell az ajánlórendszerhez (1. rész)”