Filtrowanie na podstawie treści korzysta z funkcji produktów, aby polecać inne elementy podobne do tego, co lubi użytkownik, na podstawie jego wcześniejszych działań lub opinie.
Aby zademonstrować filtrowanie na podstawie treści, samodzielnie opracujmy kilka funkcji dla Sklepu Google Play. Na rysunku poniżej przedstawiono macierz cech, w której każdy wiersz odpowiada aplikacji, a każda kolumna – funkcję. Funkcje mogą obejmować kategorie (takie jak Edukacja, Rekreacyjne, Zdrowie), wydawca i wielu innych. Dla uproszczenia załóżmy, że ta tablica cech jest binarna: Wartość inna niż 0 oznacza, że aplikacja ma daną funkcję.
Reprezentujesz też użytkownika w tym samym obszarze funkcji. Niektóre z nich może być wskazane przez użytkownika. Na przykład użytkownik wybiera „Aplikacje rozrywkowe” w swoim profilu. Inne funkcje mogą być niejawne, na podstawie aplikacji, które dziecko zainstalowało wcześniej. Na przykład użytkownik zainstalował inną aplikację opublikowaną przez Science R Us.
Model powinien rekomendować elementy odpowiadające temu użytkownikowi. Aby to zrobić, najpierw wybierz dane dotyczące podobieństwa (np. iloczyn skalarny). Następnie musisz Skonfigurować system do oceniania każdego kandydującego elementu zgodnie z tym podobieństwom danych. Zwróć uwagę, że zalecenia są specyficzne dla tego użytkownika, nie użyły żadnych informacji o innych użytkownikach.
Korzystanie z iloczynu skalarnego jako miary podobieństwa
Weź pod uwagę przypadek, w którym umieszczenie użytkownika \(x\) i aplikacji wektor dystrybucyjny \(y\) są wektorami binarnymi. Od \(\langle x, y \rangle = \sum_{i = 1}^d x_i y_i\), pojawia się zarówno \(x\) , jak i \(y\) przynosi 1 sumę. Innymi słowy, \(\langle x, y \rangle\) to liczba cech, które są aktywne jednocześnie w obu wektorach. Wysoka iloczyn skalarny wskazuje następnie więcej wspólnych cech, a co za tym idzie – większe podobieństwo.
Wypróbuj tę funkcję.
Oblicz iloczyn skalarny dla każdej aplikacji w poprzednim zadaniu dotyczącym aplikacji. Następnie wykorzystaj te informacje, aby odpowiedzieć na poniższe pytanie: