Ich bin Kubota von NTT Docomo. Dies ist der zweite Auftritt.
Kennen Sie die Technologie Item2Vec? Item2Vec ist eine Technologie, die Word2Vec, das verteilte Ausdrücke von Wörtern aus Sätzen erfasst, auf das Empfehlungssystem anwendet. Insbesondere bei der Betrachtung der Empfehlung auf der EC-Website wird das Wort Word2Vec als Produkt verwendet, der Satz wird als vom Benutzer bewerteter Objektsatz verwendet, der verteilte Ausdruck des Artikels wird erfasst und die Empfehlung wird basierend auf der Ähnlichkeit zwischen den Artikeln abgegeben. Ich habe Lust dazu.
Da es einfach zu implementieren ist, gibt es viele Artikel, die ich relativ ausprobiert habe, aber es gibt einige Punkte, die Sie beachten sollten, wenn Sie tatsächlich über eine Anwendung auf das Empfehlungssystem nachdenken.
Es gibt eine Themenanalysebibliothek namens gensim, mit der Item2Vec einfach implementiert werden kann. Sie können das Modell trainieren, indem Sie eine Reihe von Elementen, die vom Benutzer ausgewertet werden, in eine Zeile und eine Textdatei (diesmal item_buskets.txt) eingeben, die durch Leerzeichen für jedes Element getrennt sind (siehe folgendes Beispiel). Die Parameter werden später erklärt. Es ist wirklich einfach!
from gensim.models import word2vec
sentences = word2vec.LineSentence('item_buskets.txt')
model = word2vec.Word2Vec(sentences)
Sie können Item2Vec einfach mit gensim implementieren, einer Bibliothek zur Themenanalyse. Da gensim ursprünglich für die Anwendung auf die Verarbeitung natürlicher Sprache erstellt wurde, müssen Änderungen entsprechend der Problemeinstellung vorgenommen werden, wenn es auf ein Empfehlungssystem mit einer anderen Problemeinstellung angewendet wird.
Datensatzunterschiede Da es sich bei dem von Word2Vec behandelten Korpus um einen Satz handelt, handelt es sich um eine Datenstruktur, die als Satz wie Grammatik eingeschränkt ist, während der von Item2Vec behandelte Artikelsatz wie die Kaufhistorie des E-Commerce durch das Verhalten des Benutzers und die Art des Artikels definiert wird. Datenstruktur. Daher kann die Art des Datensatzes unterschiedlich sein.
Unterschiede in den zutreffenden Feldern Die Verarbeitung natürlicher Sprache, die das Anwendungsfeld von Word2Vec ist, und das Empfehlungssystem, das das Anwendungsfeld von Item2Vec ist, unterscheiden sich in erster Linie. Bei der Verarbeitung natürlicher Sprache kann das Erhalten einer genauen verteilten Darstellung häufig verwendeter Wörter, die in verschiedenen Sätzen vorkommen, indirekt die Genauigkeit beeinflussen, sollte jedoch nicht endgültig sein. Andererseits ist im Empfehlungssystem die Erfassung einer genauen verteilten Darstellung der von verschiedenen Benutzern gekauften Produkte entscheidend wirksam, um die Conversion-Rate zu erhöhen, die das Empfehlungssystem erreichen möchte.
Aufgrund dieser Unterschiede wird angenommen, dass sich die Hyperparameter von Word2Vec und Item2Vec unterscheiden.
Ein Artikel, der diese Hypothese testete, war Word2vec angewendet auf Empfehlung: Hyperparameters Matter, berichtet auf recsys 2018. Die folgenden experimentellen Einstellungen und Bewertungsergebnisse stammen aus diesem Artikel.
Die Verteilung ist je nach Datensatz sehr charakteristisch. 30 Musikdatensatz mit den Daten von last.fm und Deezer-Datensatz mit den Daten von Deezer Ist ein Musik-Streaming-System, und es gibt einen erheblichen Unterschied zwischen populären Songs und unbeliebten Songs. Es gibt auch einen Unterschied in der Popularität und Unbeliebtheit in Bezug auf Click-Stream-Datensätze. Andererseits weist der E-Commerce-Datensatz eine sanftere Kurve auf als die beiden vorherigen.
Architektur Ich verwende Skip-Gramm mit negativer Stichprobe (SGNS).
Problemstellung Das Problem wird festgelegt, um die nächste Aktion aus dem vergangenen Aktionsverlauf vorherzusagen. Wenn das Modell tatsächlich trainiert wird, wird das SGNS-Modell bis zum $ (n-1) $ -ten trainiert, und das $ n $ -te wird vorhergesagt und bewertet.
Bewertungsindex (Trefferquote @ K (HR @ K)) Dies ist ein Index, der eine Liste von K Elementen pro Benutzer erstellt, 1 setzt, wenn das $ n $ -te Element enthalten ist, 0, wenn es nicht enthalten ist, und die Summe dieser Elemente durch die Anzahl der Benutzer dividiert. Je größer K, desto größer HR.
Bewertungsindex (Normalisierter diskontierter kumulativer Gewinn @ K (NDCG @ K)) NDCG ist ein Ranking-Bewertungsindex, und es ist ein Index, um zu bewerten, in welcher Reihenfolge die Vorhersage des $ n $ -ten Elements tatsächlich mit den präsentierten K-Elementen getroffen wurde. Je größer der Wert, desto besser das Ranking.
NDCG@K = \left\{
\begin{array}{ll}
\frac{1}{\log_{2} (j+1)} & (\text{if} \ j^{th} \ \text{predicted item is correct}) \\
0 & (\text{otherwise})
\end{array}
\right.
In dem oben gezeigten Artikel werden die folgenden Parameter gesucht und ausgewertet.
Parameter | Entsprechende Optionen in Word2Vec von gensim |
---|---|
window size $ L $ | window |
epochs $ n $ | iter |
sub-sampling parameter $ t $ | sample |
negative sampling distribution parameter $ \alpha $ | ns_exponent |
embedding size | size |
the number of negative samples | negative |
learning rate | alpha, min_alpha |
Wahrscheinlich nicht sehr vertraut, also denke ich, dass es $ t $ und $ \ alpha $ sind. Der Sub-Sampling-Parameter $ t $ ist ein Parameter, der sich auf das Downsampling von Hochfrequenzwörtern bezieht. Bei der Verarbeitung natürlicher Sprache werden die hochfrequenten Wörter "a" und "the" heruntergesampelt, da sie im Vergleich zu den niederfrequenten Wörtern nicht viele Informationen enthalten. Bei der Problemstellung des Empfehlungssystems sollten beliebte Elemente, bei denen es sich häufig um Wörter handelt, einen erheblichen Einfluss auf die Genauigkeit des Empfehlungssystems haben. Daher ist es verständlich, dass der Einfluss der Parameter wahrscheinlich hoch ist.
Als nächstes ist der negative Abtastverteilungsparameter $ \ alpha $ ein Parameter, der die Form der Verteilung ändert, die negativ abgetastet werden soll. Der Standardwert für Gensim ist 0,75. $ \ Alpha = 1 $ bedeutet Abtastung basierend auf der Worthäufigkeit, $ \ alpha = 0 $ bedeutet Zufallsstichprobe und negative Werte erleichtern die Abtastung seltener.
In der Arbeit scheinen die in der Tabelle gezeigten Parameter untersucht worden zu sein, aber es scheint, dass die Leistung mit Ausnahme der vier fett gedruckten Parameter nicht wesentlich beeinträchtigt wurde und die vier Parameter im Detail bewertet werden.
Die folgende Abbildung zeigt die Bewertungsergebnisse des Papiers. Wenn Sie sich nur Item2Vec (Out-of-the-Box-SGNS in der Tabelle) ansehen, das mit den Standardparametern von gensim und Item2Vec (vollständig optimiertes SGNS in der Tabelle) mit den vier Parametern als optimalen Parametern implementiert wurde, denke ich, dass dies vorerst in Ordnung ist.
Die Leistung von Musikdatensätzen (30 Musikdatensätze und Deezer-Datensätze), die einen großen Unterschied zwischen beliebten und unbeliebten Elementen aufwiesen, ist etwa doppelt so hoch wie die Standardleistung! Der Click-Stream-Datensatz ist ungefähr zehnmal genauer, was erstaunlich ist.
Das Papier zeigt die Beziehung zwischen der Verteilung und Genauigkeit von $ \ alpha $ (ns_exponent für gensim), die ein Parameter der negativen Stichprobenverteilung in einem 30-Musik-Datensatz ist. Sie können sehen, dass der Standardparameter von gensim, 0,75, nicht der optimale Parameter ist. Übrigens wurde basierend auf den Ergebnissen dieses Dokuments ns_exponent, das $ \ alpha $ entspricht, als Option von gensim hinzugefügt.
Es war eine Einführung in ein Papier, in dem versucht wurde, Hyperparameter entsprechend der Problemeinstellung einzustellen. Da ○○ Vec sehr beliebt ist, kann es interessant sein, nach einer Optimierung mit welchen Parametern zu suchen.
Recommended Posts