Przegląd generowania kandydatów

Pierwszym etapem tworzenia rekomendacji jest generowanie kandydatów. Po otrzymaniu zapytania system generuje zbiór odpowiednich kandydatów. W tabeli poniżej przedstawiamy 2 typowe metody generowania kandydatów:

TypDefinicjaPrzykład
filtrowanie oparte na treści Wykorzystuje podobieństwo do elementów do rekomendowania elementów podobnych do tego, co lubi użytkownik. Jeśli użytkownik A obejrzy 2 filmy z uroczym kotkiem, system może polecić mu takie filmy.
współpraca Wykorzystuje podobieństwa między zapytaniami a elementami jednocześnie, aby przedstawiać zalecenia. Jeśli użytkownik A jest podobny do użytkownika B, a użytkownik B lubi film 1, system może polecić film 1 użytkownikowi A (nawet jeśli użytkownik A nie widział żadnych filmów podobnych do filmu 1).

Umieszczanie miejsca

Zarówno filtrowanie oparte na treści, jak i współpraca mapuje każdy element i każde zapytanie (lub kontekst) na wektor wbudowany we wspólne miejsce. \(E = \mathbb R^d\)Przestrzeń osadzona jest zwykle niewymiarowa (czyli \(d\) ma znacznie mniejszą wielkość niż korpus) i przechwytuje pewną ukrytą strukturę elementu lub zbioru zapytań. Podobne elementy, np. filmy w YouTube, które zwykle są oglądane przez tego samego użytkownika, znajdują się blisko siebie. Znaczenie terminu &closet" definiuje się na podstawie podobieństwa.

Pomiary podobieństwa

Miara podobieństwa to funkcja \(s : E \times E \to \mathbb R\) przyjmująca parę osadzeń i zwracająca skalarkę, która mierzy ich podobieństwo. Osadzeń można użyć do generowania kandydatów w ten sposób: po umieszczeniu zapytania na stronie \(q \in E\)system szuka umieszczonych elementów, które są zbliżone do \(q\), czyli osadzeń o dużym podobieństwie \(s(q, x)\).

Aby określić stopień podobieństwa, większość systemów rekomendacji wymaga co najmniej 1 z tych rodzajów:

  • cosinus
  • kropka
  • Odległość euklidesowa

Cosinus

Jest to tylko cosinus kąta między dwoma wektorami, \(s(q, x) = \cos(q, x)\)

Kropki

Iloczyn punktowy 2 wektorów to\(s(q, x) = \langle q, x \rangle = \sum_{i = 1}^d q_i x_i\). Jest też określany przez \(s(q, x) = \|x\| \|q\| \cos(q, x)\) (cosinus kąta pomnożonego przez iloczyn normy). Jeśli osadzenia są znormalizowane, zbieżne są produkty kropka i cosinus.

Odległość euklidesowa

Oto standardowa odległość w pokoju Euclidean, \(s(q, x) = \|q - x\| = \left[ \sum_{i = 1}^d (q_i - x_i)^2\right]^{\frac{1}{2}}\). Mniejsza odległość oznacza większe podobieństwo. Zwróć uwagę, że gdy osadzenia są znormalizowane, kwadrat odległości euklidesowej zbiega się z punktem (i cosinusem) w stałą wartość, tak jak w tym przypadku \(\frac{1}{2}\|q - x\|^2 = 1 - \langle q, x \rangle\).

Obraz przedstawiający dwuwymiarową przestrzeń do umieszczania elementów, która zawiera umieszczone zapytanie i 3 elementy kandydujące.

Porównywanie pomiarów podobieństw

Zobacz ilustrację na przykładzie po prawej stronie. Czarny wektor ilustruje umieszczanie zapytania. Pozostałe 3 wektory umieszczone (element A, element B, element C) to elementy kandydujące. W zależności od użytego wskaźnika podobieństwa pozycja produktów może być różna.

Na podstawie tego obrazu spróbuj określić pozycję produktu na podstawie wszystkich 3 elementów podobieństwa: cosinusa, produktu z kropkami i odległości euklidesowej.

Który stopień podobieństwa do wyboru?

W porównaniu z cossą porównanie produktu jest zależne od normy umieszczonej. To znaczy, że im większa norma osadzenia, tym większe podobieństwo (w przypadku elementów z kątem ostrym) i tym większe prawdopodobieństwo, że dany produkt zostanie polecany. Może to mieć następujący wpływ na rekomendacje:

  • Elementy, które pojawiają się bardzo często w zestawie szkoleniowym (na przykład popularne filmy w YouTube), są zwykle umieszczane z dużymi normami. Jeśli chcesz uzyskać informacje o popularności, najlepiej użyj kropki. Jeśli jednak nie będziesz ostrożnie, popularne produkty mogą zdominować rekomendacje. W praktyce możesz wykorzystać inne warianty miary podobieństwa, które kładą mniejszy nacisk na normę produktu. Możesz na przykład zdefiniować znaczniki\(s(q, x) = \|q\|^\alpha \|x\|^\alpha \cos(q, x)\) dla niektórych \(\alpha \in (0, 1)\).

  • Elementy, które pojawiają się bardzo rzadko, mogą nie być często aktualizowane podczas trenowania. W związku z tym, jeśli zostaną zainicjowane przy użyciu dużej normy, system może polecić rzadkie produkty zamiast bardziej odpowiednich. Aby uniknąć tego problemu, zachowaj ostrożność przy osadzeniu inicjalizacji i użyj odpowiedniej normalizacji. Omówimy ten problem w pierwszym ćwiczeniu.