Hur fungerar rekommendationsmotorn?
  • 01 Sep 2023
  • 8 Protokoll att läsa

Hur fungerar rekommendationsmotorn?


Article Summary

Rekommendationsmotorn är kodad i Python och är förpackad i Machine Learning Service .

Totara rekommenderar innehåll från både Totara Engage och Totara Learn . Innehåll inkluderar resurser, spellistor, arbetsytor och kurser. 

Modeller

Totaras rekommendationsmotor använder databasen för att bygga en modell. Modellen används sedan för att bestämma och presentera rekommenderat innehåll för den aktuella användaren, allt i realtid.

Bygga modellen utförs på ett regelbundet schema och kallas "utbildning". Utbildning är när dina data används för att skapa en punkt-i-tid-instans. Vi kallar denna instans modellen. Modellen är baserad på de data som finns tillgängliga vid den tidpunkt då utbildningen äger rum. Detta är viktigt att notera om du lägger till innehåll, eftersom aktivitet förknippad med innehållet inte kommer att synas i modellen förrän utbildning sker.

Som standard schemaläggs utbildning av modellen en gång var 24:e timme. Schemat kan ändras av en administratör vid behov. Vårt råd är att behålla standardinställningen medan du får kännedom om aktiviteten på din webbplats och rekommendationsprocessen.

Hur bestäms rekommendationerna?

Rekommendationsmotorn ger två typer av innehållsrekommendationer:

  • Användarrekommendationer: Innehåll rekommenderat till aktuell användare
  • Relaterat innehåll: Liknande innehåll till det angivna innehållet

Båda dessa rekommendationstyper är baserade på något av följande:

  •  Användarens tidigare interaktioner med innehållet. I det här fallet baseras liknande innehåll till ett visst innehållsobjekt endast på hur innehållet interageras med. 
  • Användarens tidigare interaktioner med innehållet och metadata för innehållet och användarna.

Interaktioner hänvisar till typer av användaråtgärder med innehållsposter. Interaktioner registreras av systemet när en användare anmäler sig till en kurs, eller visar, gillar eller kommenterar en resurs, spellista eller en arbetsyta. Styrkan i interaktionen representeras på en binär skala. Användaråtgärder ställer in interaktionsvärdet så som visas:

  • En enda vy på en resurs, spellista eller arbetsyta ställer in interaktionsvärdet till 0.
  • En efterföljande vy ELLER en enstaka vy med en liknande och/eller kommentar ställer in interaktionsvärdet till 1. Efterföljande aktiviteter ändrar inte interaktionsvärdet efter att det har ställts in på 1. 
  • När en användare registrerar sig i en självinskrivningsbar kurs är interaktionsvärdet inställt på 1. Visa en kurs registreras inte som interaktion.

En interaktion mellan en användare och innehåll som har ett värde på 0 kallas också för att interagera på egen hand, medan ett interaktionsvärde på 1 kallas för att interagera positivt.

Rekommendationsmodellen använder en av tre maskininlärningsalgoritmer (eller lägen):

  • Matrix factorisation
  • Delvis hybrids
  • Full hybrid (standardläge i Totara 15 och senare)

Funktionerna i de tre lägena beskrivs mer detaljerat nedan. Standardläget för Totara 15 och högre är full hybrid, men läget kan ändras när som helst. Det nya läget kommer inte att fungera förrän utbildningen för att bygga den nya modellen är klar.

Den grundläggande logiken som används för alla lägen innebär att identifiera innehåll som den nuvarande användaren inte har interagerat med, men sannolikt kommer att vara intresserad av. Detta innehåll identifieras från andra liknande användares interaktioner med det angivna innehållet som inte har visats av den aktuella användaren. 

Metoden som används för att identifiera liknande användare är olika för varje läge. På samma sätt är de data som används av motorn för att ge innehållsrekommendationer beroende av läget. Varje läge beskrivs mer detaljerat nedan.

Matrix factorisation

I detta läge använder rekommendationsmotorn inte innehåll eller användarmetadata. Rekommendationsmotorn förlitar sig enbart på interaktionsdata från användare med innehåll. Logiken för användarrekommendationer kan sammanfattas i två steg:

  1. Identifiera liknande användare som i allmänhet delar samma innehållsinteraktionsmönster som den nuvarande användaren.
  2. Tilldela en rekommendationspoäng för varje identifierad användare till varje tillgängligt innehållsobjekt baserat på hur mycket de interagerades med av de identifierade liknande användarna.

Efter att ha sorterat innehållsobjekt efter deras rekommendationspoäng, rekommenderas den aktuella användaren de främsta N-innehållsobjekten (N kan konfigureras av Totaras webbplatsadministratör). Objekt som användaren redan har interagerat med rekommenderas inte.

Relaterat innehåll tillhandahålls med likhetspoäng. Likhetspoängen beräknas för varje innehållsobjekt med varje annat innehållsobjekt baserat på mönstret för användarinteraktion. Ett exempel hjälper till att illustrera detta. I det här exemplet interageras innehållsobjekt x och y med samma uppsättning användare. Innehållspost z interageras med av en annan uppsättning användare. Därför kommer x att ha en hög likhetspoäng med y, men x kommer att ha en låg likhetspoäng med z.

Alla innehållsobjekt sorteras sedan efter deras likhetspoäng med det aktuella innehållsobjektet. Topp N-poster rekommenderas till användaren som liknande poster.

En av nackdelarna med detta läge är att det inte kan rekommendera något innehåll till okända användare, dvs. användare som ännu inte har interagerat med något innehåll.

Delvis hybrids

I partiellt hybridläge använder maskininlärningsmotorn metadata för både användare och innehåll. Tabellen visar de metadatafält som används för varje (om de är ifyllda).

Fält för användarmetadataMetadatafält för innehåll
SpråkTyp (dvs. kurs, arbetsyta, resurs, spellista)
LandÄmne (för spellistor, resurser)
IntressenTaggar (kurser)
Organisationer
Position(er)
Aspirerande position
Skala för aktuella kompetenser
Utmärkelser

Partiellt hybridläge ger rekommendationer till kända användare (dvs. användare som har interagerat med innehåll) på samma sätt som matrisfaktoriseringsläget. Partiellt hybridläge övervinner nackdelen med att hantera okända användare (dvs. användare som inte har interagerat med något innehåll). Rekommendationer för okända användare tillhandahålls på grundval av likheter mellan metadata och kända användare. Innehåll som interageras med av kända användare med metadata som liknar en okänd användare används för att ge rekommendationer för okända användare.

Relaterat innehåll identifieras med en likhetspoäng. Detta är en poäng som anger hur liknande två innehållsdelar är baserade på: 

  • Interaktioner från användare
  • Likheten i metadata för innehåll

Full hybrid

Detta är standardinställningen för Totara 15 och senare. Full hybrid fungerar bäst för en ny installation av maskininlärningstjänsten. 

Full hybrid-läge liknar partiellt hybrid-läge. I fullständigt hybridläge används dock fritextfält från användarprofilen (stads- och profilbeskrivning) och innehållsprofil (kursbeskrivning, beskrivning av arbetsyta, beskrivning av spellista och resursinnehåll). För att åstadkomma detta konverteras fritexten till en numerisk matris. De ytterligare data som används i full hybrid-läge ger en bättre metod för att bestämma likheten mellan innehåll och användare.

För- och nackdelar med varje läge

Matrisfaktoriseringsläget kräver minsta möjliga beräkningskostnad och är därför snabbast att utbilda och ge rekommendationer. Det är dock inte möjligt att ge begripliga rekommendationer till okända användare (användare som ännu inte har interagerat med något innehåll).

Det fullständiga hybridläget kräver ökade beräkningsresurser och är därför relativt långsammare att träna och ge rekommendationer. Eftersom metadata för användare och innehåll (inklusive fritext) används i fullhybridläge, ger det goda rekommendationer till okända användare. Dessa rekommendationer baseras enbart på deras metadata, som sedan används för att hitta liknande kända användare.

Det partiella hybridläget ligger i mitten av de två andra lägena när det gäller utnyttjande av beräkningsresurser. Den använder alla metadata för användare och innehåll utom metadata för fritext. Som ett resultat kan detta läge ge rekommendationer till okända användare samtidigt som det är beräkningseffektivt.

Det rekommenderas att en ny eller liten Totara-webbplats konfigureras för att köras med fullt hybridläge. Det är bara när den fullständiga hybridalgoritmen tar för lång tid att träna som det partiella hybridläget ska aktiveras istället. Läget för matrisfaktorisering bör endast användas med mycket stora Totara-webbplatser där en hög volym användare, innehåll och aktivitet resulterar i en förlängd utbildningstid (över en timme) för partiellt hybridläge.

Rekommendationer motor process

Processen som används av rekommendationsmotorn beskrivs i flödesschemat nedan.

Ett flödesschema som beskriver hur rekommendationsmotorn fungerar.Varje block i detta flödesschema beskrivs i detalj nedan.

Datahämtning

Datahämtningsblocket hämtar data från Totara. Data som hämtas inkluderar interaktioner mellan användare, användarmetadata och innehållsmetadata för varje klient.

Användar- och innehållsdatafiler inkluderar metadata för användarna respektive innehållet, medan interaktionsdata är ett register över huruvida en användare har interagerat positivt med innehållet eller interagerat lugnt med innehållet och den tid då interaktionen inträffade.

Användarmetadata består av:

  • ID i databasen
  • Språk
  • Ort (fritext)
  • Land
  • Intressen
  • Aspirerande position
  • Positioner
  • Organisationer
  • Skala för aktuella kompetenser
  • Utmärkelser
  • Profilbeskrivning (fritext)

Innehållsmetadata består av:

  • Innehållstyp (en självklarhet, arbetsyta, artikel, microlearning-artikel och spellista)
  • Ämnen
  • Textbeskrivning (fritext)

Interaktionsdata består av:

  • Användar-ID
  • Innehålls-ID
  • Interaktionsvärde (0 eller 1)
  • Tid för interaktion

Dataläsare

Detta block läser datafilerna som hämtats från Totara till en Python-datastruktur för varje klient åt gången och rör den för vidare bearbetning.

Läge

Detta är ett beslutsblock som ställs in när tjänsten startas. Du kan läsa mer om det i README.md-filen i Machine Learning Service. Användaren kan välja ett läge från följande:

  • Matrix factorisation
  • Delvis hybrids
  • Full hybrid

Behandla data

Beroende på vilket rekommendationsläge som valts omvandlar en av dataprocessorerna data till det kompatibla formulär som kan användas av den efterföljande processen. Utgången för var och en av dataprocessorerna är i gles matrisform, så att minnet används effektivt.

Samarbetande dataprocessor

Detta block ignorerar användar- och innehållsdata och omvandlar interaktionsdata till ett format som efterföljande moduler kan konsumera.

Partiell dataprocessor

Detta block använder metadata för användare och innehåll, samt interaktionsdata, och omvandlar dem för konsumtion i den efterföljande processen. Detta block ignorerar endast fritextfälten för användardata (stads-/stads- och profilbeskrivning) och innehållsdata (textbeskrivning).

Fullständig dataprocessor

Detta använder alla datafält i användar-, innehålls- och interaktionsdata, inklusive fritextfälten för användar- och innehållsdata. Fritextfälten förs genom pipelinen Natural Language Processing där texten rensas och sedan konverteras till en matris av TF-IDF-funktioner. Datauppsättningarna omvandlas sedan till ett kompatibelt formulär så att dessa kan användas för efterföljande bearbetning.

Optimera hyperparametrar

Beroende på rekommendationsläget är hyperparametrar optimerade för bästa prestanda på en slumpmässig, osynlig data som är borttagen från utbildningen. De hyperparametrar som ställs in är den laterala dimensionen och antalet epoker.

Samverkande hyperparameteroptimerare

Dessa är inställda med hjälp av tidigare interaktionsdata för användarna med innehållet om det valda läget är Matrix factorisation .

Innehållsbaserad hyperparameteroptimerare

Om Machine Learning Service startas i Partiell hybrid eller Full hybrid, så anpassas hyperparametrarna med hjälp av tidigare interaktioner mellan användarna med innehållet och tillhandahållna metadata för användarna och innehållet.

Tåg slutlig modell

Beroende på vilket rekommendationsläge som valts används antingen Matrix factorisation (som är en underklass av samarbetsfiltreringsmetoden) eller innehållsbaserad filtreringsmetod för att bygga maskininlärningsmodellen för rekommendationer. Klassen för den modelleringsalgoritm som används implementeras via LightFM-biblioteket och beskrivs i Maciej Kula, 2015.

Samarbetsfiltreringsmodell

Om tjänsten körs i matrisfaktoriseringsläget, kommer den slutliga modellen som utbildas att vara en samarbetsfiltreringsmodell som använder de inställda hyperparametrarna och vidarebefordras till nästa steg.

Innehållsbaserad filtreringsmodell

Om tjänsten körs i  lägena Partiell hybrid eller Full hybrid används den innehållsbaserade filtreringsalgoritmen för att bygga modellen. Datainmatningen för denna algoritm inkluderar användares och objekts metadata. Den slutliga modellen är byggd med den inställda uppsättningen av dessa hyperparametrar från föregående steg. Observera att denna algoritm accepterar data från antingen Partiella databehandlare eller Fullständiga databehandlarblock, vilket innebär att den även kan acceptera och använda bearbetade Natural Language Processed data. 

Cache slutlig modell i minne

Den slutliga utbildade modellen skickas till detta block för cachelagring i minnet, så att det är lätt tillgängligt för frågor från Totara. Förutom att cacha modellen i minnet sparas den också i filsystemet så att den snabbt laddas om tjänsten startas om av någon anledning.

Totara kommunikatör

Detta block vidarebefordrar begäran från Totara till modellen för att rekommendera innehåll till en användare eller hitta liknande innehåll till ett visst innehållsobjekt.

Det returnerade liknande innehållet sorteras i fallande ordning efter cosine likhetspoäng för varje innehållsobjekt med det angivna innehållet.

Rekommenderat innehåll för varje användare sorteras i fallande ordning efter prediktionspoäng. Förutsägelsepoängen (eller rankningarna) själva är inte tolkningsbara; de är helt enkelt ett sätt att rangordna objekten. Ordningen på prediktionspoängen är dock viktig - innehåll med högre prediktionspoäng är mer sannolikt att vara av intresse för användaren än innehåll med lägre prediktionspoäng.

© Copyright 2024 Totara Learning Solutions. All rights reserved.


Var den här artikeln till hjälp?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.