Frage

Ich habe eine Datenbank von Artikeln, die von Lucene indexiert werden, der von den Benutzern und Mahout klassifiziert wird.Die Artikel haben eine bestimmte Punktzahl zum Tag (Benutzer kann mit einem Tag einverstanden sein oder stimmen mit einem Tag überein, Tags, die von MAHOUT entdeckt wurden, werden gleich wie Benutzer behandelt).

Ich möchte das Interesse des Benutzers (vielleicht Interesse an einem bestimmten Tag) aus der Profil- und Interaktionsverlauf herausfinden.

Wie kann ich das Interesse der Benutzer speichern?
Und wie kann ich das Interesse der Benutzer verwenden, um das Ergebnis zu sortieren oder zu filtern?

ist mein Ansatz möglich?Möglich?Skalierbar?
Welche Art von Techniken und Algorithmen kann ich verwenden?Bitte schlagen Sie vor!

War es hilfreich?

Lösung

Dies klingt meistens wie ein Suchproblem, kein Empfehlungs-Problem. Sie sortieren und filtern in erster Linie Suchergebnisse, basierend auf Tags. Als solcher glaube ich, Lucene ist im Allgemeinen das Werkzeug zum Bereitstellen, nicht in Mahout. (Obwohl Mahout-Klassifizierer, um Tags zu lernen, recht richtig ist.)

Wenn Sie sich dies wirklich als Empfehlungsmittelproblem vorstellen möchten, könnte ich sagen, dass Ihre Artikel die Tags sind. Jedes Mal, wenn Sie mit einem Tag interagieren, wie Sie eine auf markierte Seite x, y und z ansehen, zeigt dann ein wenig interessiert an "Artikel" X, Y und Z. und dann das Empfehlungs-Problem hier ist, neue Tags von Interesse.

Sie können versuchen, eine einfache Zählung von Wechselwirkungen mit einem Tag als numerische "Bewertung" verwenden, obwohl ich denke, dass dies in einem Empfehlungskontext nicht tolle Ergebnisse gibt. Die Verwendung des Protokolls der Zählung ist besser, fühlt sich aber trotzdem falsch an. Sie können die Interaktionszählung ignorieren und einfach die Tatsache nutzen, dass der Benutzer und der Tag jemals interagiert haben, oder nicht - "Boolean-Präferenzen".

Das Empfehlungsmittelalgorithmus-Modell, das am besten mit dieser Eingabe entspricht, der ich kenne, ist das alternierende Modell, das Sie in der Parallelfactorizationjob sehen. Ich weiß nicht, ob das für Sie nutzbar ist, aber das ist der Algorithmus, den ich untersuchen würde, wenn Sie Zeit und Neigung haben. Sein Input ist eher eine "Interaktionsstärke", nicht eine Bewertung, und es behandelt es so, und das ist das, was Sie hier haben.

Andere Tipps

In viel Zeiten ist es einfacher, den Benutzer einfach ausdrücklich zu sagen, an welchen Tags sie interessiert sind. Dies ist, was der Stack-Überlauf beispielsweise tut.Sie können die Punktzahl mit einem beliebigen Betrag steigern, wenn das Tag interessiert ist, an dem sie interessiert sind.

Wenn Sie etwas Implizierenderes tun möchten, hat Mahout ein FAQ auf Empfehlung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top