Hoe werkt de aanbevelingsengine?
  • 12 Apr 2023
  • 10 Minuten te lezen

Hoe werkt de aanbevelingsengine?


Article Summary

De aanbevelingsengine is gecodeerd in Python en is verpakt in de Machine Learning Service.

De Totara aanbevelingsengine raadt inhoud aan van zowel Totara Engage als Totara Learn. Inhoud bevat bronnen, afspeellijsten, werkgroepen en cursussen. 

Modellen

De Moodle aanbevelingsengine gebruikt de database om een model te bouwen. Het model wordt vervolgens gebruikt om de aanbevolen inhoud voor de huidige gebruiker te bepalen en te tonen, allemaal in realtime.

Het opbouwen van het model wordt volgens een regelmatig schema uitgevoerd en heet 'training'. Opleiding is wanneer je gegevens worden gebruikt om een 'point-in-time' instantie te maken. Dit formulier noemen we het model. Het model is gebaseerd op de gegevens die beschikbaar zijn op het moment dat de training plaatsvindt. Dit is belangrijk om op te merken als je inhoud toevoegt, omdat activiteit die aan de inhoud is gekoppeld, niet duidelijk is in het model totdat de training plaatsvindt.

Standaard wordt de training van het model elke 24 uur gepland. Het schema kan indien nodig door een beheerder worden gewijzigd. We raden je aan om de standaardinstelling te behouden terwijl je vertrouwd raakt met de activiteit van je site en het aanbevelingsproces.

Hoe worden aanbevelingen bepaald?

De aanbevelingsengine biedt twee types inhoudsaanbevelingen:

  • Gebruikersaanbevelingen: Inhoud aanbevolen aan de huidige gebruiker
  • Gerelateerde inhoud: Vergelijkbare inhoud met de opgegeven inhoud

Beide van deze aanbevelingstypes zijn gebaseerd op een van de volgende:

  •  De eerdere interacties van de gebruiker met de inhoud. In dit geval is soortgelijke inhoud als een bepaald inhoudsonderdeel alleen gebaseerd op hoe de inhoud wordt behandeld. 
  • De eerdere interacties van de gebruiker met de inhoud en metadata van de inhoud en gebruikers.

Interacties verwijzen naar de soorten gebruikersacties met inhoudsonderdelen. Interacties worden door het systeem geregistreerd wanneer een gebruiker zich inschrijft in een cursus of een bron, afspeellijst of werkgroep bekijkt, leuk vindt of er commentaar op geeft. De sterkte van de interactie wordt weergegeven op een binaire schaal. Gebruikersacties stellen de interactiewaarde in zoals getoond:

  • Een enkele weergave op een bron, afspeellijst of werkgroep zet de interactiewaarde op 0.
  • Een volgende weergave OF een enkele weergave met een vind-ik-leuk en/of opmerking stelt de interactiewaarde in op 1. Volgende activiteiten wijzigen de interactiewaarde niet nadat deze op 1 is gezet. 
  • Wanneer een gebruiker zich aanmeldt voor een zelfinschrijfbare cursus, wordt de interactiewaarde ingesteld op 1. Het bekijken van een cursus wordt niet geregistreerd als interactie.

Een interactie van een gebruiker met inhoud die een waarde 0 heeft, wordt ook wel aangeduid als ontspannen interactie, terwijl een interactiewaarde van 1 wordt aangeduid als positief interactie.

Het aanbevelingsmodel maakt gebruik van één van drie machine learning-algoritmen (of modi):

  • Matrixfactorisatie
  • Gedeeltelijk hybride
  • Volledig hybride (standaardmodus in Totara 15 en hoger)

De functies van de drie modi worden hieronder in meer detail beschreven. De standaardmodus voor Totara 15 en hoger is volledig hybride, maar de modus kan op elk moment worden gewijzigd. De nieuwe modus zal niet operationeel zijn totdat de training om het nieuwe model te bouwen is voltooid.

De fundamentele logica die voor alle modi wordt gebruikt, omvat het identificeren van inhoud waarmee de huidige gebruiker geen interactie heeft, maar waarschijnlijk geïnteresseerd is. Deze inhoud is geïdentificeerd uit de interacties van andere vergelijkbare gebruikers met de opgegeven inhoud die niet is bekeken door de huidige gebruiker. 

De methode die wordt gebruikt om vergelijkbare gebruikers te identificeren is verschillend voor elke modus. Op dezelfde manier zijn de gegevens die door de engine worden gebruikt om inhoudsaanbevelingen te geven afhankelijk van de modus. Elke modus wordt hieronder in meer detail beschreven.

Matrixfactorisatie

In deze modus gebruikt de aanbevelingsengine geen inhoud of gebruikersmetadata. De aanbevelingsengine is uitsluitend gebaseerd op de interactiegegevens van gebruikers met inhoud. De logica van gebruikersaanbevelingen kan in twee stappen worden samengevat:

  1. Identificeer vergelijkbare gebruikers die in het algemeen dezelfde interactiepatronen delen als de huidige gebruiker.
  2. Wijs een aanbevelingsscore toe voor elke geïdentificeerde gebruiker aan elk beschikbaar inhoudsonderdeel op basis van de interactie tussen deze gebruikers.

Na het sorteren van inhoudsonderdelen op basis van hun aanbevelingsscores, wordt de huidige gebruiker vervolgens aanbevolen om de top N inhoudsonderdelen (N kan worden geconfigureerd door de Totara-sitebeheerder). Onderdelen waarmee de gebruiker al heeft gereageerd, worden niet aanbevolen.

Gerelateerde inhoud wordt verstrekt met behulp van gelijkheidsscores. De gelijkheidsscores worden berekend voor elk inhoudsonderdeel met elk ander inhoudsonderdeel op basis van het patroon van de interactie met de gebruiker. Een voorbeeld zal helpen dit te illustreren. In dit voorbeeld wordt met inhoudsonderdelen x en y omgegaan door dezelfde set gebruikers. Inhoudsonderdeel z wordt gebruikt door een andere set gebruikers. Daarom zal x een hoge gelijkheidscore hebben met y, maar x zal een lage gelijkheidscore hebben met z.

Alle inhoudsonderdelen worden vervolgens gesorteerd op hun gelijkheidscore met het huidige inhoudsonderdeel. De top N onderdelen worden aanbevolen voor de gebruiker als vergelijkbare onderdelen.

Een van de nadelen van deze modus is dat het geen inhoud kan aanbevelen aan onbekende gebruikers, d.w.z. gebruikers die nog geen interactie hebben met inhoud.

Gedeeltelijk hybride

In gedeeltelijke hybride modus gebruikt de machine learning engine de metadata van zowel gebruikers als inhoud. De tabel toont de metadatavelden die voor elk worden gebruikt (als ze zijn ingevuld).

Metadatavelden van gebruikerInhoud metadatavelden
TaalType (d.w.z. cursus, werkgroep, bron, afspeellijst)
LandOnderwerp (voor afspeellijsten, bronnen)
Persoonlijke labelsTags (cursussen)
Organisatie(s)
Plaats(en)
Positie aspireren
Huidige competentiesschaal
Badges

De gedeeltelijke hybride modus geeft aanbevelingen aan bekende gebruikers (d.w.z. gebruikers die interactie hebben gehad met inhoud) op dezelfde manier als de matrixfactorisatiemodus. Gedeeltelijke hybride modus overwint het nadeel van het omgaan met onbekende gebruikers (d.w.z. gebruikers die geen interactie hebben met inhoud). Aanbevelingen voor onbekende gebruikers worden gegeven op basis van de gelijkheid van metadata met bekende gebruikers. Content waarmee bekende gebruikers omgaan met metagegevens die vergelijkbaar zijn met een onbekende gebruiker, wordt gebruikt om aanbevelingen voor onbekende gebruikers aan het licht te brengen.

Gerelateerde inhoud wordt geïdentificeerd met behulp van een gelijkheidsscore. Dit is een score die aangeeft hoe gelijkaardig twee delen inhoud zijn gebaseerd op: 

  • De interacties van gebruikers
  • De gelijkheid van de metadata van de inhoud

Volledig hybride

Dit is de standaardinstelling voor Totara 15 en hoger. Volledig hybride werkt het best voor een nieuwe installatie van de machine learning-service. 

De volledige hybride modus lijkt op de gedeeltelijke hybride modus. In de volledige hybride modus worden echter vrije tekstvelden uit het gebruikersprofiel (stad en profielbeschrijving) en inhoudsprofiel (cursusbeschrijving, beschrijving van de werkgroep, beschrijving van de afspeellijst en broninhoud) gebruikt. Om dit te bereiken, wordt de vrije tekst geconverteerd naar een numerieke matrix. De extra gegevens die in volledige hybride modus worden gebruikt, bieden een betere methode om de gelijkheid tussen inhoud en gebruikers te bepalen.

Voor- en nadelen van elke modus

De matrixfactorisatiemodus vereist de minste hoeveelheid overhead voor berekeningen en is daarom het snelste om te trainen en aanbevelingen te doen. Het is echter niet in staat om onbegrijpelijke aanbevelingen te doen aan onbekende gebruikers (gebruikers die nog geen interactie hebben met inhoud).

De volledige hybride modus vereist meer rekenmiddelen en is daarom relatief trager om te trainen en aanbevelingen te doen. Omdat de metadata van gebruikers en inhoud (inclusief vrije tekst) in volledige hybride modus wordt gebruikt, geeft het goede aanbevelingen aan onbekende gebruikers. Deze aanbevelingen zijn alleen gebaseerd op hun metadata, die vervolgens wordt gebruikt om vergelijkbare bekende gebruikers te vinden.

De gedeeltelijke hybride modus ligt in het midden van de twee andere modi wat betreft het gebruik van rekenmiddelen. Het gebruikt alle metadata van gebruikers en inhoud, behalve metadata in vrije tekst. Hierdoor kan deze modus aanbevelingen doen aan onbekende gebruikers terwijl ze nog steeds rekenkundig efficiënt is.

Het wordt aanbevolen om een nieuwe of kleine Totara-site te configureren om te werken met volledige hybride modus. Alleen wanneer het volledige hybride algoritme te lang duurt om te trainen, moet de gedeeltelijke hybride modus in plaats daarvan worden ingeschakeld. De matrixfactorisatiemodus mag alleen worden gebruikt met zeer grote Totara-sites waar een groot aantal gebruikers, inhoud en activiteit resulteert in een langere trainingstijd (meer dan een uur) voor gedeeltelijke hybride modus.

Aanbevelingen engine proces

Het proces dat wordt gebruikt door de aanbevelingsengine wordt beschreven in het onderstaande stroomschema.

Een stroomschema waarin wordt beschreven hoe de aanbevelingsengine werkt.Elk blok van dit stroomschema wordt hieronder in detail beschreven.

Data-apporteerder

Het data-apporteerblok haalt gegevens op van Totara. De opgehaalde gegevens omvatten interacties tussen gebruiker en inhoud, gebruikersmetadata en inhoudmetadata van elke tenant.

De gebruikers- en inhoudsgegevensbestanden bevatten metagegevens van de gebruikers en de inhoud, terwijl de interactiegegevens een record zijn van de vraag of een gebruiker positief heeft gereageerd op de inhoud of recreatief heeft gereageerd op de inhoud en de tijd waarop de interactie heeft plaatsgevonden.

De metadata van de gebruiker bestaat uit:

  • ID in de databank
  • Taal
  • Plaats (vrije tekst)
  • Land
  • Persoonlijke labels
  • Positie aspireren
  • Posities
  • Organisaties
  • Huidige competentiesschaal
  • Badges
  • Profielbeschrijving (vrije tekst)

De metadata van de inhoud bestaan uit:

  • Inhoudstype (één van de cursus, werkgroep, artikel, microlearning-artikel en afspeellijst)
  • Onderwerpen
  • Tekstbeschrijving (vrije tekst)

De interactiegegevens bestaan uit:

  • Gebruikers ID
  • Content ID
  • Interactiewaarde (0 of 1)
  • Tijdstip van interactie

Datalezer

Dit blok leest de gegevensbestanden die uit Totara zijn opgehaald in een Python-gegevensstructuur voor elke tenant tegelijk en voert ze door voor verdere verwerking.

Modus

Dit is een beslisblok dat wordt ingesteld wanneer de service voor het eerst wordt gestart. Je kunt er meer over lezen in het README.md-bestand van de Machine Learning-service. De gebruiker kan één modus kiezen uit het volgende:

  • Matrixfactorisatie
  • Gedeeltelijk hybride
  • Volledig hybride

Gegevens verwerken

Afhankelijk van de geselecteerde aanbevelingsmodus, transformeert een van de gegevensverwerkers de gegevens in het compatibele formulier dat kan worden gebruikt door het volgende proces. De output van elk van de gegevensverwerkers is in beperkte matrices, zodat het geheugen efficiënt wordt gebruikt.

Samenwerkende gegevensverwerker

Dit blok negeert de gebruikers- en inhoudsgegevens en transformeert de interactiegegevens in een formaat dat de volgende modules kunnen verbruiken.

Gedeeltelijke gegevensverwerker

Dit blok gebruikt de metadata van de gebruiker en de inhoud, evenals de interactiegegevens, en transformeert het voor consumptie in het daaropvolgende proces. Dit blok negeert alleen de vrije tekstvelden van gebruikersgegevens (plaats en profielbeschrijving) en inhoudsgegevens (tekstbeschrijving).

Volledige gegevensverwerker

Dit maakt gebruik van alle gegevensvelden in de gebruikers-, inhouds- en interactiegegevens, inclusief de vrije tekstvelden van de gebruiker en inhoudsgegevens. De vrije tekstvelden worden door de pijplijn voor natuurlijke taalverwerking geleid waar de tekst wordt opgeschoond en vervolgens omgezet naar een matrix van TF-IDF-functies. De gegevenssets worden vervolgens getransformeerd in een compatibel formulier, zodat ze kunnen worden gebruikt voor latere verwerking.

Optimaliseer hyperparameters

Afhankelijk van de aanbevelingsmodus worden hyperparameters geoptimaliseerd voor de beste prestaties op een willekeurige ongeziene gegevensset naast de training. De hyperparameters die worden afgestemd zijn de laterale dimensie en het aantal epochs.

Samenwerkende optimalisatie voor hyperparameters

Deze worden afgestemd met behulp van de gegevens van eerdere interacties van de gebruikers met de inhoud als de geselecteerde modus Matrixfactorisatie is.

Contentgebaseerde optimalisatie voor hyperparameters

Als de Machine Learning-service wordt gestart in Gedeeltelijk hybride of Volledig hybride, worden de hyperparameters afgestemd met behulp van de eerdere interacties van de gebruikers met de inhoud en de verstrekte metadata van de gebruikers en de inhoud.

Train eindmodel

Afhankelijk van de geselecteerde aanbevelingsmodus, wordt ofwel de Matrixfactorisatie (die een subklasse is van de gezamenlijke filteringsbenadering) of de op inhoud gebaseerde filteringsbenadering gebruikt om het machine learning-model voor aanbevelingen op te bouwen. De klasse van het gebruikte modelleringsalgoritme wordt geïmplementeerd via de LightFM-bibliotheek en wordt beschreven in Maciej Kula, 2015.

Samenwerkend filtermodel

Als de service wordt uitgevoerd in de Matrix factorisatiemodus, is het uiteindelijke getrainde model een gezamenlijk filtermodel dat de aangepaste hyper-parameters gebruikt en wordt doorgestuurd naar de volgende fase.

Op inhoud gebaseerd filtermodel

Als de service draait in de gedeeltelijk hybride of de volledige hybride modus, wordt het op inhoud gebaseerde filteralgoritme gebruikt om het model te bouwen. De data-invoer voor dit algoritme bevat de metadata van gebruikers en onderdelen. Het uiteindelijke model is gemaakt met behulp van de afgestemde set van deze hyperparameters van de vorige fase. Let op dat dit algoritme gegevens accepteert van een van de blokken Gedeeltelijke gegevensverwerker en Volledige gegevensverwerker, wat betekent dat het ook de verwerkte verwerkte gegevens in natuurlijke taal kan accepteren en gebruiken. 

Cache het uiteindelijke model in het geheugen

Het uiteindelijke getrainde model wordt naar dit blok gestuurd om in het geheugen gecached te worden, zodat het gemakkelijk beschikbaar is voor query's van Totara. Afgezien van het cachen van het model in het geheugen, wordt het ook opgeslagen in het bestandssysteem om snel te worden geladen in het geval dat de service om welke reden dan ook opnieuw wordt gestart.

Totara communicator

Dit blok stuurt de verzoeken van Totara naar het model om inhoud aan een gebruiker aan te bevelen of om inhoud te vinden die vergelijkbaar is met een bepaald inhoudsonderdeel.

De geretourneerde vergelijkbare inhoud wordt in aflopende volgorde gesorteerd op de cosinus soortgelijkheidsscore van elk inhoudsonderdeel met de gegeven inhoud.

De aanbevolen inhoud voor elke gebruiker wordt in aflopende volgorde gesorteerd op de voorspellingsscore. De voorspellingsscores (of rangschikkingen) zelf kunnen niet worden geïnterpreteerd; ze zijn slechts een middel om de onderdelen te rangschikken. De volgorde van de voorspellingsscores is echter belangrijk - inhoud met hogere voorspellingsscores is eerder interessant voor de gebruiker dan inhoud met lagere voorspellingsscores.

© Copyright 2024 Totara Learning Solutions. All rights reserved.


Was dit artikel nuttig?

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.