maskininlärning för rekommendationssystem-Del 1 (algoritmer, utvärdering och kallstart)

Pavel Kord
Pavel Kord Xhamster

följ

Jun 3, 2018 * 7 min läs

rekommendationssystem är en av de mest framgångsrika och utbredda tillämpningarna av maskininlärningsteknik i affärer. Det fanns många människor på väntelistan som inte kunde delta i vårt mlmu-samtal så jag delar bilder och kommentarer här.

du kan använda rekommendationssystem i scenarier där många användare interagerar med många objekt.

du kan hitta storskaliga rekommendationssystem i detaljhandel, video on demand eller musikströmning. För att utveckla och underhålla sådana system behöver ett företag vanligtvis en grupp dyra datavetare och ingenjörer. Därför beslutade även stora företag som BBC att lägga ut sina rekommendationstjänster.

vårt företag Recombee är baserat i Prag och utvecklar en universell automatiserad rekommendationsmotor som kan anpassa sig till affärsbehov inom flera domäner. Vår motor används av hundratals företag över hela världen.

överraskande kan rekommendation av nyheter eller videor för media, produktrekommendation eller Personalisering i resor och detaljhandel hanteras av liknande maskininlärningsalgoritmer. Dessutom kan dessa algoritmer justeras genom att använda vårt speciella frågespråk i varje rekommendationsförfrågan.

maskininlärningsalgoritmer i rekommendationssystem klassificeras vanligtvis i två kategorier — innehållsbaserade och samarbetsfiltreringsmetoder, även om moderna rekommendationer kombinerar båda metoderna. Innehållsbaserade metoder baseras på likhet mellan Objektattribut och samarbetsmetoder beräknar likhet från interaktioner. Nedan diskuterar vi mestadels samarbetsmetoder som gör det möjligt för användare att upptäcka nytt innehåll som skiljer sig från objekt som visats tidigare.

samarbetsmetoder arbetar med interaktionsmatrisen som också kan kallas betygsmatris i det sällsynta fallet när användarna ger uttrycklig klassificering av objekt. Uppgiften med maskininlärning är att lära sig en funktion som förutsäger nyttan av objekt för varje användare. Matrisen är vanligtvis enorm, mycket gles och de flesta värden saknas.

den enklaste algoritmen beräknar cosinus eller korrelation likhet rader (användare) eller kolumner (objekt) och rekommenderar objekt som k — närmaste grannar haft.

Matrisfaktoriseringsbaserade metoder försöker minska dimensionen av interaktionsmatrisen och approximera den med två eller flera små matriser med K latenta komponenter.

genom att multiplicera motsvarande rad och kolumn förutspår du betyg av objekt efter användare. Träningsfel kan erhållas genom att jämföra icke tomma betyg med förutsagda betyg. Man kan också reglera träningsförlust genom att lägga till en straffperiod som håller värdena för latenta vektorer låga.

mest populära utbildning algoritm är en stokastisk lutning nedstigning minimera förlust av lutning uppdateringar av både kolumner och rader av P A q matriser.

Alternativt kan man använda alternerande minsta Kvadratmetod som iterativt optimerar matris p och matris q genom generellt minsta kvadratsteg.

Föreningsregler kan också användas för rekommendation. Objekt som ofta konsumeras tillsammans är kopplade till en kant i diagrammet. Du kan se kluster av bästsäljare (tätt anslutna objekt som nästan alla interagerade med) och små separerade kluster av nischinnehåll.

regler som bryts från interaktionsmatrisen bör ha åtminstone lite minimalt stöd och förtroende. Stöd är relaterat till frekvensen av förekomst — konsekvenser av bästsäljare har högt stöd. Högt förtroende innebär att regler inte ofta bryts.

Gruvregler är inte särskilt skalbara. APRIORI-algoritmen utforskar tillståndsutrymmet för möjliga frekventa föremåluppsättningar och eliminerar grenar av sökutrymmet, som inte är frekventa.

frekventa itemsets används för att generera regler och dessa regler genererar rekommendationer.

som ett exempel visar vi regler extraherade från banktransaktioner i Tjeckien. Noder (interaktioner) är terminaler och kanter är frekventa transaktioner. Du kan rekommendera bankterminaler som är relevanta baserat på tidigare uttag / betalningar.

att straffa populära föremål och extrahera regler med lång svans med lägre stöd leder till intressanta regler som diversifierar rekommendationer och hjälper till att upptäcka nytt innehåll.

Betygsmatris kan också komprimeras av ett neuralt nätverk. Så kallad autoencoder är mycket lik matrisfaktoriseringen. Djupa autoencoders, med flera dolda lager och olinjäriteter är kraftfullare men svårare att träna. Neural net kan också användas för att förbehandla Objektattribut så att vi kan kombinera innehållsbaserade och samarbetsmetoder.

användar KNN top n rekommendation pseudokod ges ovan.

Föreningsregler kan brytas av flera olika algoritmer. Här visar vi de bästa regel rekommendationer pseudokod.

pseudokoden för matrisfaktorisering ges ovan.

i collaborative deep learning tränar du matrisfaktorisering samtidigt med autoencoder som innehåller Objektattribut. Det finns naturligtvis många fler algoritmer du kan använda för rekommendation och nästa del av presentationen introducerar några metoder baserade på djupt och förstärkande lärande.

utvärdering av rekommendationer

rekommendationer kan utvärderas på samma sätt som klassiska maskininlärningsmodeller på historiska data (offline-utvärdering).

interaktioner mellan slumpmässigt utvalda testanvändare är korsvaliderade för att uppskatta prestandan hos recommender på osynliga betyg.

Root mean squared error (RMSE) används fortfarande i stor utsträckning trots många studier visade att RMSE är dålig uppskattning av onlineprestanda.

mer praktisk offline utvärderingsåtgärd är återkallande eller precisionsutvärdering procent av korrekt rekommenderade artiklar (av rekommenderade eller relevanta artiklar). DCG tar också hänsyn till positionen förutsatt att relevansen av objekt logaritmiskt minskar.

man kan använda ytterligare åtgärd som inte är så känslig för bias i offlinedata. Katalogtäckning tillsammans med återkallande eller precision kan användas för multiobjektiv optimering. Vi har infört regularisering parametrar till alla algoritmer gör det möjligt att manipulera sin plasticitet och straffa rekommendation av populära objekt.

både återkallelse och täckning bör maximeras så att vi kör recommender mot exakta och olika rekommendationer som gör det möjligt för användare att utforska nytt innehåll.

kallstart och innehållsbaserad rekommendation

ibland saknas interaktioner. Kallstartsprodukter eller kallstartanvändare har inte tillräckligt med interaktioner för tillförlitlig mätning av deras interaktionslikhet, så samarbetsfiltreringsmetoder misslyckas med att generera rekommendationer.

Kallstartsproblem kan minskas när attributlikhet beaktas. Du kan koda attribut i binär vektor och mata den till recommender.

objekt grupperade baserat på deras interaktion likhet och attribut likhet är ofta i linje.

du kan använda neurala nätverk för att förutsäga interaktion likhet från attribut likhet och vice versa.

det finns många fler tillvägagångssätt som gör det möjligt för oss att minska kallstartsproblemet och förbättra kvaliteten på rekommendationen. I den andra delen av vårt föredrag diskuterade vi sessionsbaserade rekommendationstekniker, djup rekommendation, ensemblingsalgoritmer och AutoML som gör det möjligt för oss att köra och optimera tusentals olika rekommendationsalgoritmer i produktionen.

fortsätt till den andra delen av presentationen som diskuterar djup rekommendation, Sekvensprognos, AutoML och Förstärkningsinlärning i rekommendation.

eller kolla våra senaste uppdateringar i Recombee 2019: nya funktioner och förbättringar.