Hintergrund Einleitung
Hintergrund Einleitung
Mit der kontinuierlichen Entwicklung der Netzwerktechnologie und dem immer größer werdenden Umfang des elektronischen Handels nehmen die Anzahl und die Vielfalt der Waren schnell zu, und die Benutzer müssen viel Zeit aufwenden, um die Waren zu finden, die sie kaufen möchten. Dies ist eine Informationsflut. Um dieses Problem zu lösen, wurden Empfehlungssysteme entwickelt.
Das Empfehlungssystem ist eine Teilmenge des Informationsfiltersystems, das in einer Reihe von Bereichen wie Filme, Musik, E-Commerce und Feed-Stream-Empfehlungen eingesetzt werden kann. Das Empfehlungssystem erkennt die persönlichen Bedürfnisse und Interessen des Benutzers durch Analyse und Auswertung des Benutzerverhaltens und empfiehlt Informationen oder Produkte, die für den Benutzer von Interesse sein könnten. Im Gegensatz zu Suchmaschinen verlangen Empfehlungssysteme nicht, dass die Benutzer ihre Bedürfnisse genau beschreiben, sondern modellieren ihr historisches Verhalten, um proaktiv Informationen anzubieten, die den Interessen und Bedürfnissen der Benutzer entsprechen.
In diesem Artikel verwenden wir PaddlePaddle, eine Deep-Learning-Plattform von Baidu, um ein Modell zu erstellen, und kombinieren Milvus, eine Vektorähnlichkeitssuchmaschine, um ein personalisiertes Empfehlungssystem zu erstellen, das Benutzern schnell und präzise interessante Informationen liefern kann.
Datenvorbereitung
Wir nehmen den MovieLens Million Dataset (ml-1m) [1] als Beispiel. Der ml-1m-Datensatz enthält 1.000.000 Bewertungen von 4.000 Filmen durch 6.000 Nutzer, die vom GroupLens Research Lab gesammelt wurden. Die Originaldaten beinhalten Feature-Daten des Films, User-Feature und User-Bewertung des Films, siehe ml-1m-README [2] .
Der ml-1m-Datensatz enthält 3 .dat-Artikel: movies.dat、users.dat und ratings.dat.movies.dat enthält die Merkmale des Films, siehe Beispiel unten:
MovieID::Title::Genres
1::ToyStory(1995)::Animation|Children's|Comedy
Dies bedeutet, dass die Film-ID 1 ist und der Titel 《Toy Story》 lautet, der in drei Kategorien unterteilt ist. Diese drei Kategorien sind Animation, Kinder und Komödie.
users.dat enthält die Merkmale des Benutzers, siehe Beispiel unten:
UserID::Gender::Age::Occupation::Zip-code
1::F::1::10::48067
Das bedeutet, dass die Benutzer-ID 1 ist, weiblich und jünger als 18 Jahre alt. Die Berufs-ID ist 10.
ratings.dat enthält das Merkmal der Filmbewertung, siehe Beispiel unten:
UserID::MovieID::Rating::Timestamp 1::1193::5::978300760
Das heißt, der Benutzer 1 bewertet den Film 1193 mit 5 Punkten.
Fusionsempfehlungsmodell
Für das personalisierte Filmempfehlungssystem haben wir das von PaddlePaddle implementierte Fusion Recommendation Model [3] verwendet. Dieses Modell ist aus der industriellen Praxis entstanden.
Zunächst werden die Benutzermerkmale und die Filmmerkmale als Eingabe für das neuronale Netz verwendet:
- Die Benutzermerkmale enthalten vier Attributinformationen: Benutzer-ID, Geschlecht, Beruf und Alter.
- Das Filmmerkmal enthält drei Attributinformationen: Film-ID, Filmtyp-ID und Filmname.
Für das Benutzermerkmal wird die Benutzer-ID auf eine Vektordarstellung mit einer Größe von 256 Dimensionen abgebildet, in die vollständig verbundene Schicht eingegeben und eine ähnliche Verarbeitung für die anderen drei Attribute durchgeführt. Dann werden die Merkmalsrepräsentationen der vier Attribute vollständig verknüpft und separat hinzugefügt.
Bei Filmmerkmalen wird die Film-ID auf ähnliche Weise verarbeitet wie die Benutzer-ID. Die Filmtyp-ID wird direkt in Form eines Vektors in die vollverknüpfte Schicht eingegeben, und der Filmname wird durch einen Vektor fester Länge unter Verwendung eines neuronalen Textfaltungsnetzwerks dargestellt. Die Merkmalsrepräsentationen der drei Attribute werden dann vollständig verknüpft und separat hinzugefügt.
Nach Erhalt der Vektordarstellung des Benutzers und des Films wird die Kosinus-Ähnlichkeit der beiden als Punktzahl des personalisierten Empfehlungssystems berechnet. Schließlich wird das Quadrat der Differenz zwischen der Ähnlichkeitsbewertung und der tatsächlichen Bewertung des Nutzers als Verlustfunktion des Regressionsmodells verwendet.
1-Benutzer-Film-personalisierte-Empfehlung-Milvus.jpg
System-Übersicht
In Kombination mit dem Fusionsempfehlungsmodell von PaddlePaddle wird der vom Modell erzeugte Filmmerkmalsvektor in der Milvus-Vektorähnlichkeitssuchmaschine gespeichert, und das Benutzermerkmal wird als zu durchsuchender Zielvektor verwendet. Die Ähnlichkeitssuche wird in Milvus durchgeführt, um das Abfrageergebnis als empfohlene Filme für den Benutzer zu erhalten.
2-system-überblick.jpg
Die Methode des inneren Produkts (IP) wird in Milvus zur Berechnung des Vektorabstands verwendet. Nach der Normalisierung der Daten stimmt die Ähnlichkeit des inneren Produkts mit dem Ergebnis der Kosinus-Ähnlichkeit im Fusionsempfehlungsmodell überein.
Anwendung eines persönlichen Empfehlungssystems
Der Aufbau eines personalisierten Empfehlungssystems mit Milvus erfolgt in drei Schritten. Details zur Funktionsweise entnehmen Sie bitte dem Mivus Bootcamp [4].
Schritt 1:Modell-Training
# run train.py
$ python train.py
Die Ausführung dieses Befehls erzeugt ein Modell recommender_system.inference.model im Verzeichnis, das Filmdaten und Benutzerdaten in Merkmalsvektoren umwandeln kann und Anwendungsdaten für Milvus zum Speichern und Abrufen erzeugt.
Schritt 2:Datenvorverarbeitung
# Data preprocessing, -f followed by the parameter raw movie data file name
$ python get_movies_data.py -f movies_origin.txt
Die Ausführung dieses Befehls erzeugt Testdaten movies_data.txt im Verzeichnis, um eine Vorverarbeitung der Filmdaten zu erreichen.
Schritt 3:Implementierung eines persönlichen Empfehlungssystems mit Milvus
# Implementing personal recommender system based on user conditions
$ python infer_milvus.py -a <age>-g <gender>-j <job>[-i]
Die Ausführung dieses Befehls implementiert personalisierte Empfehlungen für bestimmte Benutzer.
Der Hauptprozess ist:
- Durch load_inference_model werden die Filmdaten durch das Modell verarbeitet, um einen Film-Merkmalsvektor zu erzeugen.
- Laden des Film-Merkmalsvektors in Milvus über milvus.insert.
- Je nach Alter/Geschlecht/Beruf des Benutzers, die in den Parametern angegeben sind, wird er in einen Benutzer-Merkmalsvektor umgewandelt, milvus.search_vectors wird für die Ähnlichkeitssuche verwendet, und das Ergebnis mit der höchsten Ähnlichkeit zwischen dem Benutzer und dem Film wird zurückgegeben.
Vorhersage der fünf besten Filme, an denen der Benutzer interessiert ist:
TopIdsTitleScore
03030Yojimbo2.9444923996925354
13871Shane2.8583481907844543
23467Hud2.849525213241577
31809Hana-bi2.826111316680908
43184Montana2.8119677305221558
Zusammenfassung
Durch die Eingabe von Benutzer- und Filminformationen in das Fusionsempfehlungsmodell können wir übereinstimmende Punktzahlen erhalten und dann die Punktzahlen aller Filme auf der Grundlage des Benutzers sortieren, um Filme zu empfehlen, die für den Benutzer von Interesse sein könnten. Dieser Artikel kombiniert Milvus und PaddlePaddle, um ein personalisiertes Empfehlungssystem aufzubauen. Milvus, eine Vektorsuchmaschine, wird verwendet, um alle Filmmerkmaldaten zu speichern, und dann wird eine Ähnlichkeitssuche für die Benutzermerkmale in Milvus durchgeführt. Das Suchergebnis ist das Filmranking, das das System dem Benutzer empfiehlt.
Die Vektorsuchmaschine Milvus [5] ist mit verschiedenen Deep-Learning-Plattformen kompatibel und durchsucht Milliarden von Vektoren mit einer Reaktionszeit von nur einer Millisekunde. Mit Milvus können Sie mühelos weitere Möglichkeiten von KI-Anwendungen erkunden!
Referenz
- MovieLens Million Dataset (ml-1m): http://files.grouplens.org/datasets/movielens/ml-1m.zip
- ml-1m-README: http://files.grouplens.org/datasets/movielens/ml-1m-README.txt
- Fusion Recommendation Model von PaddlePaddle: https://www.paddlepaddle.org.cn/documentation/docs/zh/beginners_guide/basics/recommender_system/index.html#id7
- Bootcamp: https://github.com/milvus-io/bootcamp/tree/master/solutions/recommendation_system
- Milvus: https://milvus.io/
- Datenvorbereitung
- Fusionsempfehlungsmodell
- System-Übersicht
- Anwendung eines persönlichen Empfehlungssystems
- Zusammenfassung
- Referenz
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word