Ich muss Empfehlungen in meiner Arbeit verwenden und habe die Empfehlungsbibliothek von Python recherchiert, um sie als Memorandum zusammenzufassen. Da es sich hauptsächlich um eine kurze Einführung in die Bibliothek handelt und die Erklärung des Algorithmus usw. nicht erwähnt wird, beziehen Sie sich gegebenenfalls auf ein anderes Dokument.
Ich habe mich vorher noch nicht mit den Empfehlungen befasst, aber heutzutage habe ich das Gefühl, dass ich ernsthaft lernen muss. ..
crab HP: http://muricoca.github.io/crab/ GitHub: https://github.com/muricoca/crab
Diese Bibliothek war die erste, die in Pythons Implementierung der Co-Filterung gefunden wurde. Es wird gesagt, dass artikelbasierte und benutzerbasierte Co-Filterung berechnet werden kann, aber es scheint, dass sie in letzter Zeit nicht viel verwendet wurde, da das letzte Update von GitHub Master vor 4 Jahren war. .. In modernen Umgebungen funktionierte es aufgrund der Abhängigkeiten anderer Bibliotheken nicht gut.
Präsentationsmaterialien auf der Konferenz http://conference.scipy.org/scipy2011/slides/caraciolo_crab_recommendation.pdf
python-recsys HP: http://ocelma.net/software/python-recsys/build/html/index.html GitHub: https://github.com/ocelma/python-recsys
Eine kooperative Filterung unter Verwendung von Singularitätszerlegungs- und Nachbarschaftsalgorithmen ist möglich. Das berechnete Modell kann gespeichert und als Datei wiederverwendet werden. Es gibt viele Methoden zur Auswertung. Dies ist daher am einfachsten zu verwenden, es sei denn, Sie streben nach Genauigkeit.
Die Methode mit Nonnegative Matrix Factorization (NMF), die in den letzten Jahren der Mainstream war, wird jedoch nicht unterstützt. Wenn Sie sie also verwenden möchten, sollten Sie sie mit der folgenden Ninfa implementieren.
Übrigens musste ich dieses Mal auch die Ähnlichkeit zwischen Elementen berechnen, also habe ich mich dafür entschieden.
nimfa HP: http://nimfa.biolab.si GitHub: https://github.com/marinkaz/nimfa
Die in den letzten Jahren populär gewordene Methode mit NMF scheint nicht als Empfehlungsbibliothek zu existieren, aber da die für die Implementierung wichtigen Matrixoperationen als Bibliothek bereitgestellt werden, kann sie ohne große Schwierigkeiten implementiert werden. Scheint machbar zu sein. Die Implementierungsalgorithmen sind ziemlich zahlreich und es gab allein mehr als 10 Arten von Faktorisierungsimplementierungen. Da ist ein Unterschied. .. (Ry
** Referenzmaterial zu NMF ** [Matrix Factorization Techniques for Recommender Systems] (http://www2.research.att.com/~volinsky/papers/ieeecomputer.pdf) Grundlagen der nicht-negativen Matrixfaktor-Zerlegung NMF und Anwendung auf Daten- / Signalanalyse (http://www.kecl.ntt.co.jp/icl/signal/sawada/mypaper/829-833_9_02.pdf) [Nicht negative Matrixfaktorisierung] (http://d.hatena.ne.jp/a_bicky/20100325/1269479839)
Spark + MLlib
MLlib - Collaborative Filtering
Spark + MLlib verfügt auch über eine Empfehlungsimplementierung. Wenn Sie also die Datenmenge verteilen möchten, die nicht skaliert werden kann, sollten Sie diese verwenden. In MLlib wird die Matrixfaktorisierung mithilfe einer Technik namens Alternate Least Square implementiert, und es wird auch eine Python-API bereitgestellt.
** Verweise ** [Spark and Matrix Factorization] (http://stanford.edu/~rezab/slides/reza_codeneuro.pdf)
[Implementierung eines Empfehlungssystems in Dataproc mit Spark's MLlib] (http://qiita.com/kndt84/items/b975ac9e6552f5289ec9)
Wenn Sie Empfehlungen in Python implementieren und diese einfach verwenden möchten, ist die Verwendung von Python-recsys meiner Meinung nach der schnellste Weg. NMF wird jedoch nicht unterstützt, was heutzutage sehr beliebt ist. Wenn Sie also NMF verwenden möchten, ist es meiner Meinung nach besser, es mit nimfa zu implementieren.
Wenn Sie eine große Datenmenge verarbeiten möchten, die nicht skaliert werden kann, verfügt Spark + MLlib über eine Empfehlungsimplementierung und eine Python-API. Ich denke, es ist besser, diese zu verwenden. Dies wurde separat überprüft und wird in einem anderen Artikel vorgestellt.
Recommended Posts