2017-08-15 1 views
0

Ist Kosinusähnlichkeit ein guter Ansatz, um zu entscheiden, ob 2 Benutzer basierend auf Antworten auf Fragen ähnlich sind?Kosinusähnlichkeit für Benutzerempfehlungen

Ich versuche Benutzer 10 Fragen zu beantworten und Antworten auf einen 10-dimensionalen Vektor von ganzen Zahlen zu lösen. Ich plane dann, Kosinusähnlichkeit zu verwenden, um ähnliche Benutzer zu finden.

Ich überlegte, jede Frage auf eine Ganzzahl aufzulösen und die Ganzzahlen zu summieren, um jeden Benutzer zu einer einzigen Ganzzahl aufzulösen, aber das Problem bei diesem Ansatz ist, dass das Ähnlichkeitsmaß nicht fragfragespezifisch ist: Mit anderen Worten, wenn ein Benutzer gibt eine Antwort auf Frage 1, die zu 5 auflöst und eine Antwort auf Frage 2, die auf 0 auflöst, und ein anderer Benutzer auf Frage 1 mit 0 und Frage 2 mit 5, beide Benutzer "summieren auf 5", beantworteten jedoch jede Frage grundlegend anders.

Also wird Kosinusähnlichkeit ein gutes Ähnlichkeitsmaß basierend auf jedem Attribut geben?

Antwort

1

Summierung aller Ganzzahlen, um zu einer einzelnen Zahl pro Benutzer aufzulösen, scheint nicht richtig zu sein.

denke ich Kosinusähnlichkeit eigentlich hier als Ähnlichkeitsmaß hilft, können Sie auch andere wie Jaccard versuchen, euklidischen, Mahalanobis usw.

Was könnte helfen, die Intuition hinter Kosinusähnlichkeit ist. Die Idee ist, dass, sobald Sie die 10-dimensionalen Vektoren erstellen, Sie in einem 10-dimensionalen Raum arbeiten. Jede Reihe ist ein Vektor in diesem Raum, so dass die Zahlen in jeder Komponente wichtig sind, der Kosinus zwischen zwei Vektoren gibt eine Vorstellung davon, wie gut/schlecht diese Vektoren ausgerichtet sind, wenn sie parallel sind und der Winkel 0 bedeutet, dass sie zu der gehen gleiche Richtung, bedeutet, die Komponenten sind alle proportional, Ähnlichkeit ist in diesem Fall maximal (Beispiel zwei Benutzer mit exakt die gleichen Zahlen in allen Fragen beantwortet). Wenn die Komponenten beginnen, sich zu unterscheiden, wie in Ihrem Beispiel Benutzer gibt 5 zu einer Frage und andere gibt 0 dann die Vektoren füllen unterschiedliche Richtungen, je größer der Unterschied zwischen den Antworten je mehr getrennt die Vektoren werden, desto größer der Winkel zwischen ihnen ist, was zu einem niedrigeren Kosinus und damit Ähnlichkeit führt.

Es gibt andere Ähnlichkeitsmaße, wie ich oben erwähnte, eine Sache ppl normalerweise versuchen, ist mehrere dieser Maße gegen ein Test-Set und sieht, welches man besser führt.

Verwandte Themen