Mechanizmy zaawansowanych rekomendacji w systemach portali

Transkrypt

Mechanizmy zaawansowanych rekomendacji w systemach portali
Rok akademicki 2011/2012
Politechnika Warszawska
Wydzia Elektroniki i Technik Informacyjnych
Instytut Informatyki
PRACA DYPLOMOWA IN YNIERSKA
Daniel Bie kowski
Mechanizmy zaawansowanych rekomendacji w
systemach portali internetowych
Opiekun pracy
mgr in . Piotr Salata
Ocena: ...................................................
..............................................................
Podpis Przewodnicz cego
Komisji Egzaminu Dyplomowego
Specjalno :
In ynieria Systemów Informatycznych
Data urodzenia:
1989.03.25
Data rozpocz cia studiów:
2009.02.23
yciorys
Urodzi em si 25 marca 1989 roku w Warszawie. Po uko czeniu szko y podstawowej
nr 254, a nast pnie gimnazjum nr 127 w zespole szkó nr 74, kontynuowa em nauk w XXII
Liceum Ogólnokszta
cym im. Jose Marti, gdzie ucz szcza em do klasy o profilu
matematyczno-fizycznym. W roku 2008 zda em matur oraz rozpocz em studia dzienne na
wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej.
......................................................
Podpis studenta
EGZAMIN DYPLOMOWY
egzamin dyplomowy w dniu ............................................................................... 2012 r
z wynikiem ..............................................................................................................................
Ogólny wynik studiów: ............................................................................................................
Dodatkowe wnioski i uwagi Komisji: ......................................................................................
.................................................................................................................................................
.................................................................................................................................................
STRESZCZENIE
Niniejsza praca ma na celu przedstawienie mechanizmów zaawansowanych rekomendacji.
Obok aspektów teoretycznych zosta y zaprezentowane algorytmy u ywane w systemach
rekomendacji, w tym tak e rozpoznanie dziedziny Collaborative Filtering, która jest
znacz cym elementem praktycznej cz ci pracy. W pracy zawarto okre lenie stosowalno ci
wybranych metod rekomendacji oraz opracowanie projektu ich implementacji. Integraln
cz ci pracy jest aplikacja Findy, w której zaimplementowano opisane algorytmy. Aplikacja
umo liwia zaprezentowanie dzia ania mechanizmów rekomendacji w praktyce.
owa kluczowe: mechanizmy rekomendacji, filtrowanie z analiz
zawarto ci, wspólna
filtracja, miary korelacji, miary podobie stwa.
ADVANCED RECOMMENDATION MECHANISMS
IN SYSTEMS OF WEB PORTALS
The purpose of this thesis is to present advanced recommendation mechanisms. Theoretical
aspects and algorithms used in recommendation systems were introduced, including
identification of fields of Collaborative Filtering, which is the significant element of the
practical part of the work. This thesis also contains presentation of applicability of selected
recommendation methods and description of project of their implementation. The integral part
of the thesis is Findy application, which includes implementation of described algorithms.
Application lets to present the recommendations mechanism in practical action.
Keywords: recommendation mechanism, Content-based filtering, Collaborative Filtering,
measure of correlation, measure of similarity.
Sk adam serdeczne podzi kowania mgr in . Piotrze
Salacie za pomoc i cierpliwo
pisaniu niniejszej pracy.
okazan przy
Spis tre ci
Rozdzia 1 Wprowadzenie ......................................................................................................7
Rozdzia 2 Informacje podstawowe ........................................................................................9
2.1.
Wzorce projektowe...................................................................................................9
2.1.1.
Automatyczne uzupe nianie ...............................................................................9
2.1.2.
Najpierw najlepszy .......................................................................................... 10
2.1.3.
Nawigacja fasetowa.........................................................................................12
2.1.4.
Personalizacja .................................................................................................13
2.2.
Metody tworzenia profili u ytkownika ...................................................................15
2.2.1.
Podej cie aktywne ...........................................................................................16
2.2.2.
Podej cie pasywne........................................................................................... 17
2.3.
Podsumowanie .......................................................................................................18
Rozdzia 3 Systemy rekomendacji ........................................................................................19
3.1.
Idea systemów rekomendacji ..................................................................................19
3.2.
Content-based Filtering ..........................................................................................20
3.3.
Collaborative Filtering ............................................................................................24
3.3.1.
Metody wykorzystuj ce pami
3.3.2.
Metody wykorzystuj ce model (Model-based) ................................................27
3.4.
(Memory-based) ............................................ 24
G ówne problemy przy stosowaniu mechanizmów rekomendacji............................28
3.4.1.
Rzadko
danych .............................................................................................28
3.4.2.
Skalowalno
3.4.3.
Pozosta e wyzwania ........................................................................................ 30
..................................................................................................29
3.5.
Podej cie hybrydowe .............................................................................................. 30
3.6.
Podsumowanie .......................................................................................................35
5
Rozdzia 4 Aplikacja Findy .................................................................................................. 36
4.1.
Za
enia ................................................................................................................36
4.2.
Specyfikacja wymaga ...........................................................................................37
4.2.1.
Wymagania funkcjonalne ................................................................................37
4.2.2.
Wymagania niefunkcjonalne ...........................................................................37
4.3.
Realizacja ...............................................................................................................37
4.3.1.
Technologia Spring Framework.......................................................................38
4.3.2.
Technologia Vaadin ........................................................................................ 39
4.3.3.
Wzorzec Model-View-Presenter ...................................................................... 42
4.4.
Praca z aplikacj ..................................................................................................... 43
4.5.
Sposób implementacji algorytmów rekomendacji ................................................... 46
4.5.1.
Implementacja filtracji z analiz zawarto ci..................................................... 46
4.5.2.
Implementacja wspólnej filtracji ...................................................................... 49
4.6.
Mo liwo ci rozwoju ...............................................................................................51
Rozdzia 5 Podsumowanie .................................................................................................... 53
Rozdzia 6 Literatura ............................................................................................................ 56
Dodatek A Diagram klas modelu MVP w aplikacji Findy .....................................................58
Dodatek B Zawarto
p yty CD ............................................................................................ 59
6
Rozdzia 1
Wprowadzenie
We wspó czesnym wiecie, gdzie mamy do czynienia z mas wielorakich produktów i
olbrzymia liczb ró norodnych klientów, tradycyjne mechanizmy prezentacji produktów
sta y si niewystarczaj ce. Tradycyjna reklama w mediach czy na innych masowych
no nikach jest nieskuteczna, poniewa
nie jest w aden sposób indywidualizowana i
kierowana do odpowiednich osób. Równie zalewanie potencjalnych klientów du
e-maili b
ilo ci
SMS-ów nie przynosi ju oczekiwanych, pozytywnych rezultatów, coraz
cz ciej powoduj c niech
do zakupu czy zapoznania si bli ej z produktem. Dzisiejsze
spo ecze stwo sta o si bardzo wyczulone na narzucane im formy promocji i reklamy.
Skutkiem tej sytuacji s coraz wi ksze inwestycje w bardziej zaawansowane systemy
rekomendacji, obecnie cz sto wykorzystywane w wielu miejscach w Internecie, mi dzy
innymi w serwisach spo eczno ciowych, serwisach aukcyjnych czy sklepach on-line.
Nowoczesne mechanizmy rekomendacji korzystaj z algorytmów, które s w stanie
oszacowa , jaka oferta b
jaki produkt wybrany z przestrzeni mo liwych opcji najlepiej
trafi w gusta konsumenta, a przy tym zwi kszy jego komfort podczas korzystania z
aplikacji, serwisu czy portalu. Ich dzia anie odbywa si w sposób transparentny dla
ytkownika, odfiltrowuj c tre ci mog ce go zainteresowa od tych nieinteresuj cych. W
niniejszej pracy skupiono si na problemie wykorzystywania powy szych mechanizmów
rekomendacji w systemach portali internetowych. G ównym celem pracy jest opracowanie
i implementacja aplikacji prezentuj cej ich dzia anie w praktyce. Przedstawione zostan
najpopularniejsze wzorce wykorzystywane w mechanizmach rekomendacji oraz okre lona
zostanie stosowalno
wybranych metod rekomendacji, a w szczególno ci metody
Collaborative Filtering, która jest g ównym elementem praktycznej cz ci pracy
in ynierskiej.
Pocz tkowy
rozdzia
po wi cony
jest
wzorcom
projektowym
najcz ciej
wykorzystywanym przez mechanizmy rekomendacji, stanowi cym najpopularniejsze
rozwi zania typowych problemów, na które u ytkownik mo e natrafi podczas korzystania
z portalu. Zostan tu przedstawione konteksty u ycia danych wzorców oraz przyk adowe
sposoby wykorzystywania i zastosowania mechanizmów rekomendacyjnych. Opisany
zostanie mi dzy innymi wzorzec personalizacji, którego g ówna idea – ukazanie
ytkownikowi strony dostosowanej do jego potrzeb, zosta a zastosowana w aplikacji
7
Findy. Oprócz tego, w rozdziale zaprezentowano tak e metody tworzenia profili
ytkownika. Aby móc zastosowa mechanizmy rekomendacji, niezb dny jest proces
zbierania informacji o u ytkowniku i przygotowanie na jego podstawie matematycznej
reprezentacji jego preferencji czy wzorców zachowa . Ta reprezentacja, nazywana
profilem, wykorzystywana jest przez algorytmy do obliczania miar korelacji, czy
podobie stwa z innymi u ytkownikami stosowanych przy algorytmach obliczaj cych
rekomendacj . W niniejszej pracy zosta y przedstawione dwa podej cia pozwalaj ce na
zdobycie niezb dnych informacji wraz z przedstawieniem ich wad i zalet.
W dalszej cz ci pracy ukazano teoretyczne aspekty mechanizmów rekomendacji oraz
ich g ówne idee. Przedstawiono podzia mechanizmów na podstawowe podej cia. Pierwsz
kategori s mechanizmy bazuj ce na analizie zawarto ci i profili dotycz cych obiektów w
serwisie oraz na indywidualnych preferencjach u ytkownika (Content-based Filtering).
Drug kategori stanowi mechanizmy oparte na preferencjach oraz zachowaniach innych
ytkowników najbardziej podobnych do danego u ytkownika (Collaborative Filtering).
Dzi ki temu mo liwe jest proponowanie mu nowych obiektów, które z du ym
prawdopodobie stwem uzna
za
interesuj ce.
Powy sze
dwa
podej cia
zosta y
zaimplementowane w aplikacji Findy ukazuj cej ich zachowanie w praktyce. W niniejszej
pracy opisane zosta y tak e ograniczenia i problemy wyst puj ce przy zastosowaniu
wymienionych technik. Oprócz powy szych, zosta o opisane tak e podej cie hybrydowe,
które czy dzia anie obu zaprezentowanych koncepcji.
Kolejny rozdzia prezentuje sposób realizacji praktycznej cz ci pracy – aplikacji
Findy. Przedstawiono podstawowe jej za
enia, specyfikacj wymaga oraz rozwi zania
techniczne u yte, aby móc zastosowa mechanizmy rekomendacji. Dodatkowo opisano
sposób pracy z aplikacj oraz jakie s mo liwo ci jej rozwoju.
W podsumowaniu przedstawiono analiz u ytych mechanizmów rekomendacji, oraz
wnioski z ich zastosowania. Omówiono ich wady i zalety w kontek cie u ycia w
praktycznej cz ci pracy oraz zakres zastosowa
proponowanego rozwi zania. Na
zako czenie przedstawione zosta y przewidywane kierunki zmian w podej ciu do
problemu.
8
Rozdzia 2
Informacje podstawowe
2.1.
Wzorce projektowe
2.1.1. Automatyczne uzupe nianie
Pierwszym wzorcem projektowym, który zostanie przedstawiony jest automatyczne
uzupe nianie (ang. autocomplete). Ma ono na celu u atwienie u ytkownikowi znalezienie
odpowiedniej frazy do wyszukania w jak najkrótszym czasie. Jest to mo liwe dzi ki kilku
aspektom. Pierwszym jest przewidywanie has a ju po wpisaniu pocz tkowych znaków,
dzi ki czemu u ytkownik zwolniony jest z obowi zku wpisywania ca ego zapytania, gdy
mo e wybra
jedno z rekomendowanych mu przez odpowiedni algorytm. Kolejnym
udogodnieniem jest sugerowanie w czasie, gdy szukaj cy nie jest w stanie wpisa
prawid owego zapytania, gdy
przyk adowo zapomnia fachowego zwrotu. W takiej
sytuacji mechanizm pomaga dobra odpowiednie wyra enie poprzez sugerowanie hase ,
których miara podobie stwa z podanym przez u ytkownika zapytaniem jest najwi ksza.
Trzecim aspektem jest podpowiadanie odpowiedniej pisowni. Przy pope nieniu b du
ortograficznego wyniki zapyta mog nie by zadowalaj ce, dlatego wy apywanie b dów
stanowi wa
cz
mechanizmu wyszukiwania opartego na rekomendacjach zwrotów
pozbawionych b dów.
Automatyczne uzupe nianie jest popularnym wzorcem u ywanym w Internecie
i stanowi wa
sk adow
wielu serwisów, mi dzy innymi jest wykorzystywane w
wyszukiwarce Google. Serwis ten gromadzi histori wyszukiwa , które by y wykonane
przez innych u ytkowników oraz udost pnia tak e mo liwo
historycznych wyszukiwa
zachowywania naszych
(przy w czonej opcji „Historia online”). Na podstawie
powy szych róde danych, stosowane algorytmy s w stanie przewidzie i zasugerowa
trafne zapytanie, bior c pod uwag popularno
hase , które by y wyszukiwane oraz nasze
prywatne upodobania.
Niektóre serwisy rozszerzaj
powy szy mechanizm o automatyczne sugerowanie
polegaj ce na proponowaniu zapyta
nie zawieraj cych oryginalnych wyra
wprowadzonych przez u ytkownika, a has a podobne. Jest to mo liwe dzi ki
rozpoznawaniu wzorców zachowa . Algorytmy rozpatruj , jakie zapytania by y
9
wpisywane i modyfikowane po nieudanej próbie wyszukania has a, dzi ki czemu s w
stanie utworzy baz zwi zków logicznych, sugeruj c has a pokrewne. Taki mechanizm
jest pomocny nie tylko pocz tkuj cym u ytkownikom, którzy uzyskuj wskazówki jak
udoskonala swoje zapytania, a tak e s
y wsparciem dla zaawansowanych, chc cych
wyszuka obiekty o zbli onym zagadnieniu.
Rys. 1. Automatyczne uzupe nianie w wyszukiwarce Google
Wzorzec jest u ywany na wielu platformach, nie tylko stacjonarnych. Trudno
wyobrazi sobie korzystanie z wyszukiwarki na urz dzeniach mobilnych, gdzie nie ma
mechanizmu korzystaj cego z automatycznego uzupe niania. Popularne dzi „smartfony”
ci gle borykaj si z problemem, jakim jest pisanie d
ich miniaturyzacji, czy niewystarczaj cej czu
szego tekstu, g ównie z powodu
ci ekranów dotykowych. Z tego powodu
projektanci ci gle usprawniaj mechanizmy rekomendacji u atwiaj cych korzystania z
takich urz dze . Dodatkow
zalet
automatycznego uzupe niania jest mo liwo
autonomicznego dzia ania oraz mo liwo
wspó pracy z innymi wzorcami (np. z ni ej
opisanym „Najpierw najlepszy”).
2.1.2. Najpierw najlepszy
Wzorzec „Najpierw najlepszy” (ang. Best First) jest obecnie najbardziej popularnym
wzorcem wykorzystywanym w mechanizmach rekomendacji [1]. Jego za
eniem jest
sugerowanie produktów czy wyników zapytania nie w kolejno ci, w jakiej zosta y
odszukane, a przedstawienie ich od najbardziej trafnego dla u ytkownika. Niektóre
heurystyki zale ne od u ytych algorytmów analizy s
u ywane do oceny wyników
zebranych np. w bazie danych i te najbardziej obiecuj ce ukazuje si u ytkownikowi jako
pierwsze. Wyniki najmniej obiecuj ce algorytmy sortuj ce umieszczaj na ko cu kolejki.
10
Ma to na celu przyspieszenie ko ca procesu wyszukiwania. Korzystaj cy z serwisu dostaje
z du ym prawdopodobie stwem to, czego szuka w prosty i szybki sposób.
Ocenianie i sortowanie – g ówne cz ci sk adowe powy szego mechanizmu
rekomendacji – s ró ne, w zale no ci od serwisu w którym dzia aj . Mo na jednak
znale
cech
popularno
wspóln
– jest ni
popularno
has a, b
produktu. Wspomniana
jest oczywi cie ró nie rozumiana w kontek cie danego serwisu. Przyk adowo,
w serwisach stworzonych do gromadzenia i udost pniania zdj
„najpierw najlepsza” odbywa si poprzez ocen b
cyfrowych rekomendacja
sk adow liczby ods on danego
zdj cia, komentarzy pod nim czy liczby u ytkowników, którzy dodali je do swoich
ulubionych. W serwisach aukcyjnych sortowanie i ocena mo e odbywa
si
przy
uwzgl dnieniu liczby sprzedanych sztuk produktu. Tak e serwis Google stosuje swój
algorytm s
cy do oceniania wyników wyszukiwa – „PageRank” [2]. G ówn sk adow
oceny tego algorytmu jest liczba odno ników do danej strony. Im wi cej stron odwo a si
do czyjego serwisu, tym bardziej serwis Google b dzie go uwa
zapytania. Popularno
tego rozwi zania sprawi a,
za pasuj cy do u ytego
e w czasach rozkwitu biznesu
internetowego, tzw. e-biznesu, zacz to handlowa wspomnianymi odno nikami. Obecnie
jednak stworzono liczne ograniczenia i obostrzenia okre laj ce, które z nich zostan
uznane za wa ne i wliczone do oceny ogólnej serwisu.
Trafno
by
danej rekomendacji mo e by tak e uzale niona od daty. Przyk adem mog
nie tylko serwisy informacyjne, gdzie rekomendowane s
najpierw artyku y o
najpó niejszej dacie napisania, ale tak e pozosta e serwisy, dla których wa na jest
aktualno
prezentowanych wyników. W takim przypadku algorytmy korzystaj ce z
wzorca „najpierw najlepszy” bior
pod uwag
dat
dodania produktu lub dat
jego
ostatniej modyfikacji, dzi ki czemu s w stanie zasugerowa najm odsze, a przez to
wie e, pierwsze wyniki wyszukiwania.
Rezultat wyszukiwania wyników zapytania pod wzgl dem trafno ci najcz ciej jest
rozk adem pot gowym, co wymusza u ycie regu y „80/20” [3]. Polega ona na tym, e
pierwsze sugerowane wyniki uzyskuj trafno
rz du 80%, a pozosta e mog liczy na
uzyskanie zaledwie kilkunastu procent. U ytkownik wówczas stwierdza, czy dana
rekomendacja jest zgodna z jego wymaganiami patrz c jedynie na pocz tkowe rezultaty
odpowiedzi na jego zapytanie, a nast pnie podejmuje decyzj , czy spróbowa innego
has a, czy uzna przedstawion za wystarczaj
. Dzi ki wykorzystaniu rozpoznawania
11
wzorców takich zachowa , mechanizmy rekomendacji korzystaj ce z wzorca „najpierw
najlepszy” s w stanie jeszcze trafniej zasugerowa u ytkownikowi wynik wyszukiwania,
a jednocze nie sta si bardziej uniwersalnymi.
2.1.3. Nawigacja fasetowa
Kolejnym wzorcem, z którego mog
korzysta
mechanizmy rekomendacji jest
nawigacja fasetowa (ang. faceted navigation), uwa ana za jedn z najwi kszych innowacji
w dziedzinie wyszukiwania i rekomendacji [4]. W wykorzystuj cych j serwisach, po
wpisaniu przez u ytkownika has a, oprócz standardowej listy wyników, wy wietlana jest
tak e lista zawieraj ca dalsze kroki, które mo e podj , np. u ycie filtrów oraz dalszy
podzia na np. kategorie czy tre ci. Taka lista zawiera „fasety” (ang. facets) stanowi ce
najwa niejsz cz
nawigacji. Charakterystyczn cech tego wzorca, jest to, e nie jest do
ko ca transparentny dla u ywaj cego, który musi kierowa
mechanizmem, a
do
wystarczaj cego zaw enia wyników.
Rys. 2. Nawigacja fasetowa w serwisie aukcyjnym Allegro
ytkownik z pomoc
faset ma mo liwo
wyselekcjonowania tre ci o cechach
wspólnych. Nak adaj c kolejne fasety ograniczana jest lista wyników, pozostawiaj c te
najodpowiedniejsze. Czynno
ta jest pomocna przy ch ci znalezienia np. przedmiotu z
du ej kolekcji. Przyk adem takiego rozwi zania jest serwis aukcyjny Allegro
przedstawiony na rys. 2. Po wpisaniu has a „Pan Tadeusz” ukazuje nam si lista wyników
12
oraz fasety: po lewej stronie, gdzie mo emy wybra kategori , w której chcemy szuka
pozycji oraz na górze, gdzie mamy mo liwo
zastosowania filtrów co do ceny czy
lokalizacji.
pozycje
Dobieraj c
fasety odnajdujemy
maj ce
cz ci wspólne z
zasugerowanymi warto ciami.
Istotn w
ciwo ci nawigacji fasetowej jest to, e ukazywane s u ytkownikowi
tylko te fasety, które s uwa ane przez mechanizmy rekomenduj ce za trafne. Pozosta e s
domy lnie zamkni te. Gdy rekomendacja faset oka e si niewystarczaj ca, szukaj cy ma
mo liwo
przejrzenia tak e tych pocz tkowo ukrytych. Algorytmy weryfikuj ce wzorce
zachowania korzystaj c z takich dzia
aktualizuj swoje oceny trafno ci, podobnie jak
odbywa si to w przypadku wzorca „najpierw najlepszy”.
Rekomendacja faset jest dziedzin
i przysz
ci gle rozwijan , a przy tym potrzebn
ciow . Im trafniej odb dzie si ich zasugerowanie u ytkownikowi, tym szybciej
zako czy si proces wyszukiwania, do czego d
projektanci. Wzorzec znajduje nie tylko
zastosowanie na platformach stacjonarnych. Coraz cz ciej wyst puj
kolejne próby
przeniesienia go na platformy mobilne [5]. Jak ju wspomniano, urz dzenia mobilne
charakteryzuj si ma ymi rozmiarami, przez co przeniesienie wzorca np. ze znanych
serwisów aukcyjnych nie jest mo liwe, dlatego stanowi to problem wci
do rozwi zania.
2.1.4. Personalizacja
Personalizacja w portalach internetowych jest stosowana od wielu lat. Pocz tkowo
opiera a si jedynie na mo liwo ci dostosowania serwisu do swoich potrzeb, g ównie
wizualnych. U ytkownik mia udost pniony interfejs, z którego móg wybra kolor t a, typ
ikon, czy u
enie okien i paneli. Wraz z rozwojem technologii internetowych, powy sze
udogodnienia zosta y rozszerzone o wybór rodzaju prezentowanych tre ci. Wówczas na
przestrzeni np. artyku ów odbywa a si filtracja, czego rezultatem by o wy wietlenie tylko
tych tematów, na które zdecydowa si wybieraj cy. W obecnych czasach i przy obecnej
szybko ci rozwoju techniki, nawet takie u atwienia przesta y by zadowalaj ce.
Obecnie nacisk k adziony jest na serwisy, które umo liwiaj rekomendacje tre ci, bez
przymusowych ustawie realizowanych podczas u ytkowania z serwisu. Niezb dne s do
tego zaawansowane mechanizmy b
ce w stanie przetworzy np. histori wyszukiwa
ytkowników z serwisu albo
ich wzorce zachowa . Obserwowanie operacji
wykonywanych przez u ytkownika mo e dostarczy
upodobaniach i rutynowych czynno ciach, które mog
niezb dnych informacji o jego
by podstaw
zaawansowanej
13
personalizacji. Stworzenie na takiej podstawie profilu u ytkuj cego serwis, pozwoli
algorytmom dostosowa
wygl d i zaprezentowa
tre
zgodnie z indywidualnymi
preferencjami, potrzebami i zainteresowaniami.
ycie odpowiedniego mechanizmu rekomendacji w powy szym wzorcu uzale nione
jest od charakteru serwisu. Mo liwe jest wyznaczenie trzech g ównych rodzajów
personalizacji i sposobów tworzenia profilu osoby korzystaj cej z serwisu. Najbardziej
podstawowym jest personalizacja o zasi gu indywidualnym. W takim przypadku istotne
jest zbieranie wszelkich informacji pozostawianych przez u ytkownika podczas swoich
dzia
. Wówczas, weryfikuj c ró ne przypadki jego interakcji z serwisem, algorytmy
rekomenduj ce tre ci s
w stanie przedstawi
wyniki, które mo na uzna
za
najodpowiedniejsze. Przyk adem takiego dzia ania jest ponowne u ycie tego samego
zapytania. Znaj c wzorzec zachowania u ytkownika przy jego pierwszej decyzji, mo na
uzna j za najtrafniejsz tak e i w tym przypadku, dlatego algorytmy analizuj ce proces
personalizacji wybior j , jako rekomendowan z najwi kszym prawdopodobie stwem.
Kolejnym aspektem jest personalizacja o zasi gu spo eczno ciowym. Wykorzystuje
si j , gdy indywidualne tworzenie profilu u ytkownika i analiza jego wzorców zachowa
mo e ulec zniekszta ceniu. Takie ryzyko mo e wyst pi
przyk adowo w serwisach
aukcyjnych. Korzystaj cy z nich nie zawsze musi licytowa i kupowa produkty dla siebie,
dlatego algorytmy rekomenduj ce przetwarzaj ce takie zachowanie mog
okaza
myl ce. Podobny problem wyst puje w przewidywaniu, które produkty mog
zainteresowa w przysz
dzia
naszego
si
nas
ci. Wówczas niezb dne jest tworzenie profilu z uwzgl dnieniem
najbli szego
otoczenia.
Obecnie
dzia a
wiele
serwisów
spo eczno ciowych analizuj cych blisko
relacji u ytkowników, mi dzy innymi
LinkedIn. Taka wiedza mo e pozwoli
udoskonala
sprawiaj c, e b
mechanizmy rekomendacji
w stanie proponowa tre ci, które zainteresowa y ju najbli szych
znajomych osoby korzystaj cej z serwisu, dlatego z du ym prawdopodobie stwem
zainteresuj tak e i jego. Analiza preferencji i zainteresowa najbli szej spo eczno ci w
serwisie tematycznym mo e u atwi sugerowanie najpopularniejszych zjawisk, a tak e
ukazywa mod , która aktualnie wyst puje.
Powy sza analiza mo e si
jednak okaza
niewystarczaj ca. W przypadku
wyszukiwania np. artyku ów naukowych o zaawansowanej tre ci, ich rekomendacja oparta
na obserwacjach otoczenia u ytkownika sk adaj cego si w wi kszo ci z nastolatków,
14
mo e okaza
si
nieskuteczna. Dlatego istniej
sytuacje, gdzie niezb dna jest
personalizacja o zasi gu globalnym. Ma ona zastosowanie g ównie, gdy trafno
rekomendowanych tre ci zale y od szerokich statystyk. Wnioski wyci gane przez
algorytmy podczas analizy zachowa szerokiej spo eczno ci, np. z ró nych kontynentów,
mog by wolne od stereotypów czy tzw. chwilowej mody.
Innym wa nym elementem personalizacji, oprócz rozpatrywania zasi gu dzia ania,
jest tak e rozró nianie kontekstu u ycia. Wówczas mechanizmy rekomenduj ce musz
rozpozna intencje u ytkownika. Przyk adem takiego dzia ania jest rozró nienie platformy,
na której wykonywane jest zapytanie. Czym innym b dzie spowodowane wyszukanie np.
has a „kuchnia w oska” przez korzystaj cych z komputera stacjonarnego (prawdopodobnie
chodzi mo e o wyszukanie przepisów kucharskich), a czym innym przez u ywaj cych
urz dzenia mobilne (ch
znalezienia najbli szej restauracji).
Przedstawiony wzorzec personalizacji jest zaawansowanym narz dziem w r kach
projektantów. U ywane w nim algorytmy rekomendacji nazywane s
„opartymi na
analizie u ytkowników” (ang. user-based), którego przyk adem b dzie opisana w dalszej
cz ci pracy wspólna filtracja (ang. Collaborative Filtering). Dostarczaj one cennych
wniosków i przyk adów, które mog by stosowane tak e w innych wzorcach, mi dzy
innymi w tych wcze niej opisanych. Serwisy u ywaj ce takiego mechanizmu staj si wi c
na tyle inteligentne, e z du
swobod i trafno ci potrafi sugerowa u ytkownikom
najlepszy wybór w danej sytuacji.
2.2.
Metody tworzenia profili u ytkownika
Systemy rekomendacyjne to specjalny typ systemów filtruj cych dane. Musz one
mierzy si z du
przestrzeni informacji, z której wyszukuj najbardziej interesuj ce
i u yteczne rzeczy dla u ytkownika bazuj c na zdobytych danych. Podstawowym
narz dziem dla mechanizmów rekomenduj cych s profile sk adaj ce si z cech lub
atrybutów. Formalnie, ka dy profil jest opisany wektorem
oznacza pewn cech lub atrybut danego profilu, a
=( ,
oznacza d ugo
,…,
), gdzie
wektora [7].
W systemach rekomenduj cych stosuje si wiele koncepcji profilowania. Najbardziej
podstawowym profilem u ytkownika jest profil sk adaj cy si z wektora
atrybutów
okre laj cych ocen przedmiotów dost pnych w serwisie. Ka da ocena przedmiotu mo e
sk ada si z konkretnej warto ci liczbowej, np. z przedzia u od 1 do 6, albo by ocen
niejawn okre laj
fakt dodania przedmiotu do ulubionych czy najcz ciej ogl danych.
15
Istnieje tak e mo liwo , e ocena jest pusta, co mo e by oznaczone warto ci specjaln ,
rozpoznawan przez mechanizmy korzystaj ce z powy szego profilu. Oprócz ocen, wektor
ten mo e zawiera
odwrotno ci
dodatkowo warto ci wag. Przyk adem mo e by
waga b
ca
cz sto ci oceniania danego produktu [8]. Dzi ki zastosowaniu takiej
koncepcji mo liwe jest zwi kszenie priorytetu rzadko ocenianych produktów, przez co
mechanizmy rekomendacji maj szans sugerowa tak e takie obiekty. W powy szych
przyk adach wszelkie informacje dotycz ce u ytkowników i ich ocen reprezentowane s
macierz
o wymiarach
na
, gdzie
liczb go u ytkuj cych. Ka da warto
okre la liczb przedmiotów w serwisie, a
macierzy -
która dotyczy -tego przedmiotu.
,
, okre la ocen
-tego u ytkownika,
Inn jest koncepcja, w której profil u ytkownika sk ada si nie z jednego wektora, w
którym znajduj si oceny wszystkich przedmiotów, a z listy
przedmiotów, gdzie ka dy
przedmiot jest tak e okre lony pewnym osobnym profilem, b
cym wektorem w pewnej
przestrzeni cech. Dana cecha mo e okre la nie tylko ocen , ale mo e by dowolnym
atrybutem takim jak tytu dla ksi ki, czy re yser dla filmu. Przedmioty s uto samiane z
profilem u ytkownika w momencie jego oceny albo gdy zostan
uznane przez
mechanizmy weryfikacji wzorca zachowa za preferowane.
Aby móc stworzy profile omawiane powy ej, potrzebne jest u ycie metod, dzi ki
którym mo liwe b dzie zebranie informacji. Informacje te b
sk adowymi wektora cech
w profilu. Istniej dwa podej cia, które s najcz ciej wykorzystywane:
podej cie aktywne,
podej cie pasywne.
2.2.1. Podej cie aktywne
Pierwsz
metod
zbierania informacji o u ytkowniku jest profilowanie aktywne,
inaczej jawne (ang. explicit profile). Sposób ten opiera si na informacjach uzyskanych
bezpo rednio od u ytkownika, które s
nast pnie przechowywane w jego profilu
i wykorzystywane przez mechanizmy rekomendacji. Przyk adem takiego wydobywania
wiedzy jest ankietowanie, gdzie u ytkuj cy serwis udziela odpowiedzi na pytania, które s
przetwarzane tak, aby mo na by o je zapisa w pewnym wektorze cech u ytkownika.
Obecnie taki sposób nie spotyka si z uznaniem internautów, gdy uwa any jest za
irytuj cy, przez co ankiety s niech tnie wype niane.
16
Powy szy sposób jest coraz rzadziej spotykany, gdy
stosuje si
inne, bardziej
przyjazne i mniej k opotliwe dla u ytkuj cych serwis. Takim przyk adem jest
zastosowanie mechanizmu oceniania. Spotykany jest na przyk ad w serwisach
po wi conym filmom, czy ksi kom, gdzie ka demu tytu owi u ytkownik mo e
przydzieli
w asn
ocen
w pewnej z góry ustalonej skali liczbowej. Dzi ki temu
pomys owi mechanizmy rekomendacji mog w prosty sposób, korzystaj c z profilu, gdzie
zawiera si
lista ocen, zasugerowa
tytu y podobne do tych najbardziej lubianych
i preferowanych. Podobnym wyj ciem jest umo liwienie dodawania przedmiotów do
ulubionych, czy nawet do nielubianych. W ten sposób mechanizm rekomendacji mo e
stwierdzi , jakie przedmioty mog sta si interesuj ce dla u ytkownika, a jakie wr cz
przeciwnie.
Omówione przyk ady dostarczaj informacji o u ytkowniku, które sam przeka e lub
udost pni, dlatego odzwierciedlenie jego profilu staje si subiektywne, a nawet niekiedy
nieprawdziwe. Nie zawsze uda si otrzyma pe
gam odpowiedzi, które najpe niej
oddadz obraz profilu. Mo e wyst pi sytuacja, e u ytkownik celowo b dzie odpowiada
niezgodnie z w asnym gustem, znu ony d ug
list
pyta
czy d ugim procesem
ankietowania, dlatego przy profilowaniu jawnym wyst puje trudno
przy zdobywaniu
wi kszej ilo ci informacji.
2.2.2. Podej cie pasywne
Nast pn metod umo liwiaj
stworzenie profilu u ytkownika jest profilowanie
pasywne, inaczej domniemane (ang. implicit profile). W podej ciu pasywnym zbieraniem
informacji zajmuje si system, który obserwuje dzia ania i weryfikuje wzorce zachowa
ytkownika, a nast pnie udoskonala i aktualizuje jego profil. Serwisy korzystaj ce z
takiego podej cia nie bazuj
na opinii u ytkuj cego ani nie oczekuj
udzielania
odpowiedzi na zadawane pytania czy samodzielnego dostarczania informacji. Skupiaj si
na analizie czasu, który jest po wi cany na czytanie o danym produkcie oraz na analizie
cech przedmiotów, które s najcz ciej ogl dane.
Wa nym narz dziem powy szego podej cia jest prowadzenie archiwum, w którym
system b dzie przechowywa ostatnio ogl dane, zamawiane czy kupowane przedmioty.
Ma to na celu zgromadzenie pe nego spektrum informacji o zachowaniach u ytkownika.
Maj c takie dane mo liwe jest stworzenie profilu, który ma szanse by
obrazem
rzeczywistej dzia alno ci u ytkownika w systemie. Taki profil stanowi podstaw dzia ania
17
mechanizmów rekomendacji, które mog
z du ym prawdopodobie stwem sugerowa
przedmioty najlepiej pasuj ce do ju kupionych czy najcz ciej analizowanych przez
ytkownika. Daje to mo liwo
ukazania produktów równie interesuj cych, a tak e
poszerzenia kr gu zainteresowa .
W przeciwie stwie do podej cia aktywnego, profilowanie pasywne jest niewidoczne
dla u ytkownika. Takie dzia anie umo liwia zebranie du ej ilo ci informacji o
ytkowniku bez wymuszania na nim konkretnych akcji, a tak e bez wy ej wspomnianych
negatywnych emocji wspomnianych. Wad takiego rozwi zania mo e by niew
ciwie
tworzenie profilu podczas analizowania archiwum zakupionych przedmiotów. Ma to
miejsce w sytuacji, gdy u ytkownik dokonuje zakupów nie dla siebie, a np. na prezent dla
znajomego. W takich przypadkach nie zawsze pasywna metoda zdobywania informacji
mo e pozna faktyczne opinie czy cele u ytkownika.
2.3.
Podsumowanie
Dzisiejszy post p techniczny sprawia, e mechanizmy rekomendacji staj si coraz
bardziej zaawansowane, przez co dok adniejsze i bardziej pomocne. Efektywno
przedstawianych wzorców powoduje, e znajduj zastosowanie w wi kszo ci serwisów
przynosz cych dochody. Wida to mi dzy innymi w sklepach on-line, czy serwisach
aukcyjnych, gdzie wyst puj
powi zane”, czy „
elementy, podpisane jako „Zobacz tak e”, „Produkty
ytkownicy, którzy kupili ten produkt, kupili tak e…”, podpowiadaj ce
ytkownikom, jakie produkty s najbli sze im zainteresowaniom czy potrzebom. Takie
wykorzystanie personalizacji spowodowa o,
pochodzi w
e 35% dochodów serwisu Amazon [6],
nie z takiego typu rekomendacji.
W opozycji do powy szego przyk adu stoi wykorzystanie rekomendacji jedynie w
celach marketingowych, nie analizuj ce np. wzorców zachowa . Wówczas reklamowanie
produktów wiadczy o preferencjach sprzedawcy, a nie o potrzebach klienta. Jednak takie
przypadki s w mniejszo ci. Obecnie w
cicielom znanych serwisów powi zanych z
e-biznesem zale y na innowacyjno ci i stosowane mechanizmy potrafi automatycznie
dobra
ofert
produktow
podstawie jego dzia
dla konsumenta wykorzystuj c jego profil stworzony na
podczas u ytkowania serwisu.
18
Rozdzia 3
Systemy rekomendacji
3.1.
Idea systemów rekomendacji
Wraz ze wzrostem popularno ci Internetu ros y tak e wymagania jego u ytkowników.
Jak wspomniano wcze niej, mo liwo
potrzeb
czy
w asnor cznego
samodzielnego dostosowania portalu do swoich
przeszukiwania
spo eczno ci
w
celu
znalezienia
odpowiedniej, pasuj cej do zainteresowa , przesta a by interesuj ca. Zapotrzebowanie
rozwijaj cego si rynku sprawi o, e wypracowana zosta a nowocze niejsza koncepcja,
która ma na celu zwolnienie u ytkuj cego portal od samodzielnych ustawie . Jej celem
jest prezentowanie tre ci ca kowicie spersonalizowanej, czyli dostosowanej do aktualnych
potrzeb, preferencji i zainteresowa u ytkownika. Systemy oferuj ce tak funkcjonalno
nosz
nazw
systemów rekomendacji. U ywaj
one mechanizmów zwracania uwagi
ytkowników na odpowiednie produkty oraz powoduj cych wzrost zadowolenia
korzystaj cego.
Mechanizmy rekomendacji mog by wykorzystywane w serwisach o charakterze
non-profit [9], dzia aj cych nie dla osi gania zysku, lecz w wi kszo ci przypadków
wykorzystywane s
w serwisach komercyjnych. W takich miejscach, dzi ki analizie
danych u ytkownika i wydobywaniu najprzydatniejszych informacji, mo liwe s
prognozy, co najlepiej trafi w gusta klienta, co jest w stanie zapewni , jak wspominano na
przyk adzie Amazon, wzrost wp ywów ze sprzeda y.
Systemy rekomendacji projektowane s tak, aby mierzy si z problemem wyszukania
przedmiotów o jak najwi kszej warto ci funkcji przydatno ci ka demu z u ytkowników w
jak najkrótszym czasie (1).
,
gdzie:
= max ( , )
(1)
– zbiór wszystkich u ytkowników serwisu,
– zbiór wszystkich rekomendowanych obiektów w serwisie,
×
– funkcja przydatno ci przedmiotu dla u ytkownika .
19
W powy szym celu wykorzystywane s techniki analityczne, okre laj ce podobie stwo
mi dzy elementami przestrzeni danych. Mo emy je podzieli na trzy podej cia:
Content-based Filtering – podej cie zapewniaj ce rekomendacje oparte na
analizie i dopasowywaniu cech produktów do indywidualnych preferencji
ytkownika,
Collaborative Filtering – podej cie zapewniaj ce rekomendacje oparte na
preferencjach podobnych u ytkowników,
Podej cie hybrydowe – koncepcja cz ca obie powy sze metody.
3.2.
Content-based Filtering
Pierwsz technik rekomendacyjn jest filtrowanie z analiz zawarto ci (ang. Contentbased Filtering), które sugeruje produkty na podstawie podobie stwa ich cech z profilem
ytkownika. Uwzgl dniaj c jego upodobania filtrowanie z analiz zawarto ci wyszukuje
pozycje podobne bazuj c na analizowaniu atrybutów specyficznych dla danego systemu.
Przyk adem mo e by
wypo yczalnia filmów, gdzie polecane s
udzia em jego ulubionego aktora, b
klientowi filmy z
filmy re ysera, którego ceni najbardziej. W takim
przypadku wspomnianym atrybutem b dzie aktor lub re yser. Innym przyk adem s
ksi garnie, które poleca b
ksi ki z gatunku najcz ciej czytanego przez u ytkownika
ksi ki zawieraj cej w tytule s owa, pojawiaj ce si najcz ciej w innych pozycjach
wybranych przez klienta. Analogicznie serwisy informacyjne d
ce do rekomendowania
artyku ów o tre ci najbardziej podobnej do artyku ów, wybieranych przez u ytkuj cego.
W powy szym podej ciu, oprócz stworzenia profilu u ytkownika, niezb dne jest
stworzenie profilu dla ka dego produktu znajduj cego si w bazie serwisu. Taki profil,
podobnie jak profil u ytkownika, b dzie stanowi wektor w przestrzeni cech b
atrybutów, o których pisano wy ej. Nast pnym etapem jest wybranie tych produktów,
których wektor cech jest najbardziej podobny do wektora u ytkownika. Miar takiego
podobie stwa mo na wyliczy na wiele sposobów.
Pierwszym ze sposobów jest wykorzystanie odleg
ci euklidesowej pomi dzy dwoma
punktami o wspó rz dnych okre lonych przez wektory cech (2).
20
( , )=
(
gdzie:
) + (
( , )=
((
) + …+ (
)
) )
(2)
– wspó rz dne wektora cech u ytkownika,
– wspó rz dne wektora cech obiektu rekomendowanego,
( , ) – odleg
euklidesowa mi dzy dwoma punktami,
– liczba obiektów w serwisie.
Odleg
euklidesowa jest równa d ugo ci odcinka
cz cego punkty
i
, dlatego im
( , ), tym aktywny obiekt bardziej pasuje do u ytkownika. Przyj o
mniejsza warto
si jednak, e porównywane dwa profile s tym do siebie bardziej podobne, im miara ich
podobie stwa jest wi ksza, dlatego dodatkowo stosuje si normalizacj (3).
( , )=
gdzie:
1
1+ ( , )
( , ) – znormalizowana miara podobie stwa.
Po jej zastosowaniu miara podobie stwa zawiera
si
(3)
b dzie w przedziale (0, 1
sprawiaj c, e rozpatrywanie trafno ci danego porównania b dzie wygodniejsze.
Innym sposobem mierzenia podobie stwa jest odleg
Hamminga, która okre la
ró nic mi dzy dwoma ci gami o takiej samej d ugo ci. Wynikiem jest liczba miejsc, na
których wyst puj
odmienne warto ci, czyli najmniejsza liczba zmian, któr
przeprowadzi , aby zmieni
ytkownika
nale y
jeden ci g na drugi. Przyk adowo maj c wektor cech
= (1, 0, 0, 7, 0, 2) i wektor cech przedmiotu
Hamminga mi dzy nimi wynosi
= (1, 1, 0, 5, 0, 2), odleg
( , ) = 2, gdy oba ci gi ró ni si
na dwóch
pozycjach. Powy sza metryka dostarcza w takim przypadku informacji o odmienno ci
dwóch wektorów. Im odleg
jest mniejsza, tym bardziej wektory s podobne, tym
samym profile je zawieraj ce mo na uzna za s siednie. Ma ona g ównie zastosowanie w
przypadku u ywania warto ci binarnych. W pozosta ych przypadkach mo e okaza si
bardzo nieskuteczn , gdy odrzuca warto ci ró ne, a niekiedy w rekomendacji mog si
okaza spokrewnione, przez co istotne przy ewentualnym sugerowaniu u ytkownikowi.
21
Najpopularniejszym sposobem w mechanizmach rekomendacji do oceniania
przedmiotów, czy s
najbardziej pasuj ce do profilu u ytkownika, jest odleg
kosinusowa (4). Miara ta jest wykorzystywana mi dzy innymi w serwisie Amazon [9].
( , ) = cos(
gdzie:
( , )=
+
+ …+
,
)=
|
°
| |
+
+
(4)
|
+ …+
– wspó rz dne wektora cech u ytkownika,
– wspó rz dne wektora cech obiektu rekomendowanego,
(
) – odleg
kosinusowa mi dzy dwoma punktami,
– liczba obiektów w serwisie.
Odleg
kosinusowa jest zdefiniowana, jako znormalizowany iloczyn skalarny dwóch
wektorów, a estymacja ich podobie stwa odbywa si poprzez obliczenie kosinusa k ta
pomi dzy nimi.
Rys. 3. Idea odleg
ci kosinusowej
22
Prezentowany powy ej rys. 3. ukazuje ide odleg
i
ci kosinusowej. Dane s trzy cechy
, oraz 4 profile reprezentowane przez wektory cech
pomi dzy wektorami
albo k t
,
,
i
. Je eli k t
zmierza do 0,
pomi dzy wektorami
wówczas kosinus tego k ta d y do 1. Takie profile le
,
w bliskim s siedztwie, dlatego
mog by uwa ane za podobne. Porównuj c tak profil u ytkownika z profilem produktu
mo na stwierdzi , czy dany produkt mo e by obiektem rekomendowanym.
System rekomendacji w pocz tkowej fazie stosuje wybran metryk , która okre la
miar podobie stwa pomi dzy produktami a profilem u ytkownika. Z grupy wybranych
produktów najbardziej podobnych usuwane s pozycje, które u ytkownik ju zna i by y
przez niego ju
analizowane. Powsta y w ten sposób zbiór produktów stanowi list
rekomendacji, któr mo na przedstawi u ytkownikowi jako najbardziej zgodn z jego
preferencjami. Je eli powy sza lista zawiera wi cej pozycji ni zmie ci si w miejscu na
rekomendacje, to mo e zosta posortowana np. od najwcze niej dodanych i wy wietlona w
formie
najlepszych (ang. Top-N recommendation). Schemat dzia ania takiego systemu
opartego o filtrowanie z analiz zawarto ci przedstawiono na rys. 4.
Rys. 4. Schemat dzia ania systemu rekomendacji opartej na Content-based Filtering
ród o: opracowanie w asne na podstawie: [7]
Wad
powy szej techniki rekomendacji jest opieranie si
jedynie na profilu
ytkownika, przez co istnieje du e ryzyko oszukania systemu oraz, e rekomendowane
produkty bardzo podobne do siebie. Oprócz tego, filtrowanie z analiz zawarto ci
niesie ze sob konieczno
reprezentacji przedmiotu w formie, któr b dzie w stanie
23
zanalizowa
system komputerowy. Przyk adowo istnieje niemo no
rekomendacji
muzyki, czy obrazów, gdy problemem jest zdefiniowanie ich cech i atrybutów.
3.3.
Collaborative Filtering
Drugim podej ciem stosowanym w systemach rekomendacyjnych jest tzw. wspólna
filtracja (ang. Collaborative Filtering). Opiera si ona na za
eniu, e je eli dwóch
ytkowników lubi podobne produkty lub ma podobne preferencje, to z du ym
prawdopodobie stwem b
podobnie zachowywa si w odniesieniu do innych rzeczy.
Przyk adem mo e by ksi garnia internetowa, w której u ytkownik
podobnie, ale u ytkownik
i
ocenili
dodatkowo oceni w pozytywny sposób inna ksi
sytuacji, mechanizm wspólnej filtracji zarekomenduje t
ksi
ksi ek
. W takiej
u ytkownikowi
,
zak adaj c, e i jemu przypadnie do gustu. W powy szej sytuacji nie polegamy na cechach
czy atrybutach danego produktu, jak to mia o miejsce w przypadku filtrowania z analiz
zawarto ci, a opieramy si na opinii osób, których zainteresowania i preferencje uznajemy
za podobne.
Mechanizmy rekomendacji oparte o wspóln filtracj u ywaj algorytmów, które
dziel si na dwie kategorie:
metody wykorzystuj ce pami
(Memory-based Collaborative Filtering),
metody wykorzystuj ce model (Model-based Collaborative Filtering).
Ich charakterystyk zaprezentowano w poni szych rozdzia ach.
3.3.1. Metody wykorzystuj ce pami
Pierwsz
Charakteryzuj
kategori
algorytmów
si one tym,
danych serwisu. Zak adaj ,
(Memory-based)
s
mechanizmy
wykorzystuj ce
pami .
e do przeprowadzenia rekomendacji u ywa ca ej bazy
e ka dy u ytkownik jest cz ci pewnej grupy, dlatego
ywaj metod statystycznych do znalezienia tzw. „najbli szych s siadów”, czyli grupy
ytkowników o podobnych zainteresowaniach.
W pierwszym kroku mechanizm rekomendacji tego typu wyszukuje grup
najbli szych s siadów poprzez obliczenie wagi
korelacj pomi dzy dwoma u ytkownikami:
,
, która okre la podobie stwo lub
i . Nast pnie obliczana jest prognoza
okre laj ca, czy dany produkt mo e by polecony u ytkownikowi w oparciu o jego
24
najbli szych s siadów. Ostatnim krokiem jest wybór
obiektów najbardziej pasuj cych do
ytkownika i przedstawienie ich w postaci rekomendacji.
Obliczanie podobie stwa pomi dzy u ytkownikami, który ocenili te same produkty,
dodali takie same do ulubionych, czy obserwowanych, jest kluczowym krokiem
mechanizmu rekomendacji. Do tego celu mo e by u yta np. odleg
kosinusowa (4),
lecz najbardziej rozpowszechnion miar podobie stwa w systemach rekomenduj cych
jest korelacja Pearsona [10], któr zapisuje si wzorem (5).
,
gdzie:
,
=
,
,
,
(5)
,
– korelacja Pearsona pomi dzy u ytkownikiem
i ,
, – porównywani u ytkownicy,
– zbiór obiektów, które zosta y ocenione przez obu u ytkowników,
– ocena -tego przedmiotu przez u ytkownika ,
,
,
,
– rednia ocen u ytkownika ,
– ocena -tego przedmiotu przez u ytkownika ,
,
,
,
– rednia ocen u ytkownika .
Aby wyró ni
u ytkowników najbardziej podobnych stosuje si
dodatkowo
normalizacj (6).
,
gdzie:
,
,
=
,
(6)
,
– znormalizowana korelacja Pearsona pomi dzy u ytkownikiem
– korelacja Pearsona pomi dzy u ytkownikiem
i ,
i
– moc normalizacji,
1.
W powy szym równaniu parametr
okre la jak bardzo ma by podkre lona ró nica
mi dzy wysokim a niskim wynikiem korelacji Pearsona. Typowo w mechanizmach
25
rekomendacji parametr wynosi 2,51. Przyk adowo dzia anie normalizacji sprawi, e w
przypadku korelacji
,
= 0,2, otrzyma
i pomijaln .
,
= 2, mechanizm otrzyma
,
0,018, sprawiaj c,
5,6. W przypadku korelacji
,
e stanie si
wyra nie nieistotn
Maj c obliczone korelacje pomi dzy u ytkownikami mo liwe jest utworzenie
najbli szego s siedztwa u ytkownika. Im korelacja jest wi ksza, tym bardziej
porównywani u ytkownicy s
do siebie podobni, czyli stanowi
bli sze s siedztwo.
Kolejn czynno ci , kiedy grupa najbli szych s siadów zosta a znaleziona, jest obliczenie
prognozy rekomendacji na podstawie ocenionych, b
wybranych przez nich
przedmiotów, których jednocze nie nie zna dany u ytkownik. Prognoza pozwala
stwierdzi jak bardzo dany przedmiot pasuje do u ytkownika, który go nie oceni , ani nie
analizowa . Obliczana jest na podstawie poni szego wzoru (7).
,
gdzie:
=
+
(
.
,
)
(7)
,
– wa ona suma ocen innych u ytkowników przedmiotu liczona dla
,
ytkownika ,
– zbiór u ytkowników, którzy ocenili przedmiot ,
– rednia wszystkich pozosta ych ocen u ytkownika ,
– rednia wszystkich pozosta ych ocen u ytkownika ,
,
– korelacja Pearsona pomi dzy u ytkownikiem
i .
W ko cowym etapie, mechanizm rekomendacji, maj c obliczone prognozy, mo e
stwierdzi , które przedmioty najbardziej pasuj do danego u ytkownika. Maj c tak list
mo liwe jest zaprezentowanie u ytkownikowi wszystkich propozycji, b
np. w formie
Zalet
konkretnych,
najlepszych.
omówionego wy ej sposobu jest to,
e nie musi si
opiera
na analizie
konkretnych cech produktów. Jego dzia anie jest mo liwe dla dowolnego typu obiektu.
Dodawanie nowych danych nie przynosi dodatkowych trudno ci w dzia aniu powy szych
algorytmów, lecz przy du ych zbiorach danych powy szy mechanizm mo e mie
ograniczon
1
skalowalno , co omówiono w rozdziale 3.4.2. Dodatkowo, gdy danym
D. Lemire, “Scale and translation invariant collaborative filtering systems”, 2005, str. 129–150
26
ytkownikiem jest u ytkownik nowo dodany, wyst puje problem braku informacji w jego
profilu o preferencjach. Rozwi zaniem tego problemu mo e by dodatkowe zastosowanie
danych demograficznych przy wyszukiwaniu korelacji, co zosta o omówione w rozdziale
3.4.1. Najkosztowniejszym elementem mechanizmów wykorzystuj cych pami
jest
znajdowanie u ytkowników najbardziej podobnych, czyli wyszukiwanie najbli szego
siedztwa. Alternatyw dla tego kroku mo e by u ycie grupowania, co zosta o szerzej
opisane w rozdziale 3.4.2.
3.3.2. Metody wykorzystuj ce model (Model-based)
Drug kategori algorytmów wykorzystywanych we wspólnej filtracji s algorytmy
wykorzystuj ce model. Podstaw ich dzia ania jest utworzenie modelu ocen u ytkownika,
który b dzie w stanie przewidzie jego ocen dotycz
modelu wykorzystywane s
przedmiotów. Podczas tworzenia
techniki uczenia maszynowego na podstawie danych
treningowych.
Jednym ze sposobów oszacowania rekomendacji przedmiotu dla danego u ytkownika
jest u ycie naiwnego klasyfikatora bayesowskiego, który jest najcz ciej stosowany w
serwisach rekomendacyjnych [11]. Stanowi on jedn z metod uczenia maszynowego
okre laj
, do której z klas decyzyjnych nale y przypisa nowy przypadek. W kontek cie
mechanizmów rekomendacji okre la b dzie, jak bardzo wybrany produkt b dzie trafny
dla danego u ytkownika.
Proces budowania modelu mo e wykorzystywa
maszynowego, lecz nie s
tak e inne techniki uczenia
one tak popularne, jak klasyfikator bayesowski. W
mechanizmach rekomendacji spotyka si jeszcze metod regu asocjacyjnych. Podej cie to
wykorzystuje algorytmy odkrywaj ce regu y asocjacyjne pomi dzy przedmiotami a
ytkownikami. Znalezione asocjacje s
do okre lania si y powi zania pomi dzy
przedmiotem, a danym u ytkownikiem. W ko cowym etapie zbierane s najsilniejsze
asocjacje i prezentowane jako lista rekomendacji.
Przy stosowaniu powy szego mechanizmu nie wyst puje problem rzadko ci danych
i skalowalno ci (patrz ni ej), lecz jego implementacja jest du o bardziej k opotliwa i
skomplikowana, ni w przypadku mechanizmu wykorzystuj cego pami . Z tego powodu
bardzo rzadko stosuje si
wielowymiarowych zada
podej cie modelowe. Oprócz tego, u ycie redukcji
np. przy naiwnym klasyfikatorze bayesowskim mo e
spowodowa utrat informacji i pogorszy wyniki rekomendacji.
27
3.4.
ówne problemy przy stosowaniu mechanizmów rekomendacji
3.4.1. Rzadko
danych
Mechanizmy rekomendacji musz mierzy si z wieloma problemami. Pierwszym jest
rzadko
danych. Pojawia si on, gdy dodawany jest nowy u ytkownik lub nowy produkt.
W takiej sytuacji system mo e nie mie wystarczaj co du o informacji, eby by w stanie
poprawnie wykona rekomendacj , gdy nie s znane preferencje takiego u ytkownika czy
jego historia dzia
. Podobnie jest z nowo dodanym produktem, który, dopóki nie
zostanie oceniony, dodany do ulubionych, czy dodany do obserwowanych, nie mo e by
prawid owo rozpatrzony przez mechanizm filtrowania. Problem te
nazywany jest
problemem „zimnego startu” (ang. cold start).
Zimny start nie stanowi problemu dla mechanizmów filtrowania z analiz zawarto ci,
gdy
ich dzia anie opiera si
na rekomendacji produktów podobnych do ju
obserwowanych i mo e by pomocne w momencie, gdy nie zosta y zebrane wystarczaj ce
informacje, by u
mechanizmu wspólnej filtracji. Ta my l pos
a do zbudowania
grupy algorytmów hybrydowych, wykorzystuj cych obie kategorie mechanizmów. Ich
charakterystyka opisana jest w rozdziale 3.5.
Jak wspomniano, problem rzadko ci danych stanowi du
przeszkod w dzia aniu
mechanizmów wspólnej filtracji. Innym rozwi zaniem tego problemu, obok podej cia
hybrydowego, jest dodatkowe zastosowanie danych demograficznych w profilach
ytkowników. W sytuacji, gdy dany u ytkownik nie ma ocenionych produktów i nie
mo na zastosowa korelacji Pearsona (5), wówczas tworzony jest dodatkowy wektor.
Wektor ten sk ada si z atrybutów powsta ych podczas weryfikacji cech demograficznych.
Przyk adowe cechy zosta y przedstawione w Tabeli 1.
Tabela 1 Struktura wektora demograficznego
cecha
1
2
3
4
5
6
7
przynale no
do cechy
wiek 15
15 < wiek 20
20 < wiek 30
30 < wiek 45
wiek > 45
== m czyzna
== kobieta
komentarz
je li dany u ytkownik przynale y
do wybranej cechy, wówczas
dany atrybut wektora przyjmuje
warto 1, a w pozosta ych
przypadkach 0.
28
Wówczas obliczanie prognozy rekomendacji odbywa si dla najbli szego s siedztwa
opartego na korelacji demograficznej [12], zgodnie z równaniem (8).
,
gdzie:
=
(
.
)
_
_
,
– wa ona suma ocen innych u ytkowników przedmiotu liczona dla
,
ytkownika
_
,
w najbli szym s siedztwie demograficznym,
– korelacja demograficzna pomi dzy u ytkownikiem
_
Do obliczenia powy szej korelacji demograficznej
odleg
(8)
,
kosinusow
[13]. Nast pnie, maj c wyliczon
,
i .
, najcz ciej stosuje si
prognoz
rekomendacji,
mechanizm zachowuje si dalej tak, jak zosta o to opisane przy wspólnej filtracji.
3.4.2. Skalowalno
Kolejnym problemem jest skalowalno . Wyst puje ona w momencie znacznego
wzrostu istniej cych u ytkowników i przedmiotów w systemie. Wówczas rekomendacja na
podstawie porównania profilu u ytkownika z profilami innych mo e by czasoch onna. W
takim przypadku macierz systemu sk adaj ca si
z ocen u ytkowników staje si
rozbudowana. Stosuje si wtedy rozk ad macierzy wed ug warto ci osobliwych (ang.
Singular Value Decomposition) [14], zgodnie z równaniem (9).
( )=
gdzie:
(9)
( ) – przedstawienie macierzy A o rozmiarach
w postaci rozk adu
wed ug warto ci osobliwych,
– macierz ortonormalna o rozmiarach
ugo
, czyli ortogonalna maj ca
ka dego wektora w macierzy równ 1,
– macierz diagonalna o rozmiarach
, posiadaj ca na przek tnej
nieujemne warto ci osobliwe macierzy ,
– macierz ortonormalna o rozmiarach
ugo
, czyli ortogonalna maj ca
ka dego wektora w macierzy równ 1.
Mechanizmy rekomendacji korzystaj z macierzy sk adaj cej si z ocen przedmiotów
ka dego z u ytkowników. Zastosowanie powy szego rozk adu sprawi,
e ta macierz
zostanie zredukowana i stanie si wolna od nieistotnych u ytkowników.
29
Innym sposobem radzenia sobie ze skalowalno ci
jest grupowanie. Dzi ki
zastosowaniu tej techniki, rekomendacje mog by wyznaczane dla pewnych grup, a nie
dla indywidualnych u ytkowników. Taki mechanizm jest mniej kosztowny obliczeniowo,
gdy grupy u ytkowników s mniej liczne, nawet o kilka rz dów wielko ci, od ca ej
przestrzeni danych. Oprócz tego, atutem grupowania jest zwi kszenie wydajno ci serwisu
oraz skalowalno ci, lecz przez to efektywno
rekomendacji b dzie du o gorsza, ni ta
oparta na analizie indywidualnej u ytkuj cych serwis. Dodatkowo podzia na grupy mo e
by wykonywany off-line, bez udzia u u ytkowników. Ze wzgl du na du
z
ono
problemu grupowania, nie b dzie on szerzej omawiany w niniejszej pracy.
3.4.3. Pozosta e wyzwania
Wy ej wymienione problemy stanowi
najwi ksze przeszkody w projektowaniu
systemów rekomendacyjnych. Istniej jednak mniej wymagaj ce problemy, o których
warto wspomnie . Jest nim mi dzy innymi problem tzw. „czarnej owcy” (ang. gray sheep),
wyst puj cy g ównie w przypadku mechanizmów korzystaj cych ze wspólnej filtracji
i grupowania. Wówczas istnieje ryzyko, e preferencje danego u ytkownika nie b
pasowa do adnej z grup, przez co nie b dzie móg korzysta z profitów mechanizmu
rekomendacji. W takich przypadkach wyj ciem jest zastosowanie mechanizmów
hybrydowych, które wspierane s dodatkowo przez filtrowanie wykorzystuj ce analiz
zawarto ci. Znajdowana jest wówczas rekomendacja najbardziej pasuj ca do potrzeb
indywidualnych poprzez analiz produktów ju dodanych lub obserwowanych.
ród wyzwa
wokó systemów rekomenduj cych wyró nia si nagroda miliona
dolarów w konkursie og oszonym przez serwis Netflix, który jest internetow
wypo yczalni filmów. Za
eniem konkursu, którego start odby si w 2006 roku, jest
udoskonalenie silnika rekomendacyjnego serwisu, tak aby poprawi jego wspó czynnik
trafno ci o 10%. Uda o si to zespo owi BellKor's Pragmatic Chaos w lipcu 2009 roku
[15]. Pomys opiera si w du ej mierze na dopracowaniu modelu najbli szego s siedztwa,
dzi ki czemu uda o si poprawi wspó czynnik poprawno ci do 10,06%.
3.5.
Podej cie hybrydowe
ywanie filtrowania wykorzystuj cego analiz zawarto ci wi e si z ryzykiem, e
rekomendacja przy uwzgl dnianiu jedynie produktów podobnych do ogl danych b dzie
nienajlepsz . Powstaje wówczas sytuacja, e wi kszo
niewielk cz
u ytkowników ogl da jedynie
wszystkich produktów. Nazywane jest to problemem „ ugiego ogona”,
30
którego ilustracj wida na rys. 5. Przyk adem takiej sytuacji mo e by rekomendacja
tylko najpopularniejszych i najlepszych pozycji. Powoduje to, e produkty mog ce okaza
ciekawymi dla u ytkownika, nie b
jest
dodatkowe
zarekomendowa
zastosowanie
mu prezentowane. Rozwi zaniem takiego problemu
metod
wspólnej
filtracji,
które
b
w
stanie
mniej popularne produkty pasuj ce do u ytkownika, powoduj c
aktywacj pozosta ej cz ci „ ugiego ogona”.
Jednoczesne lub zamienne stosowanie obu metod, tj. filtrowania z analiz zawarto ci i
wspólnej filtracji, nosi nazw podej cia hybrydowego.
Rys. 5. Problem „d ugiego ogona”
ród o: opracowanie w asne na podstawie: [8]
Najcz ciej wykorzystywanym typem mechanizmu hybrydowego jest wspólna
filtracja wspomagana zawarto ci (Content-Boosted Collaborative Filtering). Atutem tego
rozwi zania, oprócz mo liwo ci spersonalizowanych rekomendacji na podstawie
najbardziej podobnych u ytkowników, których dostarcza wspólna filtracja, jest dodatkowo
poprawa danych o u ytkownikach i przedmiotach dzi ki wykorzystaniu cech przedmiotów
oraz osobistych preferencji u ytkuj cych serwis pochodz cych z zastosowania filtrowania
z analiz zawarto ci. Jak wspomniano w poprzednich rozdzia ach, zastosowanie podej cia
hybrydowego pozwala unikn
problemów jakim jest np. rzadko
danych, czyli problem
nowego u ytkownika.
31
Koncepcja mechanizmów hybrydowych opiera si na tworzeniu pseudowektorów
dla ka dego u ytkownika
w bazie. Atrybuty pseudowektora
budowane s zgodnie z
wzorem (10).
,
gdzie:
=
,
,
– ocena przedmiotu u ytkownika
,
,
,
(10)
. . .
w pseudowektorze
,
– ocena u ytkownika
przedmiotu ,
– ocena u ytkownika
przedmiotu powsta a przez zastosowanie metody
filtrowania z analiz zawarto ci.
Zastosowanie powy szej metody zapewni, e ka dy przedmiot b dzie oceniony przez
ytkownika albo przez niego osobi cie, albo poprzez zastosowanie metody filtrowania
opartego na analizie zawarto ci opisanej w rozdziale 4.2. Z
ytkowników dadz macierz
one pseudowektory
systemu, gdzie nie wyst pi problem rzadko ci danych.
Nast pnym krokiem jest zastosowanie korelacji Pearsona (5) do obliczania podobie stwa
mi dzy u ytkownikami, znanej z metody wspólnej filtracji, lecz w podej ciu hybrydowym
nie stosuje si omawianych w rozdziale 4.3.1 wektorów ocen u ytkowników
pseudowektory
Dok adno
i
i , a ich
.
pseudowektorów liczona dla konkretnego u ytkownika jest zale na od
liczby ocenionych przez niego przedmiotów. Je li liczba ocen jest du a, to
prawdopodobie stwo, e rekomendacja z pomoc filtrowania z analiz zawarto ci b dzie
trafna, tak e b dzie wysokie. W przeciwnym przypadku, pseudowektor mo e by nie do
dok adny dla potrzeb prognozy rekomendacji. Stwierdzono [16], e mo e to powodowa
myl co wysokie korelacje mi dzy niektórymi u ytkownikami, dlatego stosowana jest w
takim przypadku wa ona
rednia harmoniczna, która okre la wag
pseudowektora. W pierwszym kroku liczony jest wspó czynnik
= 50
gdzie:
– wspó czynnik
1
u ytkownika ,
< 50
dok adno ci
u ytkownika (11).
(11)
. . .
– liczba ocen u ytkownika .
32
Powy szy wspó czynnik opiera si na progu, który zosta dobrany na podstawie bada
Toma M. Mitchela2. Zastosowano wówczas krzywe uczenia si na zbiorze treningowym
132 u ytkowników, którzy ocenili wi cej ni
200 produktów. Wykryto,
predykator dostaje coraz wi cej danych treningowych, to jego wydajno
poprawia si , lecz po przekroczeniu oko o 50 ocen dok adno
nieznacznie. Maj c wspó czynnik
e je eli
przewidywania
zwi ksza si jedynie
mo liwe jest wyznaczenie wspomnianej wa onej
redniej harmonicznej (12).
,
gdzie:
(12)
+
– wa ona rednia harmoniczna u ytkowników i ,
,
,
2
=
– wspó czynniki
u ytkowników i .
Zastosowanie powy szego równania pozwoli obliczy tendencj do odchylenia wagi w
kierunki mniejszej z warto ci
i
. Dzi ki temu korelacja pomi dzy dwoma pseudo-
wektorami z co najmniej 50 ocenami ka dego z u ytkowników
i
otrzyma najwi ksz
wag , niezale nie od liczby ocenionych produktów przez pozosta ych u ytkowników. Z
kolei je li jeden z u ytkowników oceni mniej ni 50 produktów, waga takiej korelacji
zostanie odpowiednio zdewaluowana.
Dodatkowo stosuje si tzw. „wag znaczeniow ” (ang. Significance Weighting) [17],
która ma za zadanie zmniejszy znaczenie korelacji opartych na u ytkownikach maj cych
ma o ocen (13).
,
gdzie:
,
,
=
,
50
1
< 50
(13)
. . .
– waga znaczeniowa u ytkowników
i ,
– liczba ocen wspólnie ocenionych przedmiotów przez u ytkowników
i .
Powy sza waga wykorzystywana jest do obliczenia hybrydowej wagi korelacji (14) (ang.
Hybrid correlation weight), której u ywa si
w ostatecznej prognozie rekomendacji.
Sk ada si ona z dwóch wcze niej omawianych wag.
2
Michalski R., Carbonell J., Mitchell T., „Machine Learning: An Artificial Intelligence Approach”,
Tioga Press, 1983
33
,
gdzie:
,
,
=
,
+
(14)
,
– hybrydowa waga korelacji u ytkowników
i ,
– wa ona rednia harmoniczna u ytkowników
,
– waga znaczeniowa u ytkowników
i ,
i .
W metodzie wspólnej filtracji prognoz rekomendacji przewiduje si na podstawie
najbli szego s siedztwa danego u ytkownika, zgodnie z wzorem (6). W podej ciu
hybrydowym do powy szego równania nale y w czy dodatkowo pseudoocen obliczon
na podstawie danego u ytkownika, zgodnie z filtrowaniem z analiz zawarto ci. Ma to na
celu zwi kszenie dok adno ci rekomendacji. Zazwyczaj wykonuje si to z uwzgl dnieniem
wagi danej pseudooceny. Waga ta, nazywana „samowag ” (ang. Self Weighting) wygl da
nast puj co (15):
= 50
gdzie:
. . .
(15)
< 50
– waga okre laj ca znaczenie pseudooceny u ytkownika ,
– liczba ocen u ytkownika .
– parametr okre laj cy zaufanie, jakim darzona jest metoda filtrowania z
analiz tre ci w podej ciu hybrydowym, zazwyczaj wynosi 2 [16].
Nast pnym krokiem jest obliczenie prognozy rekomendacji znanej z metody wspólnej
filtracji, lecz dostosowanej do wspó pracy z filtrowaniem z analiz tre ci. W podej ciu
hybrydowym tak prognoz oblicza si stosuj c równanie (16).
,
gdzie:
=
+
,
+
+
(
.
,
)
,
,
,
(16)
– wa ona suma ocen innych u ytkowników przedmiotu liczona dla
,
ytkownika ,
– zbiór u ytkowników, którzy ocenili przedmiot ,
– rednia wszystkich pozosta ych ocen u ytkownika ,
– rednia wszystkich pozosta ych ocen u ytkownika ,
,
,
– korelacja Pearsona pomi dzy u ytkownikiem
– ocena u ytkownika
i ,
przedmiotu powsta a przez zastosowanie metody
34
filtrowania z analiz zawarto ci,
– waga okre laj ca znaczenie pseudooceny u ytkownika ,
,
– hybrydowa waga korelacji u ytkowników
i .
Po obliczeniu prognoz rekomendacji, w podej ciu hybrydowym post puje si tak, jak
zosta o to opisane przy wspólnej filtracji. Analizowane s wyniki prognoz, wybierane
najlepsze i przedstawiane u ytkownikowi jako lista rekomendacji.
3.6.
Podsumowanie
Systemy
rekomendacyjne
s
zaawansowanymi
systemami,
implementacji. Ich wybór zale y od miejsca, w którym zostan
filtrowania z analiz
trudnymi
do
u yte. Mechanizm
zawarto ci bazuje na informacjach o produkcie oraz na jego
ciwo ciach. Takie podej cie znane jest z systemów wyszukiwania i filtrowania
informacji. Jest ono skuteczne, gdy mamy ma o wiadomo ci preferencjach danego
ytkownika. Nie maj c informacji o jego upodobaniach, mechanizm jest w stanie
zarekomendowa jedynie produkty, które s najbardziej podobne do tych ju znanych i
ogl danych przez u ytkownika. Powoduje to, e wykorzystanie tego podej cia do budowy
pe nego systemu rekomendacji mo e sta si ma o efektywne.
W sytuacji, gdy w systemie jest du o danych na temat u ytkowników i ich preferencji,
mo liwe jest zastosowanie mechanizmów wspólnej filtracji. Opieraj si one na zbieraniu
i analizowaniu informacji o zachowaniach u ytkowników oraz ich preferencjach. Na tej
podstawie s w stanie rekomendowa produkty bazuj c na obliczonym podobie stwie z
innymi u ytkuj cymi serwis, przy za
eniu, e najbardziej podobni u ytkownicy wybior
te same przedmioty. Wspólna filtracja obarczana jest problemami zimnego startu,
skalowalno ci i rzadko ci danych. W celu ich unikni cia stosuje si ró ne zabiegi, w tym
rozszerzenie profilu u ytkownika o wektor z danymi demograficznymi. Wolnym od
powy szych problemów jest mechanizm filtrowania hybrydowego,
cz cego oba
wymienione podej cia.
Przed implementacj wybranego mechanizmu w systemie rekomendacji, istotnym jest
okre lenie celów, jakie ma realizowa oraz przewidzenie danych, jakie b
analizowane
w trakcie jego dzia ania. Dzi ki temu, na pocz tkowym etapie tworzenia systemu,
projektant ma mo liwo
poznania problemów mog cych wyst pi
w dzia aj cym
systemie i wybra odpowiednie metody je niweluj ce.
35
Rozdzia 4
Aplikacja Findy
4.1.
Za
enia
Aplikacja Findy jest praktyczn cz ci pracy. G ównym celem realizacji aplikacji jest
implementacja prototypu systemu zaawansowanych rekomendacji. W projekcie skupiono
si
na wdro eniu dwóch mechanizmów rekomendacyjnych: filtrowania z analiz
zawarto ci omówionego w rozdziale 3.2 oraz wspólnej filtracji wykorzystuj cego pami
omówionego w rozdziale 3.3.1. Findy jest aplikacj internetow dzia aj
komunikuj
na serwerze i
si z komputerem u ytkownika poprzez sie komputerow przy u yciu
przegl darki internetowej.
Ide aplikacji jest pomoc u ytkownikowi w wyborze sposobu i miejsca sp dzenia
wolnego czasu. Na potrzeby projektu skupiono si
na aktywnym sposobie, czyli
uprawianiu sportów w Warszawie. Aplikacja umo liwia wybór dyscypliny sportu,
rekomenduje u ytkownikowi najlepsze miejsca z wykorzystaniem filtrowania z analiz
zawarto ci wraz z mo liwo ci wyboru daty, kiedy ma odby si wydarzenie, a nast pnie
zapisuje wszystkie informacje w bazie danych. Stworzone w taki sposób wydarzenie
dzie wy wietlane u ytkownikowi w jego spersonalizowanym oknie wraz z
komunikatami
o
zbli aj cych
spersonalizowanym oknie b
si
terminach.
Dodatkowo,
na
wspomnianym
rekomendowane inne wydarzenia, które najbardziej pasuj
do u ytkownika z wykorzystaniem mechanizmu wspólnej filtracji wykorzystuj cego
pami .
Za
eniem aplikacji Findy jest planowanie aktywno ci. W szybki sposób, w paru
krokach, u ytkownik ma mo liwo
interesuj cej oraz u
przejrzenia najbardziej pasuj cej oferty, wybrania tej
enie jej na swoim panelu, umo liwiaj c sprawne uk adanie grafiku
aktywno ci. Na bie co dany u ytkownik jest informowany o miejscach i wydarzeniach,
które mog by przez niego preferowane za spraw dzia ania mechanizmu rekomendacji
opartego na wspólnej filtracji. Dodatkowo ma mo liwo
oceny danego miejsca
wydarzenia, co jest podstaw dzia ania algorytmów rekomendacji.
36
4.2.
Specyfikacja wymaga
Poni ej przedstawiono specyfikacj wymaga
jakie za
funkcjonalnych i niefunkcjonalnych,
ono przy implementacji aplikacji Findy.
4.2.1. Wymagania funkcjonalne
1.
Aplikacja wspiera tworzenie wydarze , w których u ytkownik chce wzi
udzia .
2.
Aplikacja umo liwia gromadzenie wydarze u ytkownika i przypomina o
nadchodz cych terminach.
3.
Aplikacja umo liwia ocenianie miejsc wydarze ,
4.
Aplikacja umo liwia szczegó owy podgl d wydarzenia u ytkownika,
5.
Aplikacja rekomenduje miejsca, na podstawie których u ytkownik ma
mo liwo
stworzenia w asnego wydarzenia.
6.
ytkownik mo e usuwa za
one wydarzenia.
7.
ytkownik mo e tworzy nowie miejsca wydarzenia, które mog by
rekomendowane innym u ytkownikom.
8.
Aplikacja wy wietla komunikaty pomagaj ce w u ytkowaniu.
4.2.2. Wymagania niefunkcjonalne
1.
Logowanie – aby u ytkownik móg zacz
korzysta z aplikacji musi si
zalogowa podaj c login i has o, które s weryfikowane w bazie danych, po
czym nadawane s odpowiednie uprawnienia.
2.
3.
Dost pno
ono
– dost pno
– aplikacja powinna by intuicyjna, nauka korzystania z aplikacji
nie powinna zaj
4.
do aplikacji jest mo liwa ca dob , ka dego dnia.
wi cej ni 10 minut.
Bezpiecze stwo – ka dy zarejestrowany u ytkownik powinien mie dost p
jedynie do wydarze i informacji, przechowywanych o nim samym.
4.3.
Realizacja
Aplikacja Findy jest aplikacj typu RIA (ang. Rich Internet Application) w wi kszo ci
napisan
w technologii Vaadin, b
cej szkieletem (ang. Framework) do tworzenia
aplikacji w j zyku Java. W Vaadinie zosta zaimplementowany interfejs u ytkownika,
wykorzystuj cy dodatkowo technologi Spring Framework. Oprócz tego wykorzystano
szkielet Hibernate do realizacji warstwy dost pu do danych zapisanych w bazie
PostgreSQL oraz technologi JSP do stworzenia dynamicznych stron z logowaniem
37
ytkownika. Ca y projekt budowano przy u yciu narz dzia
Apache Maven
automatyzuj cego proces kompilacji oraz pozwalaj cego w atwy sposób dodawa
zale no ci do zewn trznych bibliotek u ywanych w aplikacji. Zbudowana aplikacja
uruchamiana jest na serwerze aplikacyjnym Apache Tomcat w wersji 6.0.35.
4.3.1. Technologia Spring Framework
Framework Spring zosta u yty w wersji 3.0.5. RELEASE do tworzenia tzw. „ziaren”
(ang. Bean) za pomoc adnotacji. Ziarna opakowuj obiekty, np. metody, zmienne, w
jeden serializowalny obiekt pozwalaj cy na dostanie si do swoich elementów przy
pomocy metod dost powych „get” i „set”, za adnotacje pozwalaj na ich konfiguracj .
Aby adnotacje by y rozpoznawane przez kontekst Springa (czyli g ówny interfejs
zapewniaj cy konfiguracj aplikacji podczas jej dzia ania), zosta a uruchomiona us uga
adnotacji w pliku konfiguracyjnym applicationContext.xml. Dodatkowo wskazano
pakiet pl.findy.web, gdzie kontekst ma szuka okre lonych adnotacji.
Najwa niejsze cz ci projektu, czyli algorytmy u ywane w mechanizmach
rekomendacji zosta y oznaczone adnotacj @Service. Korzystanie z nich mo liwe jest
dzi ki wstrzykiwaniu ich zale no ci (ang. Dependency Injection) poprzez adnotacj
@Autowired. Przyk adem jest zastosowanie w klasie MainWindowPresenter.java,
gdzie u yto wstrzykni cia prosto do pola collaborativeFilteringService:
@Autowired
private CollaborativeFilteringService
collaborativeFilteringService;
Dodatkowo u ywane s adnotacje @Component okre laj ce komponenty b
ce ziarnami
klas prezenterów, widoków (które zostan omówione w rozdziale 5.3.3) oraz pozosta ych
obiektów, które wi
si z warstw aplikacji.
Wykorzystywane s tak e adnotacje okre laj ce zasi g dzia ania ziaren, czyli czas ich
ycia. Dost pne s nast puj ce mo liwo ci okre lenia zasi gu: „singleton”, „prototype”,
„request”, „session” i „global session”. W aplikacji Findy stosowane s komponenty o
zasi gu „prototype”. Ma to zwi zek z architektur Vaadina, która zostanie dok adniej
omówiona w nast pnym podrozdziale. Vaadin jest aplikacj , która dzia a na serwerze,
przez co wysy a ona u ytkownikom tzw. terminale, czyli konkretne ekrany akcji. Z tego
wzgl du u ycie zasi gu typu „singleton” powodowa oby,
e ka dy u ytkownik
odwiedzaj cy aplikacj widzia by dok adnie ten sam ekran, gdy ziarno tworzone by oby
38
raz. Przyk adowo, gdyby jeden u ytkownik wywo by jak
akcj , to ta sama akcja
zosta aby ukazana pozosta ym u ytkownikom. U ycie zasi gu „prototype” powoduje, e
je eli dana aplikacja po stronie klienta si gnie do kontekstu Springa po ziarno, to zostanie
ono stworzone jako nowy obiekt. Zasi g „request” w kontek cie Vaadina zachowuje si
podobnie jak „prototype”. Pozosta e typy zasi gów: „session” i „global session” s
stosowane w aplikacjach wykorzystuj cych interfejs „HTTPSession” do komunikacji i
tworzenia sesji pomi dzy klientem a serwerem.
4.3.2. Technologia Vaadin
W celu zobrazowania i przedstawienia dzia ania mechanizmów rekomendacji zosta
yty framework Vaadin, obecnie uwa any za bardzo dojrza y projekt fi skiej firmy
Vaadin (kiedy IT Mill Toolkit). Oparty jest na pakiecie Google Web Toolkit (GWT),
innym frameworku do budowania aplikacji internetowych. Charakteryzuje si tym, e
jego standard zapewnia poprawne wy wietlanie kontrolek, czyli komponentów, na
wszystkich najbardziej popularnych przegl darkach.
Dzieki u yciu Vaadina, GWT wykorzystywane jest raz. Dzieje si to jedynie w
momencie, kiedy kontrolki u ywane w aplikacji, takie jak pole do wpisywania tekstu, czy
lista rozwijana, s kompilowane przez GWT. Od tego momentu mo na ich u ywa bez
ponownych aktualizacji przy rekompilacji projektu. Oznacza to, e ka da zmiana w
kodzie nie b dzie nios a ze sob konieczno ci budowy projektu na nowo. Zmiany te
zostaj automatycznie wprowadzane w trakcie dzia ania aplikacji na serwerze, która
wymaga jedynie od wie enia w przegl darce, aby zmiany by y widoczne.
Pozosta e przypadki wykorzystania frameworków zosta y stworzone na nowo przez
Vaadina. Dzi ki temu mo liwe by o unikni cie wad, jakie niesie ze sob u ywanie
normalnego GWT, mi dzy innymi problemów internacjonalizacyjnych (wymóg
tworzenia dodatkowych modu ów obs uguj cych zmiany j zyka) oraz problemów z
szybkim przyrostem aplikacji (im wi kszy rozmiar aplikacji, tym szybciej zwi ksza si
rozmiar JavaScriptu generowanego przez GWT, w przeciwie stwie do Vaadina, gdzie
generowany JavaScript zwi ksza si nieznacznie w czasie rozwoju projektu, co opisano
w nast pnym akapicie). Innym udogodnieniem w porównaniu do GWT jest brak
konieczno ci dzielenia kodu na cz
Vaadinie jest wykonywany w ca
si
serwerow i klienck . Kod aplikacji napisanej w
ci po stronie serwera. Powoduje to, e aplikacje pisze
atwiej, lecz serwer jest bardziej obci any. Jednak w dobie dzisiejszego rozwoju
39
techniki obci enie to jest niemal niewidoczne. Aplikacja Findy rednio u ywa 33kB
pami ci RAM, co daje mo liwo
podtrzymywania 30000 sesji na ka dy 1 GB pami ci.
W Vaadinie to, co przesy ane jest do klienta do przegl darki, jest niezale ne od
wielko ci aplikacji, poniewa wysy any jest tylko obiekt zmiany informuj cy o sposobie
wy wietlania i zachowania si kontrolek. Ka de po czenie klienta z aplikacj powoduje
traktowanie go jako klienta terminala, który odbiera wspomniany obiekt zmiany
zawieraj cy informacj np. jak widok ma si zmieni pod wp ywem akcji w aplikacji.
Obiekt zmiany tworzony jest za pomoc
j zyka UIDL (User Interface Definition
Language) opartego na notacji JSON (JavaScript Object Notation), co przedstawiono na
rys. 6. Mechanizm UIDL pozwala na przesy anie obiektów „lekkich”, które mog by
liczone w bajtach, w przeciwie stwie do j zyka XML, gdzie wyst puje narzut tagów, co
zwi ksza obj to
obiektów. Widok w aplikacji, podobnie jak w przypadku innych
aplikacji internetowych, kompilowany jest do JavaScriptu, dlatego dodatkowe stosowanie
UIDL pozwala na szybk komunikacj z serwerem.
40
Rys. 6. Architektura Vaadin’a
ród o:Book of Vaadin, rozdzia 3.1, vaadin.com/book/
Na rysunku przedstawiono tak e Vaadin Terminal Adapter, który jest niewidoczny dla
ytkowników. Jest to abstrakcyjna warstwa stworzona przez twórców Vaadina, która w
atwy sposób pozwala na przej cie do innej technologii kompilacji kontrolek. Tak jak
teraz pozwoli a na u ycie GWT, tak w przysz
ci pozwoli na szybkie przej cie do innej
technologii, np. bardziej efektywnej. Poni ej w architekturze mamy wspomniane
kontrolki u ytkownika, które s w stanie wi za si z danymi w bazie danych oraz logik ,
czyli sam aplikacj napisan w Vaadinie.
Pisanie aplikacji przebiega bardzo podobnie, jak przy pisaniu aplikacji desktopowych
z wykorzystaniem Java Swing. Programista zwolniony jest z obowi zku znajomo ci
41
zyka HTML, JavaScript, czy arkusza stylów CSS. Dzi ki temu tworzenie interfejsu
graficznego przesta o by wymagaj
wi cej czasu na implementacj
czynno ci , pozwalaj c na po wi cenie du o
logiki aplikacji. Przyk ad tworzenia cz ci widoku
wyst puj cy w oknie modalnym 2 kroku wyboru wydarzenia zaprezentowano poni ej.
public void initialize() {
VerticalLayout dateLayout = new VerticalLayout();
dateLayout.addComponent(getDateFields());
dateLayout.setComponentAlignment(dateField, Alignment.MIDDLE_CENTER);
addComponent(dateLayout);
}
Pocz tkowo odbywa si okre lenie uk adu widoku. Wybrany zosta uk ad pionowy, czyli
kolejne komponenty b
dodawane w pionie. Nast pnie do stworzonego uk adu dodane
jest pole z dat i okre lone zostaje jego po
enie wzgl dem uk adu: wy rodkowane. Aby
stworzy powy szy interfejs graficzny nie jest potrzebne wype nianie arkusza CSS czy
ustawianie elementów na stronie HTML. Wystarczy znajomo
Javy Swing i dodawanie
kolejnych komponentów do siebie. Za kwesti wygl du strony i jej interfejsu graficznego
odpowiada Vaadin, a konkretnie jeden z trzech motywów dost pnych do wyboru:
Chameleon, Reindeer i Runo Theme. Pierwszy z nich mo emy dodatkowo zmienia w
edytorze on-line udost pnionym przez Vaadina. Po dostosowaniu go do w asnych potrzeb
wystarczy go podmieni w aplikacji, aby zmiany by y widoczne.
Zastosowanie technologii Vaadin pozwoli o na
atwe dostosowanie interfejsu
ytkownika do potrzeb mechanizmów rekomendacji. W aplikacji rekomendacj jest
obiekt wydarzenia, który zosta wybrany przez zastosowany algorytm filtrowania. Taki
obiekt ma w sobie informacje o miejscu wydarzenia oraz o uprawianej dyscyplinie.
Nast pnie ka dy taki obiekt wydarzenia wi zany jest z obiektem typu panel, po czym
wy wietlany u ytkownikowi jako rekomendacja.
4.3.3. Wzorzec Model-View-Presenter
Technologia Vaadin nie ma okre lonego wzorca tworzenia aplikacji, dlatego wybrany
zosta wzorzec model-widok-prezenter (ang. Model-View-Presenter), którego diagram
klas zaprezentowano w dodatku A. W zastosowanym wzorcu prezenter przechowuje stan
widoku, dlatego jest on dost pny ca y czas, gdy obecny jest jego widok. Ró ni si to od
koncepcji kontrolera w powszechnie wykorzystywanym wzorcu model-widok-kontroler
(ang. Model-View-Controler), gdzie kontroler jedynie zwraca widok i ko czy swoje
dzia anie.
42
Istniej dwa podwzorce tworzenia widoku. Pierwszym jest podej cie „supervising
controller”, gdzie prezenter dopuszcza powi zanie widoku z warstw
modelem. Wówczas prezenter nadzoruje ca
danych, czyli
operacj , przekazuj c widokowi jedynie
polecenia (np. o pobraniu danych), a nast pnie widok sam pobiera z modelu potrzebne
informacje. Drugim podej ciem, które zastosowano w aplikacji Findy jest „passive view”.
W takim przypadku widok nie ma informacji o tym, co wykonuje, ani jak dzia a logika
aplikacji. Jest odseparowany tak e od
ród a danych. Funkcj
zarz dzania takim
widokiem przejmuje prezenter, który odbiera od widoku informacje o tym, co zosta o na
nim wykonane, a nast pnie na tej podstawie kieruje jego dalsz prac . Przyk adem mo e
by klikni cie przycisku na widoku, które ma na celu za adowanie danych. Gdy prezenter
odbierze tak informacj i odpowiednio j przetworzy, b dzie wiedzia sk d pobra
wymagane dane, a nast pnie prze le dane do widoku w celu ich wy wietlenia.
W projekcie u yto interfejsów reprezentuj cych prezentera. Taki prezenter
uruchamiany jest przez zdarzenie, np. klikni cie na odpowiedni przycisk. Wówczas
prezenter wywo any przez takie zdarzenie zwraca widok jako komponent, którym
zarz dza. Specjalnym typem widoku i prezentera jest tzw. wizard, czyli umo liwienie na
jednym ekranie wybierania kolejnych paneli i elementów. Zosta on u yty w oknie
wyboru wydarzenia u ytkownika w aplikacji Findy.
Model jest warstw
dost pu do danych, gdzie zastosowano komponenty, które
dostarczaj odpowiednie interfejsy do komunikacji mi dzy aplikacj , a baz danych. W
implementacji zastosowano obiekty DAO (ang. Data Access Object) przy u yciu
narz dzia Hibernate. W ramach projektu stworzono generyczne DAO, które pozwala na
dynamiczne przeprowadzenie operacji CRUD na bazie danych dla ka dego obiektu. Gdy
odpowiedni obiekt zostanie wskazany, zostanie automatycznie zmapowany na
odpowiedni tabel bazodanow .
4.4.
Praca z aplikacj
Aby móc korzysta z aplikacji Findy nale y najpierw zalogowa si loginem i has em.
Z podanego has a generowany jest skrót za pomoc algorytmu kryptograficznego MD5, a
nast pnie wraz z loginem sprawdzana jest ich obecno
w bazie danych. Gdy u ytkownik
zostaje znaleziony przekierowywany jest na stron z aplikacj .
Po przej ciu procedury logowania, uruchamiana jest aplikacja Findy. Jej ekran g ówny
zaprezentowany jest na rys. 7. G ównymi cz ciami sk adowymi s nag ówek, pasek
43
nawigacji oraz panel u ytkownika. W nag ówku mamy mo liwo
wpisania nazwy
dyscypliny, jak chcemy uprawia . Po wpisaniu odpowiedniego has a i klikni ciu w
przycisk „+”, otworzone zostanie okno modalne z mo liwo ci wybrania szczegó ów
nowo tworzonego wydarzenia. W pasku nawigacji znajduj cym si po lewej stronie
ekranu g ównego, ukazane s rekomendacje powsta e przy u yciu wspólnej filtracji. Po
klikni ciu na przycisk „o” panelu z rekomendacj uka e si podobne, jak wy ej, okno
modalne z podanymi szczegó ami danej rekomendacji. W panelu u ytkownika
stanowi cym g ówn , centraln cz
ekranu, zebrane s panele, które odpowiadaj
wydarzeniom danego u ytkownika. Mog
czerwonym – je li wydarzenie si odby o,
by
one oznaczone trzema kolorami:
tym – je li do wydarzenia zosta o mniej ni
1 dzie , oraz zielonym – je li wydarzenie odb dzie si , za co najmniej 1 dzie . Na
panelach mamy tak e przyciski „-” s
ce do usuwania danego wydarzenia z profilu
ytkownika, oraz „o”, które ukazuje szczegó y danego wydarzenia oraz oferuje
mo liwo
oceny danego miejsca.
Rys. 7. Ekran g ówny aplikacji Findy
Tworzenie nowego wydarzenia polega na przej ciu dwóch kroków, które ukazuj si
kolejno na oknie modalnym typu „wizard”. W pierwszym oknie, które przedstawiono na
rys. 8., u ytkownik ma mo liwo
podania nazwy tworzonego wydarzenia oraz wyboru
44
miejsca na mapie, którego wydarzenie b dzie dotyczy . Wybranie miejsca na mapie
mo liwe jest albo poprzez wybór jednego z zarekomendowanych znaczników na mapie
przez mechanizm filtrowania z analiz zawarto ci, albo poprzez samodzielne stworzenie
asnego znacznika. Wybór znacznika w pierwszym sposobie jest nieintuicyjny, gdy
samo klikni cie na niego nie powoduje automatycznie jego wybrania. Nale y lekko
znacznik przesun
na mapie, by uznany by za wybrany przez u ytkownika. Przyczyn
takiego zachowania jest niekompatybilno
GoogleMapWidget ze stabiln
wersj
najnowszej wersji 0.9.13 dodatku
6.7.8 Vaadina. W tej wersji Vaadina
nieobs ugiwany jest s uchacz MarkerClickListener, a jedynie MarkerMovedListener, st d
zdecydowano si na u ycie opcji z przeci gni ciem znacznika.
Rys. 8. Krok 1 tworzenia wydarzenia
Po przej ciu do nast pnego kroku przy u yciu przycisku „Dalej” pojawi si mo liwo
wyboru daty wydarzenia, co pokazano na rys. 9. Domy lnie wybrana jest data aktualna.
Zako czenie operacji dodawania wydarzenia po wci ni ciu przycisku „Utwórz” sprawi,
45
e na panelu u ytkownika zostanie dodany nowy panel, reprezentuj cy nowo dodane
wydarzenie.
Rys. 9. Krok 2 tworzenia wydarzenia
4.5.
Sposób implementacji algorytmów rekomendacji
W aplikacji Findy zaimplementowano dwa mechanizmy rekomendacji. Pierwszym
jest filtracja z analiz zawarto ci korzystaj ca z obliczania miary kosinusowej, a drugim
jest wspólna filtracja wykorzystuj ca pami
wspomagana dodatkowo danymi
demograficznymi. Podczas implementacji u yto g ównie wzorców „Najpierw najlepszy”
oraz „Personalizacja”, które zosta y omówione w pierwszym rozdziale.
Mechanizmy rekomendacyjne obliczaj potrzebne prognozy i sugestie na podstawie
profili u ytkowników i przedmiotów. Profile te tworzone s za pomoc obu podej
okre lonych w rozdziale drugim. Podej cie aktywne objawia si
obowi zkowym
wyborem miejsca zamieszkania przy pierwszym zalogowaniu, co jest wykorzystywane
przy filtrowaniu z analiz zawarto ci, oraz udost pnieniem mo liwo ci ocenienia miejsca
wydarzenia, które stanowi podstaw dzia ania mechanizmu wspólnej filtracji. Oprócz
podej cia aktywnego wykorzystywane jest tak e podej cie pasywne. System przechowuje
wydarzenia u ytkownika oraz analizuje, jaka dyscyplina sportu jest aktualnie wybierana.
Na podstawie takich danych mo liwe jest dope nienie profili u ytkowników tak, aby
rekomendacje by y relatywnie najlepsze.
4.5.1. Implementacja filtracji z analiz zawarto ci
Gdy u ytkownik zdecyduje si na wybór dyscypliny sportu, to kluczowym elementem
aplikacji Findy jest rekomendacja najbli szych miejsc, gdzie mo e t
aktywno
46
uprawia . Zosta do tego wybrany mechanizm filtrowania z analiz zawarto ci, czyli
oparty tylko na cechach przedmiotów, bez uwzgl dniania preferencji innych
ytkowników. Prognoza trafno ci danej rekomendacji opiera si na obliczeniu korelacji
pomi dzy profilem u ytkownika, a profilem danego wydarzenia, których zawarto
przedstawiono w Tabeli 2, wraz z przyk adowym wywo aniem metod pobieraj cych
dane.
Tabela 2 Struktura profili u ytkownika i wydarze u ywanych przy rekomendacji „Content-based Filtering”
Nazwa
ytkownika
user.
getName()
Nazwa
wydarzenia
place.
getName()
Wspó rz dna X u ytkownika
Wspó rz dna Y u ytkownika
user.getLocalizationX()
user.getLocalizationY()
Wspó rz dna X miejsca
wydarzenia
place.getLocalizationX()
Wspó rz dna Y miejsca
wydarzenia
place.getLocalizationY()
Serwis, który odpowiada za stosowanie i obliczanie algorytmów niezb dnych do
filtrowania
z
analiz
zawarto ci
ContentBasedFilteringService.
Znajduj
znajduje
si
si
w
tam
dwie
klasie
metody:
makePlaceOfEventVector(PlaceOfEvent placeOfEvent) i makeUserVector
(FindyUser findyUser), które odpowiednio tworz wektor miejsca wydarzenia oraz
wektor u ytkownika. Na potrzeby aplikacji wektory te sk adaj
si tylko z dwóch
atrybutów przedstawionych w Tabeli 2. Nast pnie obliczany jest wspó czynnik
podobie stwa, czyli korelacja pomi dzy tymi wektorami. Zgodnie z tym, co opisano w
rozdziale 3.2, u yto sposobu wykorzystywanego m.in. w serwisie Amazon, czyli miary
odleg
ci
kosinusowej,
a
wykonuje
j
metoda
countCosineSimilarity(vectorFindyUser,vectorPlaceOfEvent),
znajduj ca si
w serwisie CosineSimilarityService,
która przyjmuje w
parametrze dwa wektory o dowolnej równej d ugo ci, a nast pnie za pomoc wzoru (4)
wylicza korelacj . Ka da wyliczana korelacja jest normalizowana z wykorzystaniem
wzoru (2), po czym przy pomocy odpowiedniej struktury danych mapy,
czona z
obiektem reprezentuj cym miejsce wydarzenia jako klucz danego obiektu. Stworzone
pary klucz-warto
s w ko cowym etapie sortowana malej co po warto ciach obliczonej
korelacji za pomoc biblioteki Google Guava.
Na potrzeby testu przygotowano zbiór 18 danych testowych b
cymi p ywalniami w
ró nych cz ciach Warszawy. Dla przyk adowego u ytkownika, którego profil sk ada si
47
ze wspó rz dnych (21.014528; 52.230464) obliczono rekomendacj opart
na
filtrowaniu z analiz zawarto ci, któr przedstawiono w Tabeli 3.
Tabela 3 Przyk adowe rekomendacje dla danych testowych przy u yciu „Content-based Filtering”
Id.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Wspó rz dne miejsca wydarzenia
(20.942814 ; 52.221913)
(20.991176 ; 52.208914)
(20.984428 ; 52.216551)
(20.977472 ; 52.230592)
(20.994464 ; 52.236352)
(20.928896 ; 52.274624)
(20.988848 ; 52.255584)
(21.013188 ; 52.246384)
(20.997452 ; 52.260512)
(20.978141 ; 52.275584)
(20.984624 ; 52.276832)
(20.968296 ; 52.284624)
(20.954421 ; 52.296832)
(21.12005 ; 52.231398)
(21.114176 ; 52.24672)
(21.11748 ; 52.253918)
(21.032864 ; 52.298944)
(21.213096 ; 52.228101)
W ko cowym kroku zwracane s
Korelacja z u ytkownikiem
0.0343158481256633
0.03431407312753843
0.034312729273387556
0.03430966035440842
0.034306219145497883
0.034302996686063264
0.034301589134495054
0.03430142460409226
0.0342992995546276
0.03429731284429493
0.03429625994502311
0.03429593171783209
0.03429413206403262
0.034293811360119296
0.03429027458076378
0.03428795173468065
0.03428494169857731
0.03428457556869002
klucze ze wspomnianej mapy, czyli miejsca
wydarzenia, posortowane od najbardziej pasuj cych do u ytkownika. Nast pnie na mapie
umieszczanych jest 5 pierwszych pozycji, czyli zgodnie ze wzorcem Top-5
recommendation. Zastosowana rekomendacja przedstawiona jest na rys. 10.
48
Rys. 10. Przyk adowa rekomendacja bazuj ca na danych testowych
4.5.2. Implementacja wspólnej filtracji
Za
eniem aplikacji Findy by a mo liwo
proponowania u ytkownikowi obiektów,
których jeszcze nie zna, a mog yby by uznane przez niego za interesuj ce. Aby taka
funkcjonalno
by a mo liwa, niezb dne jest wykorzystanie algorytmów obliczaj cych
miar podobie stwa u ytkowników. Na podstawie tej miary istnieje mo liwo
wybrania
takich obiektów, które zosta y docenione przez najbli szych s siadów, dlatego mog by
tak e docenione przez aktywnego u ytkownika. W tym celu wybrano mechanizm wspólnej
filtracji oparty na pami ci, który zosta opisany w rozdziale 3.3.1., gdy jest najbardziej
elastyczny i za jego pomoc atwo mo na ukaza rekomendacj w praktyce.
Pierwszym
krokiem
jest
obliczenie
najbli szego
s siedztwa
u ytkownika.
Wykonywane jest to przez metod countPearsonCorrelation(List<FindyUser>
findyUsers, FindyUser findyUser) w serwisie PearsonCorrelationService.
Przyjmuje ona dwa parametry: list
wszystkich u ytkowników bez aktualnego
ytkownika oraz aktualnego u ytkownika, a zwraca map Map<FindyUser, Double>.
Mapa ta zawiera powi zanie ka dego u ytkownika i miary korelacji Pearsona z aktualnym
ytkownikiem, która liczona jest zgodnie ze wzorem (5). W ko cowym etapie, korelacja
Pearsona jest jeszcze poddawana normalizacji (6).
Nast pnym krokiem jest wyliczenie prognozy rekomendacji na podstawie obiektów,
których nie oceni , ani nie analizowa dany u ytkownik, a robili to pozostali z najbli szego
siedztwa. W tym celu u yte zosta o równanie (7). Spo ród wszystkich wydarze
49
mechanizm wybiera tylko te, które zosta y ocenione przez u ytkowników oraz te, których
aktywny u ytkownik jeszcze
nie oceni .
Wykonywane jest to
makeMapOFEventsToRecommendation
mapOfNeighbourhood,
przez metod
(Map<FindyUser,
List<UserEvent>
Double>
userEventsForRecommendation,
FindyUser findyUser) w serwisie CollaborativeFilteringService. Metoda ta
przyjmuje kolejno map
zawieraj
powi zanie u ytkownika i wyliczonej korelacji
Pearsona z aktywnym u ytkownikiem obliczonej w poprzednim kroku, list wszystkich
wydarze w serwisie oraz profil danego u ytkownika. Zwraca ona posortowan map
cz
miejsce wydarzenia z jako ci
rekomendacji, od najbardziej trafnych, do
najbardziej nieznacz cych.
Po stworzeniu powy szej mapy, mechanizm jest w stanie wytworzy
list
rekomendacyjn . Miejsca wydarze , które maj by zarekomendowane, ukazywane s
ytkownikowi w panelu nawigacyjnym w formie paneli, zgodnie ze wzorcem Top-4
recommendation.
Powy sze dzia anie jest jednak niewystarczaj ce, gdy nie jest odporne na problem
nowego u ytkownika i inne, które zosta y opisane w rozdziale 3.4.. W sytuacji, gdy do
systemu loguje si u ytkownik, który nie postawi jeszcze adnej oceny, to system nie jest
w stanie porówna
go z
adnym innym u ytkuj cym serwis. Aby zapobiec temu
problemowi, wzbogacono mechanizm rekomendacji o analiz danych demograficznych.
Ka demu u ytkownikowi przypisywany
jest
wektor reprezentuj cy jego
profil
demograficzny. Sk ada si on z atrybutów zawartych w Tabeli 1. oraz dodatkowych trzech,
okre laj cych miejsce zamieszkania u ytkownika: pó nocna Warszawa,
rodkowa
Warszawa, oraz po udniowa Warszawa. Dzi ki utworzeniu takich profili przy u yciu
metody makeDemographicVectorOfUser (FindyUser findyUser), mo liwe jest
wyliczenie na ich podstawie miary podobie stwa u ytkowników. Do tego celu u yto
ponownie miary kosinusowej opisanej w poprzednim rozdziale. Nast pnie tworzona jest
mapa
cz ca u ytkownika i jego miar podobie stwa z aktywnym u ytkownikiem. W
dalszym
kroku
u ywana
jest
ponownie
metoda
makeMapOFEventsToRecommendation(), lecz teraz z u yciem mapy opartej na danych
demograficznych.
Dzi ki zastosowanemu sposobowi, system jest odporny na problemy zimnego startu,
rzadko ci danych i nowego u ytkownika. W sytuacji, gdy aktywny u ytkownik nie ma
ocenionych przedmiotów lub takich ocen jest ogólnie ma o w systemie, typowy
50
mechanizm wspólnej filtracji zast powany jest wspomaganym przez dane demograficzne,
który jest w stanie zarekomendowa produkty bazuj c na podobie stwie demograficznym.
Dla przyk adowych danych treningowych mechanizm rekomendacji danych wylicza
prognozy rekomendacji zawarte w Tabeli 4., gdzie „Id. M” oznacza identyfikator miejsca
wydarzenia, a „Id. D.” oznacza identyfikator dyscypliny, której dotyczy.
Tabela 4 Przyk adowe rekomendacje dla danych testowych przy u yciu „Collaborative-based Filtering”
Id. M.
Id. D.
Rekomendacja oparta na
„Collaborative-based Filtering”
Rekomendacja oparta na
„Collaborative-based Filtering”
i dane demograficzne
1
1
6
7
8
9
2
3
7
7
7
7
3.6726244272871664
2.6726861880795467
1.9651811280232696
1.9643966019741497
0.4652751831359738
1.9643966019741497
-0.4304816216540128
-0.8536107249209965
-0.4774959664614553
-1.1533271730684431
0.7564044705769841
-1.1533271730684431
Na powy szym przyk adzie wida , e oba podej cia rekomendacji mog da ró ne
rezultaty. Przy u yciu samego mechanizmu wspólnej filtracji wykorzystuj cego pami
wida ,
e najbardziej trafna b dzie rekomendacja miejsca wydarzenia o id = 1
i dyscyplinie o id = 2. W sytuacji, gdy mechanizm skorzysta dodatkowo z danych
demograficznych, to najlepiej pasuj cym oka e si
miejsce wydarzenia o id = 8 i
dyscyplinie = 7. Chc c oferowa wydarzenia najlepiej trafiaj ce w gusta u ytkowników,
wi kszy priorytet ma rekomendacja wykonana tylko na podstawie filtrowania z analiz
zawarto ci. W sytuacji, gdy taka rekomendacja nie zwróci wystarczaj cej liczby
rezultatów, b
nawet
adnego, wówczas u ywany jest mechanizm dodatkowo
wykorzystuj cy dane demograficzne. Dzi ki temu ka da graniczna sytuacja w systemie
dostarczy odpowiednich rekomendacji.
4.6.
Mo liwo ci rozwoju
Aplikacja Findy, cho jest tylko prototypem implementuj cym wybrane mechanizmy
rekomendacji danych, mo e by rozwijana w bardzo wielu kierunkach. Jednym z nich
mo e by interakcja z serwisem spo eczno ciowym Facebook. Wówczas rejestracja nie
by aby niezb dna, a proces logowania by by zintegrowany z tym serwisem. Taki wybór
umo liwia by tak e tworzenie wydarze o zasi gu spo eczno ciowym oraz poznawanie
ytkowników o podobnych upodobaniach sportowych. Okno tworzenia wydarzenia
zosta oby poszerzone o krok 3, polegaj cy na dodaniu znajomych do danego nowo
51
tworzonego wydarzenia, a panel u ytkownika o propozycje uczestnictwa w grupowych
wydarzeniach utworzonych przez najbli szych znajomych.
Inn
mo liwo ci
rozwoju jest umo liwienie reklamowania miejsc. W takim
przypadku nie by oby mo liwe wybranie w asnego miejsca wydarzenia, a jedynie tych
reklamowanych przez serwis. Baza miejsc wydarze by aby typowo skomercjalizowana,
czyli zawiera aby tylko takie miejsca, które zgodzi yby si na reklamowanie w serwisie. W
takim przypadku przestrze obiektów by aby relatywnie wi ksza, co poci gn oby za sob
konieczno
jeszcze wi kszej optymalizacji systemu oraz konieczno
kontroli
efektywno ci i trafno ci u ytych mechanizmów rekomendacyjnych w trakcie dzia ania
aplikacji.
Zaimplementowane mechanizmy rekomendacyjne s w pe ni funkcjonalne i spe niaj
swoj rol , lecz mo liwo ci rozwoju jest zmiana wykonywania obliczania rekomendacji
dla u ytkowników. W obecnym prototypie rekomendacje obliczane s
przy ka dym
za adowaniu okna g ównego aplikacji. Operacja ta mog aby zosta sparametryzowana i
okre la
moment ponownego obliczenia rekomendacji, np. raz dziennie w godzinach
wieczornych, gdy ruch u ytkowników po aplikacji by by ni szy. Spowodowa oby to
mniejsze obci enie serwera w godzinach szczytu.
52
Rozdzia 5
Podsumowanie
Zastosowanie mechanizmu filtrowania z analiz zawarto ci, omówionego w rozdziale
4.5.1., spe ni o swoj
rol . W krótkim czasie pozwoli o na efektywne i trafne
rekomendacje miejsc wydarze . Rozwi zanie to jest wolne od problemu, jakim jest nowy
ytkownik, gdy do obliczenia korelacji z przedmiotami wystarcza informacja o jego
miejscu zamieszkania podawana po pierwszym zalogowaniu. Problemem mo e jednak
okaza si rozrost bazy danych. W prototypie aplikacji Findy skupiono si jedynie na
miejscach na terenie Warszawy, gdzie liczba miejsc jednego typu, np. p ywalni, b dzie
liczona w dziesi tkach lub setkach. W sytuacji gdyby przestrze informacji o miejscach
zosta a poszerzona np. o dane z ca ej Polski, problemem by by wyd
odpowiedzi systemu rekomendacyjnego, a jednym z jego za
ony czas
jest zwrócenie
odpowiedzi w czasie jak najkrótszym. Rozwi zaniem mog oby by omówione wcze niej
grupowanie, które pozwoli oby na podzia przyk adowego kraju na obszary, do których
ogranicza yby si mechanizmy licz ce korelacje. Innym sposobem mo e by obliczanie
rekomendacji off-line w czasie, gdy ruch w aplikacji by by najmniejszy, lecz w takim
przypadku niezb dne by oby przygotowanie bazy danych do przechowywania ko cowych
wyników oblicze . Inna zauwa alna wada tego rozwi zania polega na tym, e cz sto
pokazywane s miejsca wydarze , które u ytkownik ju zna, powoduj c, e ogl da tylko
cz
zgromadzonych obiektów w bazie. Jednak z drugiej strony, sposób u ycia
filtrowania z analiz
zawarto ci w aplikacji wolny jest od problemu, jakim jest
rekomendacja u ytkownikowi obiektów wyszukiwanych na podstawie wielu atrybutów.
Przyk adem takiej sytuacji jest ksi garnia internetowa, która na podstawie analizy
preferencji u ytkownika tworzy aby profile sk adaj ce si z wielu ulubionych autorów,
gatunków, czy daty wydania. Taki przypadek wymaga by utworzenia skomplikowanego
zapytania, które musia oby by
specjalnie optymalizowane, by zwróci o wyniki w
rozs dnym czasie. W zastosowanym rozwi zaniu wyszukujemy zawsze jeden rodzaj
obiektów. Ten, który jest powi zany z dyscyplin wybran przez u ytkownika.
Podobnie zastosowanie mechanizmów omówionych w rozdziale 4.5.2. pozwoli o na
spe nienie za
zaawansowanego systemu rekomendacyjnego. W efektywny sposób
wyszukiwane s obiekty uznane za najbardziej pasuj ce do aktywnego u ytkownika na
podstawie jego podobie stwa z innymi u ytkownikami. W tym celu u ywana jest historia
53
wydarze
zawieraj ca oceny nadane miejscu, gdzie odby o si
dane wydarzenie.
Problemem mo e by du y rozrost tej historii. W sytuacji gdy u ytkownik b dzie mia
ug list wydarze , które ju si zako czy y, niezb dne b dzie wybranie tylko cz ci z
nich, gdy skorzystanie ze wszystkich w algorytmach rekomendacji spowoduje, e czas
reakcji systemu b dzie wyd
ony. W takiej sytuacji nale y zoptymalizowa algorytmy
tak, aby wybiera y tylko np. najnowsze wydarzenia albo tylko te zawieraj ce miejsca
najcz ciej wybierane. Im wi kszy by by rozrost serwisu, tym wi ksza by aby przestrze ,
w której nale
oby wykonywa obliczenia niezb dne w rekomendacjach. Wówczas koszt
takich oblicze móg by by za du y i korzystanie z aplikacji sta oby si niepraktyczne.
Rozwi zaniem w takim przypadku mog oby by wykorzystanie podej cia hybrydowego,
omówionego wcze niej, b
zastosowania grupowania lub wyboru tylko cz ci
przestrzeni obiektów, lecz w takich przypadkach jako
i trafno
rekomendacji mog aby
by niska, gdy algorytmy rekomendacji bazowa yby na uogólnionych zbiorach.
W niniejszej pracy zosta y przedstawione ró ne podej cia w zastosowaniu
mechanizmów rekomendacji danych oraz ukazane przyk adowe ich zastosowanie. Wyniki
pracy wskazuj , e zaimplementowane algorytmy maj zdolno
trafnego sugerowania
ytkownikowi obiektów dla niego interesuj cych. Prototyp systemu jest w stanie
przewidzie
ocen
u ytkownika na temat innych miejsc na podstawie ocen innych
ytkowników i ich korelacji. Zastosowane techniki bardzo dobrze sprawdzi y si na
zbiorze danych w aplikacji Findy. Ich dzia anie mo e by jednak dalej rozwijane w
kierunku wi kszej optymalizacji dla innych, specyficznych zbiorów danych.
Idealny system rekomendacji powinien by dynamiczny, co oznacza, e aktualizacja
profili i obliczanie rekomendacji powinno by wykonywane w jak najkrótszym czasie,
dlatego rozwój tego typu mechanizmów kierowany jest w stron coraz skuteczniejszej
optymalizacji czasu wykonania. Widoczne jest to g ównie w sytuacji, gdy mechanizmy
musz
bazowa
na rozleg ym zbiorze danych, dlatego wzrost mocy obliczeniowej
serwerów oraz opracowywanie algorytmów o jak najmniejszej z
ono ci obliczeniowej s
bardzo pomocne w dziedzinie systemów rekomendacyjnych.
Problemem, z jakim musz
mierzy
si
projektanci, jest wybór cz stotliwo ci
aktualizacji profili u ytkownika oraz ich rekomendacji. Do dzi trwaj dyskusje na ten
54
temat, lecz bez w tpienia d y si do tego, aby wszelkie obliczenia by y wykonywane w
jak najkrótszym czasie, algorytmy oferowa y jak najni sz z
ono
obliczeniow , co
zmniejszy obci enie systemu i pozwoli na wyeliminowanie omawianych wcze niej
potencjalnych problemów przy stosowaniu mechanizmów rekomendacyjnych.
55
Rozdzia 6
Literatura
[1] Bergmark D., Lagoze C., Sbityakov A., „Focused Crawls, Tunneling, and Digital
Libraries”, VI Europejska Konferencja Bibliotek Cyfrowych, Rzym, W ochy 2002,
str 3-5
[2] Bailyn E., Bailyn B., „Przechytrzy Google. Odkryj skuteczn strategi SEO i
zdob
szczyty wyszukiwarek”, Helion, 2012
[3] Morville P., Callender J., „Wzorce wyszukiwania. Projektowanie nowoczesnych
wyszukiwarek”, Helion, 2011
[4] Hearst M., „UIs for Faceted Navigation Recent Advances and Remaining Open
Problems”, II Warsztaty na temat interakcji cz owiek-komputer – HCIR 2008, Redmond
2008, str 1-4
[5] Nudelman G., „Design Patterns for Mobile Faceted Search: Part I”,
http://www.uxmatters.com/mt/archives/2010/04/design-patterns-for-mobile-facetedsearch-part-i.php
[6] Marshall M., „ Aggregate Knowledge raises $5M from Kleiner, on a roll”,
http://venturebeat.com/2006/12/10/aggregate-knowledge-raises-5m-from-kleiner-on-aroll/
[7] Meteren R., Someren M., „Using Content-Based Filtering for Recommendation”,
str 1-3
[8] Tsissput, „Systemy rekomendacyjne od kuchni”,
http://tsiss.wordpress.com/2012/01/12/systemy-rekomendacyjne-od-kuchni/
[9] Chen A., McLeod D., „Collaborative Filtering for Information Recommendation
Systems”, str 1-4
[10] Su X., Khoshgoftaar T., „A Survey of Collaborative Filtering Techniques”, 2009,
str 5-11
56
[11] Miyahara K., Pazzani M., „Improvement of Collaborative Filtering with the Simple
Bayesian Classifier”, str 4-10
[12] Vozalis M., Margaritis K., „Collaborative Filtering Enhanced By Demographic
Correlation”, str 3-6
[13] Vozalis M., Margaritis K., „ Enhancing Collaborative Filtering with Demographic
Data: The case of Item-based Filtering”, str 1-5
[14] Paterek A., „ Improving regularized singular value decomposition for collaborative
filtering”, str 2-3
[15] Lohr S., „ Netflix Awards $1 Million Prize and Starts a New Contest”,
http://bits.blogs.nytimes.com/2009/09/21/netflix-awards-1-million-prize-and-starts-anew-contest/
[16] Melville P., Mooney R., Nagarajan R., „Content-Boosted Collaborative Filtering for
Improved Recommendations”, str 1-4
[17] Herlocker, J., Konstan, J., Borchers, A., Riedl, J., „An algorithmic framework for
performing collaborative filtering”, 22 Konferencja Specjalnej Grupy do Wyszukiwania
Informacji - SIGIR ’99, Berkeley 1999, str 2-6
57
Dodatek A
Diagram klas modelu MVP w aplikacji Findy
58
Dodatek B
Zawarto
p yty CD
Aplikacja Findy
Znajduj si tu wszystkie pliki niezb dne do uruchomienia aplikacji w rodowisku Eclipse oraz
skompilowana aplikacja w formacie .war, któr mo na uruchomi na serwerze aplikacyjnym.
Konfiguracja serwera aplikacyjnego
Znajduje si tu konfiguracja do serwera aplikacyjnego Apache Tomcat w wersji 6.0.35, któr
mo na uruchomi w rodowisku Eclipse.
Skrypty do bazy danych
W katalogu znajduj si skrypty do utworzenia bazy danych, tabel oraz dodaj ce dane
inicjalne, na których testowana by a aplikacja.
Praca in ynierska - Daniel Bie kowski.pdf
Praca in ynierska w formacie .pdf.
59

Podobne dokumenty