SLIDE 1 Collabora've ¡Filtering ¡
Jay ¡Urbain, ¡Ph.D. ¡ Electrical ¡Engineering ¡and ¡Computer ¡Science ¡Department ¡ Milwaukee ¡School ¡of ¡Engineering ¡ ¡ Credits: ¡See ¡last ¡page ¡with ¡references ¡
SLIDE 2 What ¡does ¡it ¡mean ¡to ¡learn? ¡
- Improve ¡our ¡performance ¡by ¡interac'ng ¡with ¡our ¡environment. ¡
– Build ¡model ¡of ¡the ¡world ¡we ¡interact ¡with ¡to ¡improve ¡future ¡ performance ¡– ¡predic'on. ¡
- Confabula'on ¡-‑ ¡human ¡brain ¡is ¡constantly ¡deciding ¡among ¡mul'ple ¡
compe'ng ¡predica'ons ¡
- In ¡what ¡ways ¡do ¡we ¡interact ¡with ¡our ¡environment ¡to ¡learn? ¡
– Read ¡ – Watch ¡ – Hear ¡ – ??? ¡
SLIDE 3 Learning ¡
- We ¡oLen ¡learn ¡by ¡interac'ng ¡with ¡each ¡other. ¡
- Common ¡insight: ¡personal ¡tastes ¡are ¡correlated. ¡
– If ¡Alice ¡and ¡Bob ¡both ¡like ¡X ¡and ¡Alice ¡likes ¡Y ¡then ¡Bob ¡is ¡ more ¡likely ¡to ¡like ¡Y. ¡ – Especially ¡(perhaps) ¡if ¡Bob ¡knows ¡Alice. ¡Or ¡Bob ¡and ¡Alice ¡ like ¡other ¡similar ¡things. ¡
SLIDE 4 Collec've ¡Intelligence ¡
- Can ¡we ¡model ¡these ¡interac'ons? ¡Sure. ¡
– Google ¡ – Amazon ¡ – NeVlix ¡ – Pandora ¡ – Futures ¡markets ¡
- All ¡of ¡these ¡companies ¡combine ¡the ¡behavior, ¡preferences, ¡or ¡
ideas ¡of ¡a ¡group ¡of ¡people ¡to ¡create ¡novel ¡insights. ¡
SLIDE 5 Collec've ¡Intelligence ¡
- Collec'ng ¡answers ¡from ¡a ¡large ¡group ¡of ¡people ¡lets ¡you ¡draw ¡
sta's'cal ¡conclusions ¡about ¡the ¡group ¡that ¡no ¡individual ¡ member ¡would ¡have ¡known ¡by ¡themselves. ¡ ¡
- Building ¡new ¡conclusions ¡from ¡independent ¡contributors ¡is ¡
what ¡collec've ¡intelligence ¡is ¡all ¡about. ¡
- So ¡how ¡do ¡we ¡go ¡about ¡doing ¡that? ¡
– Collabora've ¡Filtering, ¡Content ¡Filtering, ¡Collabora've ¡+ ¡ Content ¡Filtering ¡
SLIDE 6 Collabora've ¡Filtering ¡
- What ¡is ¡the ¡low-‑tech ¡way ¡to ¡get ¡recommends ¡for ¡products, ¡
movies ¡, ¡interes'ng ¡web ¡sites, ¡or ¡entertaining ¡things ¡to ¡do? ¡
SLIDE 7 Collabora've ¡Filtering ¡
- What ¡is ¡the ¡low-‑tech ¡way ¡to ¡get ¡recommends ¡for ¡products, ¡
movies ¡, ¡interes'ng ¡web ¡sites, ¡or ¡entertaining ¡things ¡to ¡do? ¡
- Collec've ¡Intelligence ¡-‑ ¡ask ¡your ¡friends! ¡
- Do ¡some ¡of ¡your ¡friends ¡have ¡beXer ¡taste ¡than ¡others? ¡ ¡
– These ¡friends ¡are ¡more ¡likely ¡to ¡influence ¡our ¡decisions. ¡
SLIDE 8 Collabora've ¡Filtering ¡
Lets ¡say ¡we ¡want ¡to ¡use ¡the ¡ combined ¡“wisdom” ¡of ¡an ¡ extended ¡group ¡of ¡friends ¡to ¡ pick ¡movies. ¡ ¡ 1) Collect ¡preferences ¡ ¡
– Use ¡the ¡Web ¡ ¡ – Build ¡a ¡database ¡of ¡individual ¡ ra'ngs ¡on ¡movies ¡
SLIDE 9 Collabora've ¡Filtering ¡
2) Finding ¡similar ¡users ¡ Need ¡method ¡for ¡ correla'ng ¡choices: ¡
- Euclidian ¡Distance ¡
- Pearson ¡Correla'on ¡
- Singular ¡Value ¡
Decomposi'on ¡
- Clustering ¡
- Classifica'on ¡
SLIDE 10 Finding ¡similar ¡users ¡– ¡ ¡ Euclidian ¡
Serenity ¡ V ¡for ¡VendeXa ¡ Die ¡Hard ¡with ¡a ¡ Vengence ¡ ¡ The ¡Dark ¡Knight ¡ ¡ Monty ¡Python ¡ Die ¡Harder ¡ 0 ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ 6 ¡ 0 ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ 6 ¡
bellmangreent ¡ edmissionj ¡
SLIDE 11 Collabora've ¡Filtering ¡
2) Finding ¡similar ¡users ¡– ¡Euclidian ¡Distance ¡ 1) Take ¡the ¡differences ¡in ¡each ¡axis ¡ 2) Square ¡them ¡& ¡add ¡them ¡together ¡ 3) Then ¡take ¡the ¡square ¡root ¡of ¡the ¡sum ¡ ¡ ¡ ¡ select ¡1/(1+sqrt(sum( ¡pow(r1.ra'ng_norm-‑r2.ra'ng_norm,2)))) ¡as ¡sc ¡ Bellmangreent ¡edmissonj ¡ ¡ ¡0.535898384862245 ¡ bellmangreent ¡ ¡bellmangreent ¡ ¡1.00 ¡ ¡
Problems ¡with ¡Euclidean ¡distance? ¡
SLIDE 12 Collabora've ¡Filtering ¡
2) Finding ¡similar ¡users ¡– ¡ ¡
- Euclidian ¡is ¡just ¡an ¡absolute ¡distance ¡measure ¡
- Correla'on ¡is ¡a ¡measure ¡of ¡how ¡well ¡two ¡sets ¡of ¡data ¡fit ¡on ¡a ¡
straight ¡line. ¡ – Corrects ¡for ¡“grade ¡infla'on” ¡ – Remove ¡consistent ¡differences ¡
SLIDE 13 Collabora've ¡Filtering ¡
2) Finding ¡similar ¡users ¡– ¡ ¡ Pearson ¡(product-‑moment) ¡correla:on ¡coefficient ¡ ¡
- Measure ¡of ¡the ¡correla:on ¡(linear ¡dependence) ¡between ¡two ¡
variables ¡X ¡and ¡Y, ¡given ¡a ¡value ¡between ¡+1 ¡and ¡−1 ¡inclusive. ¡
- Defined ¡by ¡the ¡covariance ¡of ¡the ¡two ¡variables ¡divided ¡by ¡the ¡
product ¡of ¡their ¡standard ¡devia'ons. ¡
- Corresponds ¡to ¡the ¡cosine ¡of ¡the ¡angle ¡ ¡ ¡ ¡ ¡between ¡two ¡
regression ¡lines. ¡ ¡
SLIDE 14 Collabora've ¡Filtering ¡
Pearson ¡correla:on ¡coefficient ¡ ¡
the ¡correla'on ¡reflects ¡the ¡non-‑ linearity ¡and ¡direc'on ¡of ¡a ¡linear ¡ rela'onship ¡(top ¡row), ¡but ¡not ¡ the ¡slope ¡ different ¡values ¡of ¡correla'on ¡ coefficient ¡(ρ) ¡
SLIDE 15 Collabora've ¡Filtering ¡ 2) Finding ¡similar ¡users ¡– ¡Pearson ¡Correla'on ¡Coefficient ¡ ¡ ¡ ¡ ¡
¡ ¡ ( ¡sum(r1.ra'ng_norm*r2.ra'ng_norm) ¡-‑ ¡ (sum(r1.ra'ng_norm)*sum(r2.ra'ng_norm))/count(*) ¡) ¡/ ¡ sqrt( ¡( ¡sum(pow(r1.ra'ng_norm,2))-‑(pow(sum(r1.ra'ng_norm),2)/ count(*)) ¡) ¡* ¡( ¡sum(pow(r2.ra'ng_norm,2))-‑ (pow(sum(r2.ra'ng_norm),2)/count(*)) ¡) ¡) ¡as ¡sc ¡
Mean ¡of ¡products ¡formula'on ¡ STDEV ¡r1 ¡ ¡ STDEV ¡r2 ¡ ¡
SLIDE 16 Finding ¡similar ¡users ¡– ¡ ¡ Normalized ¡(Pearson ¡Correla'on ¡Coefficient) ¡
Serenity ¡ V ¡for ¡VendeXa ¡ Die ¡Hard ¡with ¡a ¡ Vengence ¡ ¡ The ¡Dark ¡Knight ¡ ¡ Monty ¡Python ¡ Die ¡Harder ¡ 0 ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ 6 ¡ 0 ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ 6 ¡
bellmangreent ¡ edmissionj ¡
SLIDE 17 Collabora've ¡Filtering ¡
- 3. Ranking ¡the ¡reviewers ¡
- Now ¡that ¡we ¡can ¡compare ¡any ¡two ¡people. ¡
- Score ¡everyone ¡against ¡a ¡given ¡person ¡and ¡find ¡the ¡closest ¡
- matches. ¡
- Allows ¡us ¡to ¡find ¡the ¡reviewers ¡whose ¡taste ¡are ¡most ¡similar ¡
to ¡any ¡individual. ¡
SLIDE 18 Collabora've ¡Filtering ¡
3. Ranking ¡the ¡reviewers ¡ # ¡create ¡a ¡Pearson ¡correla'on ¡coefficient ¡similarity ¡table ¡
¡ insert ¡into ¡sim ¡ select ¡u1.userid ¡as ¡userid1, ¡u2.userid ¡as ¡userid2, ¡ ¡ ( ¡sum(r1.ra'ng_norm*r2.ra'ng_norm) ¡-‑ ¡(sum(r1.ra'ng_norm)*sum(r2.ra'ng_norm))/ count(*) ¡) ¡/ ¡ sqrt( ¡( ¡sum(pow(r1.ra'ng_norm,2))-‑(pow(sum(r1.ra'ng_norm),2)/count(*)) ¡) ¡* ¡ ( ¡sum(pow(r2.ra'ng_norm,2))-‑(pow(sum(r2.ra'ng_norm),2)/count(*)) ¡) ¡) ¡ ¡ as ¡sc ¡ from ¡ra'ngs ¡r1, ¡ra'ngs ¡r2, ¡users ¡u1, ¡users ¡u2, ¡movies ¡m ¡ ¡ where ¡r1.userid=u1.userid ¡ and ¡r2.userid=u2.userid ¡ and ¡r1.itemid=r2.itemid ¡ and ¡r1.itemid=m.movieid ¡ and ¡u1.username<>u2.username ¡ group ¡by ¡u1.username, ¡u2.username ¡
- rder ¡by ¡u1.username, ¡sc ¡desc; ¡
SLIDE 19 Collabora've ¡Filtering ¡
- 3. Ranking ¡the ¡reviewers ¡
¡ # ¡rank ¡the ¡reviewers ¡ select ¡x.username1, ¡max(x.sc) ¡as ¡maxsc ¡ from ¡( ¡ select ¡u1.username ¡as ¡username1, ¡u2.username ¡as ¡username2, ¡s.sc ¡ from ¡sim ¡s, ¡users ¡u1, ¡users ¡u2 ¡ where ¡s.userid1=u1.userid ¡ and ¡s.userid2=u2.userid) ¡x ¡ group ¡by ¡x.username1 ¡
SLIDE 20 Collabora've ¡Filtering ¡
- 4. ¡Recommending ¡Items ¡
- Using ¡the ¡correla'on ¡coefficient ¡that ¡ranks ¡users ¡with ¡respect ¡to ¡each ¡other. ¡
- Use ¡this ¡score ¡to ¡rank ¡products. ¡
¡ # ¡Finally! ¡Make ¡recommenda'ons ¡for ¡a ¡given ¡user! ¡ select ¡u1.username, ¡m.'tle, ¡sum( ¡r.ra'ng_norm*s.sc ¡) ¡/ ¡sum(s.sc) ¡ra'ng ¡ from ¡ra'ngs ¡r, ¡users ¡u1, ¡users ¡u2, ¡movies ¡m, ¡sim ¡s ¡ ¡ where ¡r.userid=u2.userid ¡ and ¡r.itemid=m.movieid ¡ and ¡s.userid1=u1.userid ¡ and ¡s.userid2=u2.userid ¡ and ¡u1.username='breuerr' ¡ and ¡r.itemid ¡not ¡in ¡( ¡ select ¡r.itemid ¡ from ¡users ¡u, ¡ra'ngs ¡r ¡ where ¡r.userid=u.userid ¡ and ¡u.username='breuerr' ¡ ) ¡ group ¡by ¡m.'tle ¡
SLIDE 21 Algorithms ¡for ¡Collabora've ¡Filtering ¡1: ¡ ¡ Memory-‑Based ¡Algorithms ¡(Breese ¡et ¡al, ¡UAI98) ¡
- K-‑nearest ¡neighbor ¡
- Pearson ¡correla'on ¡coefficient ¡(Resnick ¡’94, ¡
Grouplens): ¡
- Cosine ¡distance ¡(from ¡IR) ¡
⎩ ⎨ ⎧ ∈ = else ) neighbors( if 1 ) , ( a i i a w
SLIDE 22 Algorithms ¡for ¡Collabora've ¡Filtering ¡1: ¡ ¡ Memory-‑Based ¡Algorithms ¡(Breese ¡et ¡al, ¡UAI98) ¡
- Cosine ¡with ¡“inverse ¡user ¡frequency” fi ¡= ¡log(n/nj), ¡where ¡n ¡is ¡
number ¡of ¡users, ¡nj ¡is ¡number ¡of ¡users ¡vo'ng ¡for ¡item ¡j ¡ ¡ ¡
SLIDE 23 LIBRA ¡Book ¡Recommender ¡
Content-‑Based ¡Book ¡Recommending ¡Using ¡Learning ¡ for ¡Text ¡Categoriza'on. ¡Raymond ¡J. ¡Mooney, ¡ Loriene ¡Roy, ¡Univ ¡Texas/Aus'n; ¡DL-‑2000 ¡
[CF] ¡assumes ¡that ¡a ¡given ¡user’s ¡tastes ¡are ¡generally ¡the ¡same ¡as ¡another ¡user ¡... ¡ Items ¡that ¡have ¡not ¡been ¡rated ¡by ¡a ¡sufficient ¡number ¡of ¡users ¡cannot ¡be ¡ effec'vely ¡recommended. ¡Unfortunately, ¡sta's'cs ¡on ¡library ¡use ¡indicate ¡that ¡ most ¡books ¡are ¡u'lized ¡by ¡very ¡few ¡patrons. ¡... ¡[CF] ¡approaches ¡... ¡recommend ¡ popular ¡'tles, ¡perpetua'ng ¡homogeneity.... ¡this ¡approach ¡raises ¡concerns ¡about ¡ privacy ¡and ¡access ¡to ¡ ¡proprietary ¡customer ¡data. ¡ ¡
SLIDE 24 Collabora've ¡+ ¡Content ¡Filtering ¡
(Basu ¡et ¡al, ¡AAAI98; ¡Condliff ¡et ¡al, ¡AI-‑STATS99) ¡
Use ¡your ¡classifica'on ¡algorithm ¡of ¡ choice ¡
SLIDE 25 Content ¡Filtering ¡
(Basu ¡et ¡al, ¡AAAI98; ¡Condliff ¡et ¡al, ¡AI-‑STATS99) ¡
Airplane Matrix Room with a View
...
Hidalgo comedy action romance
...
action
Joe
27,M,70k
9 7 2 7
Carol
53,F,20k
8 9
... Kumar 25,M,22k
9 3 6
Ua
48,M,81k
4 7 ? ? ?
Engineer ¡features ¡for ¡ content ¡filtering, ¡ Integrate ¡within ¡ ensemble ¡method ¡with ¡ Collabora've ¡filtering ¡
SLIDE 26 Collabora've ¡+ ¡Content ¡Filtering ¡ As ¡Classifica'on ¡(Basu ¡et ¡al, ¡AAAI98) ¡
Airplane Matrix Room with a View
...
Hidalgo comedy action romance
...
action
Joe
27,M,70k
1 1 1
Carol
53,F,20k
1 1
... Kumar
25,M,22k
1 1
Ua
48,M,81k
1 1 ? ? ?
genre={romance}, ¡age=48, ¡sex=male, ¡income=81k, ¡ usersWhoLikedMovie={Carol}, ¡moviesLikedByUser={Matrix,Airplane}, ¡... ¡ genre={ac'on}, ¡age=48, ¡sex=male, ¡income=81k, ¡usersWhoLikedMovie ¡= ¡ {Joe,Kumar}, ¡moviesLikedByUser={Matrix,Airplane},... ¡
SLIDE 27 Content ¡+ ¡Collabora've ¡Filtering ¡-‑ ¡ Theory ¡
Op'onal ¡content ¡– ¡content ¡+ ¡collabora've ¡filtering ¡
SLIDE 28 Example: ¡Predic:ng ¡movie ¡ra:ngs ¡ User ¡rates ¡movies ¡using ¡one ¡to ¡five ¡stars ¡
Movie ¡ Alice ¡ (1) ¡ Bob ¡(2) ¡ Carol ¡(3) ¡ Dave ¡(4) ¡ Love ¡at ¡last ¡ Romance ¡ forever ¡ Cute ¡puppies ¡of ¡ love ¡ Nonstop ¡car ¡ chases ¡ Swords ¡vs. ¡ karate ¡
= ¡no. ¡users ¡ = ¡no. ¡movies ¡ = ¡1 ¡if ¡user ¡ ¡ ¡ ¡has ¡ rated ¡movie ¡ ¡ ¡ = ¡ra'ng ¡given ¡by ¡ user ¡ ¡ ¡ ¡to ¡movie ¡ ¡ ¡ ¡ (defined ¡only ¡if ¡ ¡ ¡ ¡ ¡ ¡) ¡
SLIDE 29 Example: ¡Predic:ng ¡movie ¡ra:ngs ¡ User ¡rates ¡movies ¡using ¡one ¡to ¡five ¡stars ¡
Movie ¡ Alice ¡ (1) ¡ Bob ¡(2) ¡ Carol ¡(3) ¡ Dave ¡(4) ¡ Love ¡at ¡last ¡ Romance ¡ forever ¡ Cute ¡puppies ¡of ¡ love ¡ Nonstop ¡car ¡ chases ¡ Swords ¡vs. ¡ karate ¡
= ¡no. ¡users ¡ = ¡no. ¡movies ¡ = ¡1 ¡if ¡user ¡ ¡ ¡ ¡has ¡ rated ¡movie ¡ ¡ ¡ = ¡ra'ng ¡given ¡by ¡ user ¡ ¡ ¡ ¡to ¡movie ¡ ¡ ¡ ¡ (defined ¡only ¡if ¡ ¡ ¡ ¡ ¡ ¡) ¡
SLIDE 30 Content-‑based ¡recommender ¡systems ¡
Movie ¡ Alice ¡(1) ¡ Bob ¡(2) ¡ Carol ¡(3) ¡ Dave ¡(4) ¡ ¡ (romanc e) ¡ ¡ (ac:on) ¡ Love ¡at ¡last ¡ 5 ¡ 5 ¡ 0 ¡ 0 ¡ 0.9 ¡ 0 ¡ Romance ¡ forever ¡ 5 ¡ ? ¡ ? ¡ 0 ¡ 1.0 ¡ 0.01 ¡ Cute ¡puppies ¡
? ¡ 4 ¡ 0 ¡ ? ¡ 0.99 ¡ 0 ¡ Nonstop ¡car ¡ chases ¡ 0 ¡ 0 ¡ 5 ¡ 4 ¡ 0.1 ¡ 1.0 ¡ Swords ¡vs. ¡ karate ¡ 0 ¡ 0 ¡ 5 ¡ ? ¡ 0 ¡ 0.9 ¡
For ¡each ¡user ¡ ¡ ¡, ¡learn ¡a ¡parameter ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡. ¡Predict ¡user ¡ ¡ ¡ ¡as ¡ ra'ng ¡movie ¡ ¡ ¡ ¡ ¡with ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡stars. ¡ ¡
SLIDE 31 Content-‑based ¡recommender ¡systems ¡
Movie ¡ Alice ¡(1) ¡ Bob ¡(2) ¡ Carol ¡(3) ¡ Dave ¡(4) ¡ ¡ (romanc e) ¡ ¡ (ac:on) ¡ Love ¡at ¡last ¡ 5 ¡ 5 ¡ 0 ¡ 0 ¡ 0.9 ¡ 0 ¡ Romance ¡ forever ¡ 5 ¡ ? ¡ ? ¡ 0 ¡ 1.0 ¡ 0.01 ¡ Cute ¡puppies ¡
? ¡ 4 ¡ 0 ¡ ? ¡ 0.99 ¡ 0 ¡ Nonstop ¡car ¡ chases ¡ 0 ¡ 0 ¡ 5 ¡ 4 ¡ 0.1 ¡ 1.0 ¡ Swords ¡vs. ¡ karate ¡ 0 ¡ 0 ¡ 5 ¡ ? ¡ 0 ¡ 0.9 ¡
For ¡each ¡user ¡ ¡ ¡, ¡learn ¡a ¡parameter ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡. ¡Predict ¡user ¡ ¡ ¡ ¡as ¡ ra'ng ¡movie ¡ ¡ ¡ ¡ ¡with ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡stars. ¡ ¡
SLIDE 32
Problem ¡formula:on ¡ ¡ ¡ ¡ ¡ ¡if ¡user ¡ ¡ ¡ ¡has ¡rated ¡movie ¡ ¡ ¡ ¡ ¡(0 ¡otherwise) ¡ ¡ ¡ ¡ ¡ ¡ ¡ra'ng ¡by ¡user ¡ ¡ ¡on ¡movie ¡ ¡ ¡ ¡(if ¡defined) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡= ¡parameter ¡vector ¡for ¡user ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡= ¡feature ¡vector ¡for ¡movie ¡ ¡ ¡ ¡ For ¡user ¡ ¡ ¡ ¡, ¡movie ¡ ¡ ¡ ¡, ¡predicted ¡ra'ng: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡= ¡no. ¡of ¡movies ¡rated ¡by ¡user ¡ To ¡learn ¡ ¡ ¡ ¡ ¡ ¡ ¡: ¡
SLIDE 33
Problem ¡formula:on ¡ ¡ ¡ ¡ ¡ ¡if ¡user ¡ ¡ ¡ ¡has ¡rated ¡movie ¡ ¡ ¡ ¡ ¡(0 ¡otherwise) ¡ ¡ ¡ ¡ ¡ ¡ ¡ra'ng ¡by ¡user ¡ ¡ ¡on ¡movie ¡ ¡ ¡ ¡(if ¡defined) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡= ¡parameter ¡vector ¡for ¡user ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡= ¡feature ¡vector ¡for ¡movie ¡ ¡ ¡ ¡ For ¡user ¡ ¡ ¡ ¡, ¡movie ¡ ¡ ¡ ¡, ¡predicted ¡ra'ng: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡= ¡no. ¡of ¡movies ¡rated ¡by ¡user ¡ To ¡learn ¡ ¡ ¡ ¡ ¡ ¡ ¡: ¡
SLIDE 34
Op:miza:on ¡objec:ve: ¡ To ¡learn ¡ ¡ ¡ ¡ ¡ ¡ ¡(parameter ¡for ¡user ¡ ¡ ¡): ¡ To ¡learn ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡: ¡
SLIDE 35
Op:miza:on ¡algorithm: ¡ Gradient ¡descent ¡update: ¡
SLIDE 36
Op:miza:on ¡algorithm: ¡ Gradient ¡descent ¡update: ¡
SLIDE 37 Problem ¡mo:va:on ¡– ¡back ¡to ¡collabora:ve ¡filtering ¡
Movie ¡ Alice ¡ (1) ¡ Bob ¡(2) ¡ Carol ¡ (3) ¡ Dave ¡ (4) ¡ ¡ (roman ce) ¡ ¡ (ac:on) ¡ Love ¡at ¡last ¡ 5 ¡ 5 ¡ 0 ¡ 0 ¡ 0.9 ¡ 0 ¡ Romance ¡ forever ¡ 5 ¡ ? ¡ ? ¡ 0 ¡ 1.0 ¡ 0.01 ¡ Cute ¡puppies ¡
? ¡ 4 ¡ 0 ¡ ? ¡ 0.99 ¡ 0 ¡ Nonstop ¡car ¡ chases ¡ 0 ¡ 0 ¡ 5 ¡ 4 ¡ 0.1 ¡ 1.0 ¡ Swords ¡vs. ¡ karate ¡ 0 ¡ 0 ¡ 5 ¡ ? ¡ 0 ¡ 0.9 ¡
SLIDE 38 Problem ¡mo:va:on ¡
Movie ¡ Alice ¡ (1) ¡ Bob ¡(2) ¡ Carol ¡ (3) ¡ Dave ¡ (4) ¡ ¡ (romance) ¡ ¡ (ac:on) ¡ Love ¡at ¡last ¡ 5 ¡ 5 ¡ 0 ¡ 0 ¡ ? ¡ ? ¡ Romance ¡ forever ¡ 5 ¡ ? ¡ ? ¡ 0 ¡ ? ¡ ? ¡ Cute ¡puppies ¡
? ¡ 4 ¡ 0 ¡ ? ¡ ? ¡ ? ¡ Nonstop ¡car ¡ chases ¡ 0 ¡ 0 ¡ 5 ¡ 4 ¡ ? ¡ ? ¡ Swords ¡vs. ¡ karate ¡ 0 ¡ 0 ¡ 5 ¡ ? ¡ ? ¡ ? ¡
SLIDE 39 Problem ¡mo:va:on ¡
Movie ¡ Alice ¡ (1) ¡ Bob ¡(2) ¡ Carol ¡ (3) ¡ Dave ¡ (4) ¡ ¡ (roman ce) ¡ ¡ (ac:on) ¡ Love ¡at ¡last ¡ 5 ¡ 5 ¡ 0 ¡ 0 ¡ ? ¡ ? ¡ Romance ¡ forever ¡ 5 ¡ ? ¡ ? ¡ 0 ¡ ? ¡ ? ¡ Cute ¡puppies ¡
? ¡ 4 ¡ 0 ¡ ? ¡ ? ¡ ? ¡ Nonstop ¡car ¡ chases ¡ 0 ¡ 0 ¡ 5 ¡ 4 ¡ ? ¡ ? ¡ Swords ¡vs. ¡ karate ¡ 0 ¡ 0 ¡ 5 ¡ ? ¡ ? ¡ ? ¡
SLIDE 40
Op:miza:on ¡algorithm ¡ Given ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡, ¡to ¡learn ¡ ¡ ¡ ¡ ¡ ¡: ¡ Given ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡, ¡to ¡learn ¡ ¡: ¡
SLIDE 41
Collabora:ve ¡filtering ¡ Given ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡(and ¡movie ¡ra'ngs), ¡ ¡ ¡can ¡es'mate ¡ ¡ ¡ Given ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡, ¡ ¡ ¡can ¡es'mate ¡
SLIDE 42
Collabora:ve ¡filtering ¡op:miza:on ¡objec:ve ¡
Given ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡, ¡es'mate ¡ ¡: ¡ Given ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡, ¡es'mate ¡ ¡ ¡: ¡ Minimizing ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡and ¡ ¡simultaneously: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
SLIDE 43 Collabora:ve ¡filtering ¡algorithm ¡
¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡to ¡small ¡random ¡values. ¡
¡ ¡ ¡ ¡using ¡gradient ¡ descent ¡(or ¡an ¡advanced ¡op'miza'on ¡algorithm). ¡E.g. ¡for ¡ every ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡: ¡ ¡ ¡ ¡ ¡
- 3. For ¡a ¡user ¡with ¡parameters ¡ ¡ ¡ ¡ ¡ ¡ ¡and ¡a ¡movie ¡with ¡(learned) ¡
features ¡ ¡ ¡ ¡ ¡ ¡, ¡predict ¡a ¡star ¡ra'ng ¡of ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡. ¡
SLIDE 44 Collabora:ve ¡filtering ¡
Movie ¡ Alice ¡ (1) ¡ Bob ¡(2) ¡ Carol ¡ (3) ¡ Dave ¡ (4) ¡ Love ¡at ¡last ¡ 5 ¡ 5 ¡ 0 ¡ 0 ¡ Romance ¡ forever ¡ 5 ¡ ? ¡ ? ¡ 0 ¡ Cute ¡puppies ¡
? ¡ 4 ¡ 0 ¡ ? ¡ Nonstop ¡car ¡ chases ¡ 0 ¡ 0 ¡ 5 ¡ 4 ¡ Swords ¡vs. ¡ karate ¡ 0 ¡ 0 ¡ 5 ¡ ? ¡
SLIDE 45
Collabora:ve ¡filtering ¡-‑ ¡vectoriza:on ¡ Predicted ¡ra'ngs: ¡
SLIDE 46
Finding ¡related ¡movies ¡ For ¡each ¡product ¡ ¡ ¡ ¡, ¡we ¡learn ¡a ¡feature ¡vector ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡. ¡ How ¡to ¡find ¡movies ¡ ¡ ¡ ¡related ¡to ¡movie ¡ ¡ ¡? ¡ 5 ¡most ¡similar ¡movies ¡to ¡movie ¡ ¡ ¡: ¡ Find ¡the ¡5 ¡movies ¡ ¡ ¡ ¡with ¡the ¡smallest ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡. ¡
SLIDE 47
Finding ¡related ¡movies ¡ For ¡each ¡product ¡ ¡ ¡ ¡, ¡we ¡learn ¡a ¡feature ¡vector ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡. ¡ How ¡to ¡find ¡movies ¡ ¡ ¡ ¡related ¡to ¡movie ¡ ¡ ¡? ¡ 5 ¡most ¡similar ¡movies ¡to ¡movie ¡ ¡ ¡: ¡ Find ¡the ¡5 ¡movies ¡ ¡ ¡ ¡with ¡the ¡smallest ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡. ¡
SLIDE 48 Users ¡who ¡have ¡not ¡rated ¡any ¡movies ¡– ¡mean ¡normaliza:on ¡
Movie ¡ Alice ¡ (1) ¡ Bob ¡ (2) ¡ Carol ¡ (3) ¡ Dave ¡ (4) ¡ Eve ¡(5) ¡ Love ¡at ¡last ¡ 5 ¡ 5 ¡ 0 ¡ 0 ¡ ? ¡ Romance ¡ forever ¡ 5 ¡ ? ¡ ? ¡ 0 ¡ ? ¡ Cute ¡puppies ¡
? ¡ 4 ¡ 0 ¡ ? ¡ ? ¡ Nonstop ¡car ¡ chases ¡ 0 ¡ 0 ¡ 5 ¡ 4 ¡ ? ¡ Swords ¡vs. ¡ karate ¡ 0 ¡ 0 ¡ 5 ¡ ? ¡ ? ¡
SLIDE 49
Mean ¡Normaliza:on: ¡ For ¡user ¡ ¡ ¡ ¡, ¡on ¡movie ¡ ¡ ¡ ¡predict: ¡ User ¡5 ¡(Eve): ¡
SLIDE 50
Mean ¡Normaliza:on: ¡ For ¡user ¡ ¡ ¡ ¡, ¡on ¡movie ¡ ¡ ¡ ¡predict: ¡ User ¡5 ¡(Eve): ¡
SLIDE 51 References ¡
- Trevor ¡Has'e, ¡Robert ¡Tibshirani, ¡Jerome ¡Friedman. ¡The ¡Elements ¡
- f ¡Sta's'cal ¡Learning: ¡Data ¡Mining, ¡Inference, ¡and ¡Predic'on. ¡Second ¡
Edi'on, ¡2009. ¡
- Anand ¡Rajaraman, ¡Jeffrey ¡D. ¡Ullman. ¡Mining ¡of ¡Massive ¡Datasets. ¡2009. ¡
- Toby ¡Seagram, ¡Collec've ¡Intelligence. ¡2007. ¡
- Recommending ¡And ¡Evalua'ng ¡Choices ¡In ¡A ¡Virtual ¡Community ¡Of ¡Use. ¡
Will ¡Hill, ¡Larry ¡Stead, ¡Mark ¡Rosenstein ¡and ¡George ¡Furnas, ¡Bellcore; ¡CHI ¡
- 1995. ¡
- Andrew ¡Ng, ¡Standford ¡
- William ¡W. ¡Cohen, ¡CMU ¡