Save 37% off PRO during our Black Friday Sale! »

レコメンデーションシステムのキホン

 レコメンデーションシステムのキホン

2019/1/24 EC Developer Meetupでの資料です。
協調フィルタリングとその周辺の技術について基本的なことを解説しています。

Cb18c19223700dd8185fef0d88435fe4?s=128

Kimikazu Kato

January 24, 2019
Tweet

Transcript

  1. ϨίϝϯσʔγϣϯγεςϜͷΩϗϯ 2019/1/24 EC Developer Meetup γϧόʔΤοάɾςΫϊϩδʔגࣜձࣾ Ճ౻ެҰ

  2. ձࣾ֓ཁ γϧόʔΤοάɾςΫϊϩδʔגࣜձࣾ ૑ཱɿ 1998೥ / ্৔ 2016೥ ࢿຊۚɿ 268ඦສԁʢ2018೥2݄28೔ݱࡏʣ ۀ຿಺༰ɿ

    AIϚʔέςΟϯάɾΦʔτϝʔγϣϯαʔϏε ॴࡏ஍ɿ ʲେࡕຊࣾʳ ɹେࡕ෎ਧాࢢߐࡔ1-23-43 ɹϑΝαʔυߐࡔϏϧ 10F ʲ౦ژڌ఺ʳ ɹ౦ژ౎ઍ୅ా۠Ӭాொ2-13-1 ɹΦΧϜϥ੺ࡔϏϧ 7F CODE: 3961 ओཁαʔϏε ΞΠδΣϯτɾϨίϝϯμʔ ϦΞϧλΠϜɾϨίϝϯυαʔϏε
 Web, App, SNS, ΦϜχνϟωϧʹରԠ ΞΠδΣϯτɾϨίΨκ΢ ϦΞϧλΠϜɾϨίϝϯυϝʔϧαʔϏε ϗοτϏϡʔʢHotViewʣ ϦΞϧλΠϜɾϨίϝϯυ޿ࠂαʔϏε ϓϩεϖΫλʔʢProspectorʣ ݟࠐΈސ٬ՄࢹԽπʔϧ
  3. ࣗݾ঺հ Ճ౻ެҰʢ͔ͱ͏͖Έ͔ͣʣ γϧόʔΤοάɾςΫϊϩδʔגࣜձࣾ νʔϑαΠΤϯςΟετ ത࢜ʢ৘ใཧ޻ֶʣ Twitter: @hamukazu ࢓ࣄɿϨίϝϯσʔγϣϯγεςϜͱͦͷपลʹؔ͢Δݚڀ։ൃ झຯɿےτϨ http://bit.ly/mlessence

    ஶॻʮػցֶशͷΤοηϯεʯSBΫϦΤΠςΟϒ
  4. ࠓ೔ͷ࿩ ϨίϝϯσʔγϣϯγεςϜͱ͸ͳʹ͔ ϨίϝϯσʔγϣϯγεςϜͷछྨ ΞϧΰϦζϜʹ͍ͭͯ ࣮૷ͯ͠Έ͍ͨਓ΁ͷ৘ใ ʢΊͣΒ͘͠ʣ͋·Γ೉͍͠࿩͸͠·ͤΜ ϨίϝϯσʔγϣϯͷϝϦοτɾݶքΛཧղͰ͖ΔΑ͏ʹͳΔͷ͕໨ඪ

  5. ஫ҙ ฐ͕ࣾͲͷΞϧΰϦζϜΛ࠾༻͍ͯ͠Δ͔ͱ͍͏࿩͸͠·ͤΜʢͰ͖·ͤΜʣ Ҏ߱ͷ࿩͸ɺҰൠʹ஌ΒΕ͍ͯΔࣄ࣮ͰɺฐࣾϓϩμΫτʹಛԽͨ͠࿩Ͱ͸ ͳ͍Ͱ͢

  6. ϨίϝϯσʔγϣϯγεςϜͱ͸ Ϣʔβ͕ڵຯ͋Γͦ͏ͳ΋ͷʢͭ·Γ͓͢͢ΊʣΛఏࣔ͢ΔγεςϜ ผ໊ɿࣗಈਪનγεςϜɺϨίϝϯυγεςϜɺϨίϝϯμʔ

  7. ϨίϝϯσʔγϣϯγεςϜͷೖྗʹΑΔ෼ྨ ߦಈσʔλʢڠௐϑΟϧλϦϯάʣ ίϯςϯπσʔλʢྫɿ঎඼આ໌ɺ঎඼ը૾ʣ ଐੑσʔλ ͦΕΒͷϋΠϒϦου΋

  8. ڠௐϑΟϧλϦϯά ߦಈ৘ใͷΈΛೖྗͱͨ͠ϨίϝϯσʔγϣϯγεςϜΛڠௐϑΟϧλϦϯ άͱݺͿ ࣗ෼ͱಉ͡Α͏ͳᅂ޷ͷਓ͕ങͬͨ΋ͷ͸ɺࣗ෼΋ཉ͘͠ͳΔ͜ͱ͕ଟ͍ͩ Ζ͏ͱ͍͏Ծઆͷ΋ͱʹ੒ΓཱͭΞϧΰϦζϜ ݹ͔͘Β஌ΒΕ͍ͯΔ͕ɺඇৗʹޮՌత

  9. ίʔϧυελʔτ໰୊ ڠௐϑΟϧλϦϯάͰ͸ɺϢʔβͷߦಈͷΈΛݟ͍ͯΔͷͰɺߦಈ৘ใ͕े෼ Ͱͳ͍৔߹ʹ͸ਫ਼౓ͷߴ͍Ϩίϝϯσʔγϣϯ͕Ͱ͖ͳ͍ɻ͜ͷ͜ͱΛʮίʔ ϧυελʔτ໰୊ʯͱݺͿ ྫɿ৽੡඼ɺ৽نސ٬ ίʔϧυελʔτ໰୊Λࠀ෰͢ΔͨΊͷख๏ͱͯ͠ίϯςϯπϕʔεͷϨίϝ ϯσʔγϣϯ͕͋Δ ߦಈ৘ใ͕े෼ʹ͋Ε͹ڠௐϑΟϧλϦϯάͷํ͕ྑ͍݁ՌΛग़͢ͷͰɺίϯ ςϯπϕʔε͸͋͘·Ͱิ׬తͳ΋ͷͱͱΒ͑Δ΂͖

  10. ΋͏ҰͭͷϚʔέςΟϯάख๏ɿηάϝϯςʔγϣϯ ೥ྸɺੑผɺ೥ऩͳͲͷଐੑʹΑͬͯސ٬Λ෼ׂ͠ɺ෼ׂ͞ΕͨͦΕͧΕͷ ूஂʢηάϝϯτʣʹରͯ͠ҟͳΔࢪࡦΛߦ͏ख๏ ػցֶशͰ͸ͳ͘ਓؒʹΑΔҙࢥܾఆ ྫʮ20୅உੑʹ͸ΧλϩάAΛૹΓɺ30୅ঁੑʹ͸ΧλϩάBΛૹΔʯ ϨίϝϯσʔγϣϯγεςϜҎલ͔Β͋ͬͨݹ͍ख๏ ͱ͸͍ͬͯ΋ഇΕͨख๏ͱ͍͏Θ͚Ͱ͸ͳ͘ɺϚʔέςΟϯάͷҙਤΛ௚઀ ൓ө͠΍͍͢ͱ͍͏ϝϦοτ͕͋Δ

  11. Α͋͘Δٙ໰ ڠௐϑΟϧλϦϯά͸ɺηάϝϯςʔγϣϯͰར༻͢Δ৘ใΛશ͘ར༻͠ͳ ͍ͷͰɺਫ਼౓͕མͪΔͷͰ͸ͳ͍͔ ڠௐϑΟϧλϦϯάʹސ٬ͷଐੑ৘ใΛ෇Ճֶͯ͠शͤ͞Ε͹ਫ਼౓্͕͕Δ ͷͰ͸ͳ͍͔

  12. ΞϧΰϦζϜͷྫɿ Matrix Factorization p (A|X, Y, σ) = aui ̸=0

    N Aui |XT u Yi, σ p(X|σX ) = u N(Xu |0, σXI) p(Y |σY ) = i N(Yi |0, σY I) w x y z a 5 4 1 4 b 4 c 2 3 d 1 4 ? ͜ΕΛߦྻAͱ͓͘ A XT Y × খ͍͞αΠζͷߦྻͷੵͰۙࣅ͢Δ ⇡ ࠜຊʹ͋ΔΞΠσΞɿ ֤ΞΠςϜ͸গ਺ͷજࡏཁૉʹ෼ղͰ͖Δ͸ͣͩ өըͷ৔߹ͷજࡏཁૉͷྫɿ δϟϯϧʢϑΝϯλδʔɺΞΫγϣϯɺϗϥʔɺetc.ʣ ಛఆͷആ༏͕ग़ͯΔ͔ Netflix ChallengeʢөըͷධՁ༧ଌίϯϖʣͰ࠷΋ޮՌ͕͋ͬͨख๏
  13. ڠௐϑΟϧλϦϯάͱϢʔβଐੑ ڠௐϑΟϧλϦϯάͰ͸ϢʔβଐੑΛݟ͍ͯͳ͍ͷʹɺݟ͍ͯΔ͔ͷΑ͏ͳ ಈ࡞Λ͢Δ͜ͱ͕Α͋͘Δ ͜Ε͸ɺʮࣅͨଐੑͷਓͨͪ͸ࣅͨΑ͏ͳߦಈΛ͢Δʯ͔ΒͰ͋Γɺߦಈͷ த͔Βଐੑ͕ු͖ग़͍ͯΔ ٯʹු͖ग़ͯ͜ͳ͍ଐੑ͸ɺ͋·ΓߦಈͷࠩʹͳͬͯݱΕͳ͍΋ͷ ͜ͷΑ͏ͳ఺ͰɺڠௐϑΟϧλϦϯά͸ηάϝϯςʔγϣϯͷߟ͑ํΛ಺แ ͍ͯ͠Δ

  14. ࣗ෼Ͱ࡞ͬͯΈ͍ͨਓ΁ ΞϧΰϦζϜ͔Βࣗ෼Ͱ࡞ΔʢֶशͷͨΊͷ࣮૷ʣ ʮू߹஌ϓϩάϥϛϯάʯΦϥΠϦʔ طଘͷϥΠϒϥϦΛར༻ MyMediaLite LibRec pyRecLab AWS Personalize? ʢϓϨϏϡʔਃ͠ࠐΜ͚ͩͲฦࣄ͕དྷ·ͤΜʣ

    https://amzn.to/2RFxYgZ
  15. ڠௐϑΟϧλϦϯάͰͷ෇Ճ৘ใͷར༻ ۙ೥ͷݚڀͰڠௐϑΟϧλϦϯάʹߦಈ৘ใҎ֎ͷ৘ใʢside informationʣ ΛՃ͑Δͱਫ਼౓্͕͕Δ͜ͱ͕Θ͔͖ͬͯͨ ౰ͨΓલͱ͍͑͹౰ͨΓલ ͲͷΑ͏ʹ૊Έ߹ΘͤΔ͔ʹ͍ͭͯͷൃݟ͕ॏཁ ෇Ճ৘ใͷྫɿϢʔβଐੑɺ঎඼ϨϏϡʔɺSNSͰͷൃݴɺetc. ͋͘·ͰڠௐϑΟϧλϦϯά͕ϕʔεͰ͋Δ͜ͱʹ஫ҙ

  16. ·ͱΊ ڠௐϑΟϧλϦϯά͸ڧྗͳख๏Ͱ͋Δ ͦ͜ʹߦಈ৘ใҎ֎ͷ৘ใΛՃ͑ͯڧԽ͢Δݚڀ͕࠷ۙߦΘΕ͍ͯΔ ߦಈ৘ใ͕ෆे෼ͳ৔߹ʹ͸ίϯςϯπͷར༻΋