Wszystko, co musisz wiedzieć o filtrowaniu opartym na współpracy

zanim przejdziemy do podstawowych pojęć, takich jak systemy filtrowania opartego na współpracy i algorytmy filtrowania opartego na współpracy, zapoznajmy się z systemami rekomendacji.

system polecający ma na celu przewidzenie preferencji użytkownika, aby “polecić” produkt, który może być produktem, takim jak ubrania, filmy, usługi itp., systemy rekomendujące stały się dziś bardzo ważne ze względu na nadmiar opcji w każdej dziedzinie i pomagają firmom lepiej umieszczać swoje produkty lub usługi w celu zwiększenia ruchu.

istnieją dwa sposoby budowania systemu rekomendacji; jeden jest oparty na treści, a drugi to wspólne filtrowanie. W tym artykule omówimy dogłębne filtrowanie oparte na współpracy oraz przykłady filtrowania opartego na współpracy.

35% z Amazon.com przychody są generowane przez silnik rekomendacji.

istnieją dwa sposoby, czyli sensy, w których wspólne filtrowanie działa w systemach rekomendujących. jest to wąski i bardziej ogólny.

w węższym znaczeniu filtrowanie oparte na współpracy polega na przewidywaniu preferencji jednego użytkownika, gromadzeniu i badaniu preferencji wielu innych podobnych użytkowników.

Pobierz Szczegółowy program nauczania i uzyskaj bezpłatny dostęp do sesji orientacji

Data: 13 lutego 2021 r. (sobota)
CZAS: 10:30 – 11:30 (IST/GMT + 5:30)
(podaj swoje dane kontaktowe, link do pobrania zostanie wysłany do Ciebie w ciągu kilku sekund)

na przykład, jeśli użytkownik A i użytkownik B preferują tę samą pralkę, inne preferencje użytkownika B mogą być czymś, czym użytkownik a będzie zainteresowany, ponieważ ich gusta i potrzeby są podobne. Odbywa się to, oczywiście, biorąc pod uwagę wielu różnych użytkowników i liczne preferencje i reakcje, stąd termin, wspólne filtrowanie.

Collaborative Filtering Source – Recommender System

w bardziej ogólnym sensie filtrowanie oparte na współpracy jest procesem przewidywania preferencji użytkownika poprzez badanie jego aktywności w celu uzyskania wzorców.

na przykład, badając Polubienia, niechęci, pominięcia i widoki, system rekomendujący może przewidzieć, co użytkownik lubi, a czego nie lubi.

różnica między filtrowaniem opartym na współpracy a filtrowaniem opartym na treści polega na tym, że pierwsze z nich nie potrzebuje informacji o elementach, ale działa na preferencjach użytkownika.

rodzaje filtrowania opartego na współpracy

algorytm oparty na pamięci lub algorytm najbliższego sąsiedztwa

Recommender system Source-Towards Data Science

ta metoda wykorzystuje system ocen do przewidywania preferencji jednego użytkownika, biorąc pod uwagę preferencje podobnego użytkownika lub “sąsiada”. Istnieją dwa sposoby obliczania preferencji: filtrowanie oparte na użytkowniku i filtrowanie oparte na elementach.

rozważmy najpierw filtrowanie oparte na współpracy użytkownika. Powiedzmy, że mamy macierz ocen n x M, dla użytkownika uᵢ, i = 1,…n i elementu pⱼ, j = 1,…m. powiedzmy, że musimy przewidzieć ocenę elementu rᵢⱼ, elementu J, którego Użytkownik nie oglądał / nie ocenił. Jak ta metoda działa, to obliczyć preferencje użytkownika i i dopasować je do innych użytkowników, wybrać najlepszych x podobnych użytkowników, wziąć ich oceny dla elementu rᵢⱼ i znaleźć średnią ważoną przewidzieć użytkownika i możliwą ocenę/preferencje elementu.

biorąc pod uwagę fakt, że niektórzy użytkownicy wydają się być zbyt pobłażliwi, dając wysokie oceny dla przedmiotów, które tak naprawdę nie lubią, podczas gdy niektórzy użytkownicy wydają się być zbyt surowi, dając niskie oceny nawet dla przedmiotów, które lubią, ta metoda wspólnego filtrowania koryguje formułę, aby pozbyć się błędu. Aby to poprawić, podczas obliczania średniej ważonej odejmujemy średnią ocen każdego użytkownika ze wszystkich pozycji, a następnie dodajemy ją z powrotem dla użytkownika docelowego:

podobieństwo można obliczyć na 2 sposoby: korelacja Pearsona i podobieństwo cosinusa.

Podsumowując tę metodę, chodzi o to, aby znaleźć użytkowników najbardziej podobnych do naszego docelowego użytkownika pod względem preferencji, ważyć ich oceny dla elementu i przewidzieć, że jako potencjalna ocena dla naszego docelowego użytkownika, dla wybranego elementu.

w filtrowaniu opartym na elementach porównujemy dwa elementy i zakładamy, że są podobne, gdy jeden użytkownik daje dwóm elementom podobne oceny. Następnie przewidujemy, że ocena użytkownika dla artykułu, obliczając średnią ważoną ocen większości x podobnych artykułów od tego użytkownika. Zobacz poniższy obrazek jako przykład.

źródło-Medium filtrowania opartego na elementach

wspólne filtrowanie oparte na modelach

w tej metodzie wspólnych systemów rekomendujących filtrowanie, różne algorytmy eksploracji danych i uczenia maszynowego są używane do opracowania modelu przewidującego ocenę użytkownika bez ratingu. Przykładami tych modeli są sieci bayesowskie, modele klastrowania, dekompozycja wartości pojedynczej, probabilistyczna utajona analiza semantyczna, wielokrotny czynnik mnożnikowy, utajona alokacja Dirichleta i modele oparte na procesie decyzyjnym Markowa.

Hybrydowe filtrowanie oparte na współpracy

ta metoda łączy oparte na pamięci i oparte na modelu systemy filtrowania opartego na współpracy, aby wyeliminować ograniczenia, takie jak oszczędność i utrata informacji. Metoda ta jest jednak bardziej złożona w budowie.

Pobierz Szczegółowy program nauczania i uzyskaj bezpłatny dostęp do sesji orientacji

Data: 13 lutego 2021 r. (sobota)
CZAS: 10:30 – 11:30 (IST/GMT + 5:30)
(podaj swoje dane kontaktowe, link do pobrania zostanie wysłany do Ciebie w ciągu kilku sekund)

przykład filtrowania opartego na współpracy

aby dobrze zrozumieć systemy rekomendujących filtrowanie oparte na współpracy, weźmy przykład filtrowania opartego na współpracy w czasie rzeczywistym i zbudujmy algorytm filtrowania opartego na współpracy w Pythonie. Pierwszym krokiem jest zdefiniowanie zbioru danych. Jeśli jesteś początkujący w Pythonie, sprawdź ten artykuł wiedzy:

Dataset

w tym przykładzie filtrowania opartego na współpracy musimy najpierw zgromadzić dane zawierające zestaw elementów i użytkowników, którzy zareagowali na te elementy. Ta reakcja może być jawna, jak ocena, Jak lub niechęć, lub może być niejawna, jak oglądanie artykułu, dodawanie go do listy życzeń lub czytanie artykułu.

te zbiory danych są zwykle reprezentowane jako macierz, która składa się z zestawu użytkowników, elementów i reakcji podanych przez tych użytkowników na te elementy. Oto przykład:

macierz z pięcioma użytkownikami i pięcioma pozycjami źródło-prawdziwy Python

ta macierz reprezentuje pięciu użytkowników u1-u5, którzy ocenili pięć pozycji i1-i5 między ocenami 1-5 (również Brak ocen). W większości przypadków macierze te mają więcej pustych komórek niż pełnych, ponieważ jest bardzo mało prawdopodobne, aby wielu użytkowników oceniało wiele elementów na liście. Jest to znane jako macierz rzadka.

możesz użyć tej listy wysokiej jakości źródeł danych dla swoich wspólnych projektów algorytmów filtrowania. Dobrym miejscem na początek jest zbiór danych MovieLens 100k, który zawiera 100 000 ocen dla filmów 1682 podanych przez 943 użytkowników, przy czym każdy użytkownik ocenił co najmniej 20 filmów.

chociaż zbiór danych ma wiele przydatnych pól, te, które koncentrujemy w szczególności, to:

u.item: the list of moviesu.data: the list of ratings given by users

plik u. data zawiera osobną listę ocen i identyfikatorów użytkownika, ID pozycji, oceny i znacznika czasu. Oto przykład:

pierwsze 5 wierszy źródła danych MovieLens 100k-prawdziwy Python

cały plik zawiera dane dla 100 000 takich ocen.

Tworzenie algorytmu filtrowania opartego na współpracy

ideą wykonania tego projektu jest 1. Zidentyfikuj użytkowników o podobnych preferencjach, a następnie 2. Przewiduj ocenę filmu przez użytkownika, który jeszcze go nie ocenił. Będziemy musieli również wziąć pod uwagę dokładność naszych wyników.

1 i 2 są osiągane przy użyciu różnych zestawów algorytmów. Ważną kwestią, o której należy pamiętać, jest to, że nie przejmujemy się wiekiem, demografią użytkowników próbki itp. lub gatunku filmów itp. Wszystko, co nas interesuje, to ukryte i / lub wyraźne oceny tych filmów przez tych użytkowników.

aby zmierzyć dokładność naszego wyniku, możemy użyć opcji takich jak średni błąd kwadratowy lub średni błąd bezwzględny.

oparty na pamięci algorytm filtrowania opartego na współpracy

w tej metodzie staramy się przewidzieć ocenę R, którą użytkownik u mógłby dać elementowi (filmowi) I.

pierwszym krokiem jest znalezienie użytkowników, którzy mają podobne preferencje do użytkownika U, a następnie obliczenie oceny R.

oto przykład, w jaki sposób znajdujemy użytkowników o podobnych preferencjach. Rozważmy mały zbiór danych:

są to oceny dla 2 filmów, podane przez 4 użytkowników A, B, C i D. Wykres wygląda tak:

rysowanie ocen źródło-Real Python

odległość między punktami wykresu jest jednym ze sposobów, aby zorientować się o podobieństwach w zainteresowaniu. Do obliczenia odległości możemy użyć następującego programu:

from scipy import spatial

używamy scipy.przestrzenne.odległość.funkcja euklidesowa do obliczania odległości. Obliczamy odległość C od A, B i D. Możemy zobaczyć, z wyniku, a także z samej tabeli, że C jest najbliżej B. ale także, chcielibyśmy wiedzieć z A I D, kto jest najbliżej C. Jeśli chodzi o odległość, możemy powiedzieć D, ale patrząc na tabelę możemy powiedzieć, że A I C są bardziej wyrównane, ponieważ oba lubią film 2 dwa razy więcej niż film 1 (biorąc pod uwagę współczynniki, a nie rzeczywistą ocenę), podczas gdy użytkownik d lubi oba filmy prawie jednakowo, wskazując, że ich preferencje mogą być różne. Czego odległość euklidesowa nie jest w stanie przewidzieć, możemy ewentualnie wywnioskować z kąta linii łączącej użytkowników. Dołączając do użytkowników, Wykres wyglądałby tak:

widzimy, że im mniejszy kąt między dwoma liniami, tym bardziej podobne są ich odniesienia. Aby znaleźć to w programie, możemy uruchomić następujące polecenie:

widać, że podobieństwo cosinusowe między A i b wynosi 0, co wskazuje na bliskie podobieństwo. Użycie odległości euklidesowej i podobieństwa cosinusowego jest 2 z różnych metod, których można użyć do obliczenia podobieństwa w preferencjach.

Obliczanie oceny

po zidentyfikowaniu użytkowników o podobnych preferencjach do naszego użytkownika U, zaczynamy przewidywać ocenę R U dla filmu, Jeśli jeszcze nie ocenili. Ponownie, istnieje wiele sposobów, aby to zrobić.

jednym z prostych sposobów jest znalezienie średniej ocen podanych dla tego filmu przez podobnych najlepszych użytkowników. Wyrażenie matematyczne byłoby:

matematyczny wzór na średnią ocenę podaną przez N użytkowników źródło – Real Python

można również przejść do podejścia ważonego, jeśli w top podobnych użytkowników istnieje duża różnica w opinii. Oznaczałoby to nadanie najbliższemu podobnemu użytkownikowi większej wagi, a następnie malejące wagi. Wyrażenie byłoby:

ograniczenia wspólnego filtrowania

po pierwsze, nie bierze pod uwagę metadanych. Użytkownicy mogą ocenić film na podstawie ich preferencji dla aktora, na przykład, ale wspólne filtrowanie nie bierze tego pod uwagę.

kolejną wadą jest to, że wspólne filtrowanie nie jest zbyt skuteczne, chyba że wielu użytkowników oceniło wiele pozycji. Tylko wtedy może najlepiej dopasować się do podobnej publiczności, a następnie przewidzieć ocenę.

ponieważ wspólne filtrowanie wymaga ogromnych zestawów danych, aby móc uzyskać użytkowników z bliskimi podobieństwami, często pojawia się problem braku danych. Jak widzieliśmy wcześniej, macierz rzadka to taka, w której jest więcej pustych komórek niż pełnych, co prawie zawsze ma miejsce.

skalowalność to kolejny problem, ponieważ algorytm filtrowania współpracującego jest zwykle pisany z uwzględnieniem n użytkowników. Wraz ze wzrostem zbioru danych, ogólny program może stać się ogromny.

zastosowania systemów rekomendujących filtrowanie współpracujące

źródło Systemów rekomendujących filtrowanie współpracujące – prawdziwy Python

filtrowanie współpracujące znajduje największe zastosowanie w sieci społecznościowej. Zobaczysz wspólne filtrowanie w akcji w aplikacjach takich jak YouTube, Netflix i Reddit, wśród wielu innych. Aplikacje te wykorzystują wspólne filtrowanie do polecania filmów / postów, które użytkownik najprawdopodobniej polubi na podstawie ich algorytmu predykcyjnego.

wspólne filtrowanie jest popularną metodą rekomendowania programów, pomimo ograniczeń. Jest również używany na platformach e-commerce do polecania produktów, na podstawie zakupów przez użytkowników o podobnych preferencjach lub gustach.

jako programista będziesz musiał mieszać algorytmy, aby filtrowanie było bardziej precyzyjne, a także mieszać metody lub przewidywania, aby uzyskać najdokładniejsze wyniki. Rozdział Recommender Systems w książce Mining Massive Dataset jest również doskonałym źródłem informacji na temat filtrowania opartego na współpracy.

Pobierz Szczegółowy program nauczania i uzyskaj bezpłatny dostęp do sesji orientacji

Data: 13 lutego 2021 r. (sobota)
CZAS: 10:30 – 11:30 (IST/GMT + 5:30)
(podaj swoje dane kontaktowe, link do pobrania zostanie wysłany do Ciebie w ciągu kilku sekund)

mamy również kompletny przewodnik na temat tego, jak zostać analitykiem danych, do czego dąży większość entuzjastów uczenia maszynowego.

aby uzyskać odpowiedni zestaw umiejętności data science, powinieneś zapisać się na kurs Data Science. Pomoże ci to podnieść swoją karierę jako analityk danych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.