Machine Learning pentru sisteme de recomandare-Partea 1 (algoritmi, evaluare și pornire la rece)

Pavel Kord
Pavel Kord XlX

Follow

Jun 3 · 2018 * 7 min citit

sistemele de recomandare sunt una dintre cele mai de succes și răspândite aplicații ale tehnologiilor de învățare automată în afaceri. Au fost mulți oameni pe lista de așteptare care nu au putut participa la discuția noastră MLMU, așa că împărtășesc diapozitive și comentarii aici.

puteți aplica sisteme de recomandare în scenarii în care mulți utilizatori interacționează cu multe elemente.

puteți găsi sisteme de recomandare la scară largă în comerțul cu amănuntul, video la cerere sau streaming de muzică. Pentru a dezvolta și menține astfel de sisteme, o companie are nevoie de obicei de un grup de oameni de știință și ingineri de date scumpe. De aceea, chiar și marile corporații, cum ar fi BBC, au decis să-și externalizeze serviciile de recomandare.

compania noastră Recombee are sediul în Praga și dezvoltă un motor universal automatizat de recomandare capabil să se adapteze nevoilor de afaceri din mai multe domenii. Motorul nostru este folosit de sute de companii din întreaga lume.

în mod surprinzător, recomandarea de știri sau videoclipuri pentru mass-media, recomandarea produsului sau personalizarea în călătorii și retail pot fi gestionate de algoritmi similari de învățare automată. În plus, acești algoritmi pot fi ajustați utilizând limbajul nostru special de interogare în fiecare solicitare de recomandare.

algoritmii de învățare automată din sistemele de recomandare sunt de obicei clasificați în două categorii — metode de filtrare bazate pe conținut și colaborative, deși recomandatorii moderni combină ambele abordări. Metodele bazate pe conținut se bazează pe similitudinea atributelor elementelor și metodele colaborative calculează similitudinea din interacțiuni. Mai jos vom discuta mai ales metode de colaborare care permit utilizatorilor să descopere conținut nou diferit de articolele vizualizate în trecut.

metodele de colaborare funcționează cu matricea de interacțiune care poate fi numită și matrice de evaluare în cazul rar în care utilizatorii oferă o evaluare explicită a articolelor. Sarcina învățării automate este de a învăța o funcție care prezice utilitatea articolelor pentru fiecare utilizator. Matricea este de obicei imensă, foarte rară și majoritatea valorilor lipsesc.

cel mai simplu algoritm calculează cosinus sau corelație similitudine de rânduri (utilizatori) sau coloane (articole) și recomandă elemente care k — cel mai apropiat vecinii bucurat.

metodele bazate pe factorizarea matricei încearcă să reducă dimensionalitatea matricei de interacțiune și să o aproximeze cu două sau mai multe matrice mici cu K componente latente.

prin înmulțirea rând și coloană corespunzătoare vă prezice rating de element de utilizator. Eroarea de antrenament poate fi obținută prin compararea ratingurilor care nu sunt goale cu ratingurile prezise. De asemenea, se poate regulariza pierderea antrenamentului adăugând un termen de penalizare menținând valorile vectorilor latenți scăzute.

cel mai popular algoritm de antrenament este o coborâre stochastică a gradientului, minimizând pierderea prin actualizări de gradient atât ale coloanelor, cât și ale rândurilor de matrice p A Q.

alternativ, se poate utiliza metoda alternativă a celor mai mici pătrate care optimizează iterativ matricea p și matricea q prin pasul general al celor mai mici pătrate.

regulile de asociere pot fi, de asemenea, utilizate pentru recomandare. Elementele care sunt frecvent consumate împreună sunt conectate cu o margine din grafic. Puteți vedea grupuri de cele mai bine vândute (elemente conectate dens cu care aproape toată lumea a interacționat) și mici grupuri separate de conținut de nișă.

Regulile extrase din matricea de interacțiune ar trebui să aibă cel puțin un sprijin minim și încredere. Suportul este legat de frecvența apariției — implicațiile bestseller-urilor au un sprijin ridicat. Încrederea ridicată înseamnă că regulile nu sunt adesea încălcate.

normele miniere nu este foarte scalabil. Algoritmul APRIORI explorează spațiul de stare al elementelor posibile frecvente și elimină ramurile spațiului de căutare, care nu sunt frecvente.

seturile de articole frecvente sunt utilizate pentru a genera reguli, iar aceste reguli generează recomandări.

de exemplu, prezentăm reguli extrase din tranzacțiile bancare din Republica Cehă. Nodurile (interacțiunile) sunt terminale, iar marginile sunt tranzacții frecvente. Puteți recomanda terminale bancare care sunt relevante pe baza retragerilor / plăților anterioare.

Penalizarea articolelor populare și extragerea regulilor de coadă lungă cu suport mai mic duce la reguli interesante care diversifică recomandările și ajută la descoperirea de conținut nou.

matricea de evaluare poate fi, de asemenea, comprimată de o rețea neuronală. Așa-numitul autoencoder este foarte asemănător cu factorizarea matricei. Autoencoderele profunde, cu mai multe straturi ascunse și neliniarități sunt mai puternice, dar mai greu de antrenat. Neural net poate fi, de asemenea, utilizat pentru preprocesarea atributelor elementelor, astfel încât să putem combina abordările bazate pe conținut și colaborative.

User-KNN Top n recomandare pseudocod este dat mai sus.

Regulile asociațiilor pot fi exploatate de mai mulți algoritmi diferiți. Aici vom arăta cele mai bune reguli recomandări pseudocod.

pseudocodul factorizării matricei este dat mai sus.

în învățarea profundă colaborativă, antrenați factorizarea matricei simultan cu autoencoder care încorporează atributele articolului. Există, desigur, mult mai mulți algoritmi pe care îi puteți utiliza pentru recomandare, iar următoarea parte a prezentării introduce câteva metode bazate pe învățarea profundă și de întărire.

evaluarea recomandatorilor

Recomandatorii pot fi evaluați în mod similar ca modele clasice de învățare automată pe Date istorice (evaluare offline).

interacțiunile utilizatorilor de testare selectați aleatoriu sunt validate încrucișat pentru a estima performanța recomandatorului pe evaluări nevăzute.

Root mean squared error (RMSE) este încă utilizat pe scară largă, în ciuda multor studii care au arătat că RMSE este un estimator slab al performanței online.

măsura de evaluare offline mai practică este rechemarea sau evaluarea precisă a procentului de articole recomandate corect (din articolele recomandate sau relevante). DCG ia în considerare și poziția presupunând că relevanța elementelor scade logaritmic.

se poate utiliza o măsură suplimentară care nu este atât de sensibilă la părtinire în datele offline. Acoperirea catalogului împreună cu rechemarea sau precizia pot fi utilizate pentru optimizarea multiobiectivă. Am introdus parametrii de regularizare tuturor algoritmilor care permit manipularea plasticității lor și penalizarea recomandării articolelor populare.

atât rechemarea, cât și acoperirea ar trebui să fie maximizate, astfel încât să conducem recomandarea către recomandări exacte și diverse, care să permită utilizatorilor să exploreze conținut nou.

Pornire la rece și recomandare bazată pe conținut

uneori lipsesc interacțiunile. Produsele de pornire la rece sau utilizatorii de pornire la rece nu au suficiente interacțiuni pentru măsurarea fiabilă a asemănării lor de interacțiune, astfel încât metodele de filtrare colaborative nu reușesc să genereze recomandări.

problema de pornire la rece poate fi redusă atunci când se ia în considerare similitudinea atributelor. Puteți codifica atribute în vector binar și feed-l la recommender.

elementele grupate pe baza asemănării lor de interacțiune și a asemănării atributelor sunt adesea aliniate.

puteți utiliza rețeaua neuronală pentru a prezice similitudinea interacțiunii din atribute similitudine și invers.

există mult mai multe abordări care ne permit să reducem problema pornirii la rece și să îmbunătățim calitatea recomandării. În a doua parte a discuției noastre am discutat tehnici de recomandare bazate pe sesiuni, recomandări profunde, algoritmi de asamblare și AutoML care ne permit să rulăm și să optimizăm mii de algoritmi de recomandare diferiți în producție.

continuați cu a doua parte a prezentării discutând recomandarea profundă, Predicția secvenței, AutoML și învățarea întăririi în recomandare.

sau verificați actualizările noastre recente în Recombee în 2019: funcții și îmbunătățiri noi.