Machine Learning voor Beschikbaar systemen – Deel 1 (algoritmen, de evaluatie en de koude start)

Pavel Kordík
Pavel Kordík

Volg

Jun 3, 2018 · 7 min lezen

niet Beschikbaar systemen zijn een van de meest succesvolle en wijdverspreide toepassing van machine learning technologieën in het bedrijfsleven. Er waren veel mensen op de wachtlijst die onze MLMU-talk niet konden bijwonen, dus ik deel hier dia ‘ s en opmerkingen.

u kunt recommender systemen toe te passen in scenario ‘ s waar veel gebruikers interactie met veel items.

u kunt grootschalige recommender systemen vinden in retail, video on demand, of muziek streaming. Om dergelijke systemen te ontwikkelen en te onderhouden, heeft een bedrijf meestal een groep dure data scientist en ingenieurs nodig. Dat is de reden waarom zelfs grote bedrijven zoals BBC besloten om haar aanbeveling diensten uit te besteden.

ons bedrijf Recombinee is gevestigd in Praag en ontwikkelt een universele geautomatiseerde aanbeveling motor in staat om zich aan te passen aan de zakelijke behoeften in meerdere domeinen. Onze motor wordt gebruikt door honderden bedrijven over de hele wereld.

verrassend, aanbeveling van nieuws of video ‘ s voor media, product aanbeveling of personalisatie in reizen en retail kan worden behandeld door soortgelijke machine learning algoritmen. Bovendien kunnen deze algoritmen worden aangepast met behulp van onze speciale query taal in elke aanbeveling verzoek.

Machine learning algoritmen in recommender systemen worden meestal ingedeeld in twee categorieën — inhoud gebaseerde en collaboratieve filtering methoden, hoewel moderne aanbevelers combineren beide benaderingen. Content based methoden zijn gebaseerd op gelijkenis van item attributen en collaboratieve methoden berekenen gelijkenis uit interacties. Hieronder bespreken we meestal samenwerkingsmethoden waarmee gebruikers nieuwe content kunnen ontdekken die verschilt van items die in het verleden zijn bekeken.

samenwerkingsmethoden werken met de interactiematrix die ook ratingmatrix kan worden genoemd in het zeldzame geval dat gebruikers expliciete rating van items bieden. De taak van machine learning is om een functie te leren die het nut van items voorspelt aan elke gebruiker. Matrix is meestal enorm, zeer schaars en de meeste waarden ontbreken.

het eenvoudigste algoritme berekent cosinus of correlatie gelijkenis van rijen (gebruikers) of kolommen (items) en beveelt items die k — dichtstbijzijnde buren genoten.

Matrix factorisatie gebaseerde methoden proberen de dimensionaliteit van de interactiematrix te verminderen en deze te benaderen door twee of meer kleine matrices met K latente componenten.

door de corresponderende rij en kolom te vermenigvuldigen voorspelt u de beoordeling van het item per gebruiker. Trainingsfouten kunnen worden verkregen door niet-lege ratings te vergelijken met voorspelde ratings. Men kan ook het trainingsverlies regulariseren door een strafterm toe te voegen waarbij de waarden van latente vectoren laag worden gehouden.

het meest populaire trainingsalgoritme is een stochastische gradiëntafdaling die verlies door gradiëntupdates van zowel kolommen als rijen van P A q-matrices minimaliseert.

als alternatief kan men gebruik maken van alternerende kleinste kwadraten methode die iteratief optimaliseert matrix p en matrix q door algemene kleinste kwadraten stap.

Verenigingsregels kunnen ook worden gebruikt voor aanbevelingen. Items die vaak samen worden geconsumeerd, zijn verbonden met een rand in de grafiek. U kunt clusters van bestsellers (dicht verbonden items die bijna iedereen interactie met) en kleine gescheiden clusters van niche-inhoud te zien.

regels uit de interactiematrix moeten op zijn minst enige minimale steun en vertrouwen hebben. Ondersteuning is gerelateerd aan frequentie van voorkomen — implicaties van bestsellers hebben een hoge ondersteuning. Hoog vertrouwen betekent dat regels niet vaak worden geschonden.

mijnbouw regels is niet erg schaalbaar. Het APRIORI-algoritme onderzoekt de toestandsruimte van mogelijke frequente itemsets en elimineert takken van de zoekruimte, die niet frequent zijn.

frequente itemsets worden gebruikt om regels te genereren en deze regels genereren aanbevelingen.

als voorbeeld laten we regels zien uit banktransacties in Tsjechië. Knooppunten (interacties) zijn terminals en randen zijn frequente transacties. U kunt bankterminals aanbevelen die relevant zijn op basis van eerdere opnames / betalingen.

het bestraffen van populaire items en het extraheren van lange staart regels met lagere ondersteuning leidt tot interessante regels die aanbevelingen diversifiëren en helpen om nieuwe content te ontdekken.

Rating matrix kan ook gecomprimeerd worden door een neuraal netwerk. Zogenaamde autoencoder is zeer vergelijkbaar met de matrix factorisatie. Diepe auto-encoders, met meerdere verborgen lagen en niet-lineariteiten zijn krachtiger, maar moeilijker te trainen. Neuraal net kan ook worden gebruikt om item attributen vooraf te verwerken, zodat we content gebaseerde en collaboratieve benaderingen kunnen combineren.

gebruiker-KNN top n aanbeveling pseudocode is hierboven gegeven.

Associatieregels kunnen worden gedolven door meerdere verschillende algoritmen. Hier tonen we de best-regel aanbevelingen pseudocode.

de pseudocode van matrixfactorisatie wordt hierboven gegeven.

in collaborative deep learning traint u matrix factorisatie gelijktijdig met auto-encoder met Itemattributen. Er zijn natuurlijk veel meer algoritmes die je kunt gebruiken voor aanbeveling en het volgende deel van de presentatie introduceert een aantal methoden gebaseerd op deep en reinforcement learning.

evaluatie van aanbevelingen

aanbevelingen kunnen op dezelfde manier worden geëvalueerd als klassieke machine learning modellen op Historische gegevens (offline evaluatie).

interacties van willekeurig geselecteerde testgebruikers worden cross gevalideerd om de prestaties van recommender op unseen ratings te schatten.

Root mean squared error (RMSE) wordt nog steeds veel gebruikt ondanks vele studies toonden aan dat RMSE is slechte schatter van online prestaties.

meer praktische offline evaluatie maatregel is recall of precisie evalueren percentage van correct aanbevolen items (uit aanbevolen of relevante items). DCG neemt ook de positie in aanmerking, ervan uitgaande dat de relevantie van items logaritmisch afneemt.

men kan extra maatregel gebruiken die niet zo gevoelig is voor bias in offline gegevens. Catalogus dekking samen met recall of precisie kan worden gebruikt voor multiobjectieve optimalisatie. We hebben regularisatieparameters geïntroduceerd voor alle algoritmen die het mogelijk maken om hun plasticiteit te manipuleren en aanbevelingen van populaire items te bestraffen.

zowel recall en dekking moet worden gemaximaliseerd, dus we rijden recommender in de richting van nauwkeurige en diverse aanbevelingen waardoor gebruikers nieuwe content te verkennen.

aanbeveling voor koude start en inhoud

soms ontbreken interacties. Cold start producten of cold start gebruikers hebben niet genoeg interacties voor een betrouwbare meting van hun interactie gelijkenis dus collaboratieve filtermethoden falen om aanbevelingen te genereren.

Koude start probleem kan worden verminderd wanneer attribuut gelijkenis wordt rekening gehouden. U kunt attributen coderen in binaire vector en voer het aan recommender.

Items geclusterd op basis van hun interactie gelijkenis en attribuut gelijkenis worden vaak uitgelijnd.

u kunt neuraal netwerk te voorspellen interactie gelijkenis van attributen gelijkenis en vice versa.

er zijn nog veel meer benaderingen die ons in staat stellen het probleem van de koude start te verminderen en de kwaliteit van de aanbevelingen te verbeteren. In het tweede deel van onze talk bespraken we session based recommendation techniques, deep recommendation, ensembling algorithms en AutoML waarmee we duizenden verschillende recommendation algorithms in productie kunnen uitvoeren en optimaliseren.

ga verder met het tweede deel van de presentatie over Deep Recommendation, Sequence Prediction, AutoML en Reinforcement Learning in Recommendation.

of bekijk onze recente updates in recombineren in 2019: nieuwe functies en verbeteringen.