Collabora've Filtering Jay Urbain, Ph.D. Electrical - - PowerPoint PPT Presentation

collabora ve filtering
SMART_READER_LITE
LIVE PREVIEW

Collabora've Filtering Jay Urbain, Ph.D. Electrical - - PowerPoint PPT Presentation

Collabora've Filtering Jay Urbain, Ph.D. Electrical Engineering and Computer Science Department Milwaukee School of Engineering Credits: See last page with


slide-1
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 ¡

  • rder ¡by ¡maxsc; ¡
slide-20
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 ¡

  • rder ¡by ¡ra'ng ¡desc; ¡
slide-21
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
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
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
SLIDE 24

Collabora've ¡+ ¡Content ¡Filtering ¡

(Basu ¡et ¡al, ¡AAAI98; ¡Condliff ¡et ¡al, ¡AI-­‑STATS99) ¡

Use ¡your ¡classifica'on ¡algorithm ¡of ¡ choice ¡

slide-25
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
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
SLIDE 27

Content ¡+ ¡Collabora've ¡Filtering ¡-­‑ ¡ Theory ¡

Op'onal ¡content ¡– ¡content ¡+ ¡collabora've ¡filtering ¡

slide-28
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
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
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 ¡

  • f ¡love ¡

? ¡ 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
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 ¡

  • f ¡love ¡

? ¡ 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
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
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
SLIDE 34

Op:miza:on ¡objec:ve: ¡ To ¡learn ¡ ¡ ¡ ¡ ¡ ¡ ¡(parameter ¡for ¡user ¡ ¡ ¡): ¡ To ¡learn ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡: ¡

slide-35
SLIDE 35

Op:miza:on ¡algorithm: ¡ Gradient ¡descent ¡update: ¡

slide-36
SLIDE 36

Op:miza:on ¡algorithm: ¡ Gradient ¡descent ¡update: ¡

slide-37
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 ¡

  • f ¡love ¡

? ¡ 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
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 ¡

  • f ¡love ¡

? ¡ 4 ¡ 0 ¡ ? ¡ ? ¡ ? ¡ Nonstop ¡car ¡ chases ¡ 0 ¡ 0 ¡ 5 ¡ 4 ¡ ? ¡ ? ¡ Swords ¡vs. ¡ karate ¡ 0 ¡ 0 ¡ 5 ¡ ? ¡ ? ¡ ? ¡

slide-39
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 ¡

  • f ¡love ¡

? ¡ 4 ¡ 0 ¡ ? ¡ ? ¡ ? ¡ Nonstop ¡car ¡ chases ¡ 0 ¡ 0 ¡ 5 ¡ 4 ¡ ? ¡ ? ¡ Swords ¡vs. ¡ karate ¡ 0 ¡ 0 ¡ 5 ¡ ? ¡ ? ¡ ? ¡

slide-40
SLIDE 40

Op:miza:on ¡algorithm ¡ Given ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡, ¡to ¡learn ¡ ¡ ¡ ¡ ¡ ¡: ¡ Given ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡, ¡to ¡learn ¡ ¡: ¡

slide-41
SLIDE 41

Collabora:ve ¡filtering ¡ Given ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡(and ¡movie ¡ra'ngs), ¡ ¡ ¡can ¡es'mate ¡ ¡ ¡ Given ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡, ¡ ¡ ¡can ¡es'mate ¡

slide-42
SLIDE 42

Collabora:ve ¡filtering ¡op:miza:on ¡objec:ve ¡

Given ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡, ¡es'mate ¡ ¡: ¡ Given ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡, ¡es'mate ¡ ¡ ¡: ¡ Minimizing ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡and ¡ ¡simultaneously: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-43
SLIDE 43

Collabora:ve ¡filtering ¡algorithm ¡

  • 1. Ini'alize

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡to ¡small ¡random ¡values. ¡

  • 2. Minimize ¡

¡ ¡ ¡ ¡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
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 ¡

  • f ¡love ¡

? ¡ 4 ¡ 0 ¡ ? ¡ Nonstop ¡car ¡ chases ¡ 0 ¡ 0 ¡ 5 ¡ 4 ¡ Swords ¡vs. ¡ karate ¡ 0 ¡ 0 ¡ 5 ¡ ? ¡

slide-45
SLIDE 45

Collabora:ve ¡filtering ¡-­‑ ¡vectoriza:on ¡ Predicted ¡ra'ngs: ¡

slide-46
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
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
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 ¡

  • f ¡love ¡

? ¡ 4 ¡ 0 ¡ ? ¡ ? ¡ Nonstop ¡car ¡ chases ¡ 0 ¡ 0 ¡ 5 ¡ 4 ¡ ? ¡ Swords ¡vs. ¡ karate ¡ 0 ¡ 0 ¡ 5 ¡ ? ¡ ? ¡

slide-49
SLIDE 49

Mean ¡Normaliza:on: ¡ For ¡user ¡ ¡ ¡ ¡, ¡on ¡movie ¡ ¡ ¡ ¡predict: ¡ User ¡5 ¡(Eve): ¡

slide-50
SLIDE 50

Mean ¡Normaliza:on: ¡ For ¡user ¡ ¡ ¡ ¡, ¡on ¡movie ¡ ¡ ¡ ¡predict: ¡ User ¡5 ¡(Eve): ¡

slide-51
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 ¡