background image

Zastosowanie algorytmów grupowania w 

sieci WWW i e-biznesie

Wykład 2

Systemy rekomendujące 

(w systemach 

sprzedaży)

   Katedra Systemów Informacyjnych i Sieci Komputerowych

   Urszula Kużelewska

background image

Źródła danych

Dane o użytkowniku:

dane demograficzne,

zainteresowania i preferencje

,

lista znajomych.

Dane o użytkowaniu:

wybór zasobów (przeglądanie),

czas poświęcony na zainteresowanie zasobem,

oceny punktowe

,

oceny słowne (komentarze),

zakupy

.

background image

Systemy rekomendujące (RS)

Poszukiwanie osób o podobnym guście

Podobne oceny dla danych przedmiotów

Podobne zainteresowania, grupa wiekowa, itp.

Stworzenie profilu użytkownika

Nowej osobie proponujemy to, co jest wysoko 
ocenione przez osoby do niej podobne (np. z 
profilu)

Ocena podobieństwa na podstawie badania 
zachowania nowego użytkownika

background image

Techniki stosowane w RS

Oparte na danych demograficznych

np. „przy kupnie samochodu kobiety sugerują się 
jego wyglądem”

zbyt ogólne

Podsumowania statystyczne 

Liczba osób/grupa osób, które kupiły dany produkt

Średnia ocen, najczęściej polecane

Wykorzystujące korelację atrybutów 

Czerwone buty+czerwona torebka

Książka w promocji+ przeceniona płyta

„Miś”, „Alternatywy 4”+”Jolka, Jolka, pamiętasz”

Analiza koszykowa 

np. „w weekendy większość osób, które kupują 
pieluszki, kupują też piwo”

background image

Techniki stosowane w RS

Algorytmy grupujące

Stworzenie profili na podstawie grup wydzielonych przez 
algorytm grupujący

Stworzenie modelu
danych

Collaborative filtering

Bezpośrednia analiza podobieństwa pomiędzy obiektami

Brak wymaganego etapu wydzielania profili 
(heurystyczne)

Ranking 
przedmiotów

background image

Przykłady profili rzeczywistych

Źródło: behavia.pl

background image

Collaborative filtering

Macierz m

x

0 (nie lubi),1 (lubi) ,- (?)

Co osoba o2 sądzi o p5?

Czy osoba o4 będzie zainteresowana p1, p2, p3, 
p4, p5?

p1

p2

p3

p4

p5

o1

0

1

1

1

0

o2

0

0

0

0

-

o3

1

-

0

0

-

o4

-

-

-

-

1

o5

1

1

1

0

-

background image

Collaborative filtering

Określa się lokalne podobieństwo (sąsiadów) 
pomiędzy osobami (na podstawie ich zakupów)

Podobieństwo: m.in. miara kosinusowa, 
współczynnik korelacji

Rekomendacje: przedmioty z koszyków 
sąsiadów

Szybkie?

Długa lista rekomendacji?

background image

Ranking przedmiotów

Jeśli lista podobnych przedmiotów jest długa 
jest ona sortowana wg kryteriów:

Nowości

Popularność przedmiotów

Waga oceny - zwykły użytkownik/autorytet

Społeczne przekonania – szybciej polubimy to, co 
nasi znajomi

Jeśli Jacek i Hania lubią pływanie, a Hania lubi też 
tenis, to prawdopodobnie Jacek też lubi tenis
Jest to bardziej prawdopodobne, jeśli Jacek i Hania 
się znają

background image

Podział metod collaborative filtering

User-to-user - rekomendacje 
są generowane w oparciu 
o podobieństwo pomiędzy 
samymi użytkownikami

Item-to-item – badane jest 
podobieństwo pomiędzy 
przedmiotami (na podstawie
akcji użytkowników)

Search-based – konstrukcja 
zapytania na podstawie 
danego przedmiotu

Content-based – (item-to-user) porównanie 
opisu przedmiotu do profilu użytkownika

Mary: kupiła przedmiot D, 
rekomenduje się jej 
przedmiot A              ?

background image

Algorytmy user-to-user 

v

i,j

= ocena użytkownika i dla przedmiotu j

I

i

 = lista przedmiotów ocenionych przez użytkownika i 

Średnia ocena użytkownika i

Przewidywana ocena nowego użytkownika a dla 

przedmiotu j

waga podobnych użytkowników

Stała 

normalizująca

background image

Algorytmy item-to-item

Obliczanie wag:

Wybór K najbliższych sąsiadów

Współczynnik korelacji Pearsona

Miara kosinusowa

=

else

0

)

neighbors(

 

if

1

)

,

(

a

i

i

a

w

background image

Ocena skuteczności algorytmu

1.Podział zbioru na uczący i testowy (A)
2.W każdym przypadku i ze zbioru testowego:

1. Dla każdej oceny j z badanego przypadku testowego 

określić różnicę pomiędzy oceną oszacowaną     a 

rzeczywistą 

2. Obliczyć wartość pierwiastka błędu 

średniokwadratowego (RSME

i

):

3.Obliczyć ogólną wartość pierwiastka błędu 

średniokwadratowego (RSME)

̂

r

ij

̂

r

ij

r

ij

background image

Algorytm item-to-item Amazonu

 opatentowany!!!

 buduje się binarną 
macierz użytkownik-
przedmiot 

 oblicza 
podobieństwo 
(cosinus) pomiędzy 
wektorami macierzy

 rekomendacje 
Item1->Item3
Item2->Item3
Item3->Item1,Item2

background image

Podobieństwo
przedmiotów

cos(f1,f2)=1/(

12

2)=1/

(2

6)<0.5

cos(f1,f8)=0<0.5

cos(f7,f6)=2/(

4

5)≈0.5

Użytkownikowi, który 
kupi f7 zostanie 
zarekomendowany f6

nr 
uż\film

f1

f2

f3

f4

f5

f6

f7

f8

f9

f10

1

1

1

0

0

0

1

0

0

0

0

2

1

0

0

0

0

0

0

0

0

0

3

1

0

0

0

0

0

0

0

0

0

4

1

0

0

0

0

0

1

0

0

0

5

1

0

0

0

0

0

0

0

0

0

6

0

0

0

0

0

0

0

0

0

0

7

1

0

0

0

0

0

0

0

1

0

8

0

0

0

0

0

1

0

0

0

0

9

1

0

0

0

0

1

1

0

0

1

10

0

0

0

0

0

0

0

0

0

0

11

0

0

0

1

0

0

1

1

0

1

12

0

0

0

0

0

1

1

0

0

1

13

1

0

0

0

0

1

0

0

0

0

14

0

1

0

0

0

0

0

0

0

0

15

1

0

0

0

0

0

0

0

0

0

16

1

0

0

0

0

0

0

0

0

0

17

0

0

0

0

0

0

0

0

0

0

18

1

0

0

0

0

0

0

0

0

0

19

1

0

0

0

0

0

0

0

0

0

20

0

0

0

0

1

0

0

0

0

0

background image

Użytkownikowi, który wypożyczy f7 zostanie 
zarekomendowany f6

6|Shanghai Triad (Yao a yao yao dao waipo qiao) (1995)|01-
Jan-1995)|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0
7|Twelve Monkeys (1995)|01-Jan-1995|0|0|0|0|0|0|0|0|1|0|0|0|
0|0|0|1|0|0|0
Unknown|0, Action|1, Adventure|2, Animation|3, Children's|4,
Comedy|5, Crime|6, Documentary|7, Drama|8, Fantasy|9,
Film-Noir|10, Horror|11, Musical|12, Mystery|13, Romance|14,
Sci-Fi|15, Thriller|16, War|17, Western|18

background image

user-to-user

cos(x,o1)=(1·1+0·1+0·0+0·
0+0·0+0·1+0·0+0·0+1·0+0
·0)/
(

1

2

+0

2

+0

2

+0

2

+0

2

+0

2

+0

2

+0

2

+1

2

+0

·

1

2

+1

2

+0

2

+0

2

+0

2

+1

2

+0

2

+0

2

+0

2

+0

)=1/

6<0.5

cos(x,o2)=1/

2>0.5

cos(x,o7)=1

Rekomendacje?

nr 
uż\film

f1

f2

f3

f4

f5

f6

f7

f8

f9

f10

1

1

1

0

0

0

1

0

0

0

0

2

1

0

0

0

0

0

0

0

0

0

3

1

0

0

0

0

0

0

0

0

0

4

1

0

0

0

0

0

1

0

0

0

5

1

0

0

0

0

0

0

0

0

0

6

0

0

0

0

0

0

0

0

0

0

7

1

0

0

0

0

0

0

0

1

0

8

0

0

0

0

0

1

0

0

0

0

9

1

0

0

0

0

1

1

0

0

1

10

0

0

0

0

0

0

0

0

0

0

11

0

0

0

1

0

0

1

1

0

1

12

0

0

0

0

0

1

1

0

0

1

13

1

0

0

0

0

1

0

0

0

0

14

0

1

0

0

0

0

0

0

0

0

15

1

0

0

0

0

0

0

0

0

0

16

1

0

0

0

0

0

0

0

0

0

17

0

0

0

0

0

0

0

0

0

0

18

1

0

0

0

0

0

0

0

0

0

19

1

0

0

0

0

0

0

0

0

0

20

0

0

0

0

1

0

0

0

0

0

f1 f2 f3 f4 f5 f6 f7 f8 f9

f10

1 0 0 0 0 0 0 0 1

0

background image

user-to-user

cos(x,o1)=(1·1+0·1+0·0+0·
0+0·0+0·1+0·0+0·0+1·0+0
·0)/
(

1

2

+0

2

+0

2

+0

2

+0

2

+0

2

+0

2

+0

2

+1

2

+0

·

1

2

+1

2

+0

2

+0

2

+0

2

+1

2

+0

2

+0

2

+0

2

+0

)=1/

6<0.5

cos(x,o2)=1/

2>0.5

cos(x,o7)=1

nr 
uż\film

f1

f2

f3

f4

f5

f6

f7

f8

f9

f10

1

1

1

0

0

0

1

0

0

0

0

2

1

0

0

0

0

0

0

0

0

0

3

1

0

0

0

0

0

0

0

0

0

4

1

0

0

0

0

0

1

0

0

0

5

1

0

0

0

0

0

0

0

0

0

6

0

0

0

0

0

0

0

0

0

0

7

1

0

0

0

0

0

0

0

1

0

8

0

0

0

0

0

1

0

0

0

0

9

1

0

0

0

0

1

1

0

0

1

10

0

0

0

0

0

0

0

0

0

0

11

0

0

0

1

0

0

1

1

0

1

12

0

0

0

0

0

1

1

0

0

1

13

1

0

0

0

0

1

0

0

0

0

14

0

1

0

0

0

0

0

0

0

0

15

1

0

0

0

0

0

0

0

0

0

16

1

0

0

0

0

0

0

0

0

0

17

0

0

0

0

0

0

0

0

0

0

18

1

0

0

0

0

0

0

0

0

0

19

1

0

0

0

0

0

0

0

0

0

20

0

0

0

0

1

0

0

0

0

0

f1 f2 f3 f4 f5 f6 f7 f8 f9

f10

1 0 0 0 0 0 0 0 1

0

Nowemu użytkownikowi zostaną 

zaproponowane filmy  kupione 
przez użytkowników 2 i  7

background image

Algorytm rating-based filtering Slope One

 

f(x)=x+b 

b – średnia różnica w 
ocenach innych osób

x – ocena danego 
użytkownika

Informacje innych 
użytkowników o 
danym przedmiocie

Informacje o innych 
przedmiotach 
ocenianych przez 
danego użytkownika

background image

Algorytm rating-based filtering Slope One

1. Średnia różnica pomiędzy elementami i i j:

O

ci

, O

cj

 

– oceny przedmiotów i,j przez użytkownika c

2. Przewidywana ocena przedmiotu i przez uż. t:

O

tc

 

– oceny przedmiotu c przez użytkownika t

w

ic

 – liczba użytkowników, którzy ocenili przedmiot i 

oraz (

zwiększa wagę częściej ocenianych przedmiotów

)

S(u

t

) – podzbiór elementów ocenionych przez uż. t

background image

Algorytm rating-based filtering Slope One

Średnia różnica pomiędzy elementami i i j:

Rekomendacje na podstawie przedmiotu E

i

 obejmują 

wszystkie elementy, dla których obliczono średnią 
różnicę posortowane rosnąco

Rekomendacje dla użytkownika na podstawie 
przedmiotu E

i

 to elementy, dla których wyliczono 

przewidywaną ocenę posortowane malejąco

background image

Prosty przykład Slope One

 f(x)=x+b 

Średnia różnica: D

12

=3

Przewidywana ocena: 
P

B2

=f(x)=4+(2-5)=1

P1

P2

A

5

2

B

4

?

background image

Algorytm rating-based filtering Slope One

Średnia różnica 

D12

:

Średnia różnica 

D23

:

D

12

=

3−5+4−3

2

=−

0.5

D

23

=

2−3+5−2

2

=

1

background image

Algorytm rating-based filtering Slope One

Jaką ocenę wystawi
 Mark dla P

3

?

D31:2-5=-3

f(x)=3-3=0 
ale też f(x)=4+1=5 

skąd?

ostatecznie P

MarkP3

=                               

skąd?

0⋅15⋅2

21

=

3.33

background image

Algorytm rating-based filtering Slope One

Jaką ocenę wystawi
 Mark dla P

3

?

D31:2-5=-3

f(x)=3-3=0 
ale też f(x)=4+1=5 

skąd?

ostatecznie P

MarkP3

=                            

0 - wyliczone na podstawie jednej opinii, 
5 – na podstawie dwóch

0⋅15⋅2

21

=

3.33

background image

Modyfikacje

Wymagania:
macierz binarna

0   brak danych

1,2   nie lubi (0)

3,4,5   lubi (1)

nr 
użytk\fi
lm

f1

f2

f3

f4

f5

f6

f7

f8

f9

f10

1

5

4 ?

?

?

4 ?

?

?

?

2

3 ?

?

?

?

?

?

?

?

?

3

4 ?

?

?

?

?

?

?

?

?

4

3 ?

?

?

?

?

5 ?

?

?

5

3 ?

?

?

?

?

?

?

?

?

6 ?

?

?

?

?

?

?

?

?

?

7

4 ?

?

?

?

2 ?

?

4 ?

8

1 ?

?

?

?

4 ?

?

?

?

9

5 ?

?

?

?

4

5 ?

?

4

10 ?

2 ?

?

?

?

?

?

?

?

11

2 ?

?

4 ?

?

3

3 ?

4

12 ?

?

?

?

?

4

5 ?

?

5

13

5 ?

?

?

?

4 ?

?

?

?

14 ?

4 ?

?

?

?

?

?

?

?

15

5 ?

?

?

?

?

?

?

?

?

16

5 ?

?

?

?

?

?

?

?

?

17 ?

?

?

?

?

?

?

?

?

?

18

4 ?

?

?

?

?

?

?

?

?

19

5 ?

?

?

?

?

?

?

?

?

20 ?

?

?

?

3 ?

?

?

?

?

background image

Przykład

P

7

 do P

10

=

(3-4+5-4+5-5)/3=0

P

7

 do P

8

=(3-3)=0

f(x)=4+0=4 i 

f(x)=3+0=3

f(x)

całk

=(4∙3+3∙1)/

/(3+1)=15/4≈

4

nr 
użytk\f
ilm

f1

f2

f3

f4

f5

f6

f7

f8

f9

f10

1

5

4 ?

?

?

4 ?

?

?

?

2

3 ?

?

?

?

?

?

?

?

?

3

4 ?

?

?

?

?

?

?

?

?

4

3 ?

?

?

?

?

5 ?

?

?

5

3 ?

?

?

?

?

?

?

?

?

6 ?

?

?

?

?

?

?

?

?

?

7

4 ?

?

?

?

2 ?

?

4 ?

8

1 ?

?

?

?

4 ?

?

?

?

9

5 ?

?

?

?

4

5 ?

?

4

10 ?

2 ?

?

?

?

?

?

?

?

11

2 ?

?

4 ?

?

3

3 ?

4

12 ?

?

?

?

?

4

5 ?

?

5

13

5 ?

?

?

?

4 ?

?

?

?

14 ?

4 ?

?

?

?

?

?

?

?

15

5 ?

?

?

?

?

?

?

?

?

16

5 ?

?

?

?

?

?

?

?

?

17 ?

?

?

?

?

?

?

?

?

?

18

4 ?

?

?

?

?

?

?

?

?

19

5 ?

?

?

?

?

?

?

?

?

20 ?

?

?

?

3 ?

?

?

?

?

f1 f2 f3 f4 f5 f6 f7 f8 f9

f10

?

?

?

?

?

?

5

3

?

4

rzeczywista ocena

background image

Porównanie algorytmów

X'-zbiór testowy

S(u) – zbiór przedmiotów ocenionych przez użytkownika u

count(X'), count(S(u)) – liczności X' i S(u)

u

i

,P(u

i

) – odp. ocena lub predykcja oceny dla użytkownika u

background image

Wybór metody rekomendacji

Czynniki determinujące:

cel działania/rodzaj systemu,

branża,

sezonowość rynku/zmienność danych,

tzw. grupa docelowa użytkowników/klientów,

rodzaj danych wejściowych,

rozmiar listy rekomendacji,

rozmiar danych,

liczba użytkowników,

Często stosuje się hybrydę metod

 (BellKor's 

Pragmatic Chaos: kilkadziesiąt!)

background image

Problemy

Wymagane jest pewne działanie początkowe 
nowego użytkownika

Dane w postaci macierzy rzadkich

(Ponowna) identyfikacja użytkownika

Nie uwzględniają zmian:

np. dodanie nowego przedmiotu do oferty – 
przedmiot nigdy nie znajdzie się na liście 
rekomendacji

Zainteresowanie użytkownika nowym 
przedmiotem

Sezonowość niektórych przedmiotów

background image

Praktyczne wykorzystanie SlopeOne

G. Zięba „Implementacja algorytmu 
personalizacji w systemie rekomendacji 
produktów na przykładzie wybranego sklepu 
internetowego”, praca magisterska, AGH, 
Kraków, 2010

Open SlopeOne*+PHP+MySQL

*http://code.google.com/p/openslopeone/

,

background image

Wykorzystanie SlopeOne – G.Zięba

Oceny w systemie:

Oceny użytkowników:

Manualnie

Automatycznie 

Korelacja pomiędzy
przedmiotami

Identyfikacja użytkownika

Cookies – dla każdego użytkownika

Logowanie – składanie zamówienia/wola 
użytkownika   asocjacja wygenerowanych przed tą 

akcją ocen z bieżącym użytkownikiem

background image

Wykorzystanie SlopeOne – G.Zięba

Oceny w systemie:

Oceny użytkowników:

Manualnie

Automatycznie 

Korelacja pomiędzy
przedmiotami

Identyfikacja użytkownika

Cookies – dla każdego użytkownika

Logowanie – składanie zamówienia/wola 
użytkownika   asocjacja wygenerowanych przed tą 

akcją ocen z bieżącym użytkownikiem

Aktualizowane w tabeli 
BD na bieżąco

Tabela korelacji 
pomiędzy przedmiotami
aktualizowana raz na dobę

background image

Wykorzystanie SlopeOne – G.Zięba

Redukcja anomalii:

Odrzucanie skrajnych wartości ocen

Usuwanie zbyt wielu ocen użytkowników 

liczona jest średnia ocen użytkowników

usuwanie do 0.1% ocen dla użytkowników, którzy 

wystawili znacznie więcej ocen niż średnia

Wykorzystano nierówność Czebyszewa

background image

Wdrożenie w sklepie internetowym sprzedającym 

przedmioty religijne G.Zięba

Dane:    - 70% zamówień   32% zysku,  

                mała wartość < średniej
              - 30% zamówień   68% zysku

               duża wartość > średniej
              - 16% osób ponawia zakupy
             - 30% z nich w ciągu miesiąca

Cel: zwiększenie średniej
 wartości zamówienia

background image

Dobór ocen 

                                    Źródło: G. Zięba
                                    automatycznych:
                                    - na podstawie danych              
                                    archiwalnych
                                   - analiza koszykowa +                
                                   zestawienia statystyczne

Oceny manualne:

Wystawiane przez użytkownika w skali 1 - 6

background image

Wyniki:

Czas testów: 35 dni

Równolegle: dotychczasowy system

Źródło: G. Zięba

background image

Wyniki

Cel : zwiększenie wartości pojedynczego 
zamówienia

Źródło: G. Zięba

background image

Podsumowanie wyników

Źródło: G. Zięba

background image

Bibliografia

W. W. Cohen: Collaborative Filtering: A Tutorial, Carnegie Mellon University

G. Zięba: „Implementacja algorytmu personalizacji w systemie rekomendacji 
produktów na przykładzie wybranego sklepu internetowego”, 
praca 
magisterska, AGH, Kraków, 2010

D. Lemire, A. Maclachlan, Slope One Predictors for Online Rating-Based 

Collaborative Filtering, in SIAM Data Mining, 21-23, 2005

Wikipedia: en.wikipedia.org


Document Outline