$30 off During Our Annual Pro Sale. View Details »

トピックモデルを活用したレコメンデーションの実装

Takanobu Nozawa
February 25, 2021
4.6k

 トピックモデルを活用したレコメンデーションの実装

2021/02/25に行われたコネヒトマルシェで発表したトピックモデルを活用したレコメンデーションについての資料です。

Takanobu Nozawa

February 25, 2021
Tweet

Transcript

  1. τϐοΫϞσϧΛ׆༻ͨ͠ Ϩίϝϯσʔγϣϯͷ࣮૷ Takanobu Nozawa 2021.02.25 ίωώτϚϧγΣΦϯϥΠϯʮػցֶशɾσʔλ෼ੳʯ

  2.  ࣗݾ঺հ  ػցֶश΁ͷऔΓ૊Έ  ϚϚϦͷݱঢ়ͱ՝୊  τϐοΫϞσϧͱ͸  τϐοΫϞσϧΛ׆༻ͨ͠Ϩίϝϯσʔγϣϯ

     ࠷ޙʹ ΞδΣϯμ
  3. ࣗݾ঺հ

  4. ໊લɿ໺ᖒ఩রʢ/P[BXB5BLBOPCVʣ ॴଐɿίωώτגࣜձࣾ ɹɹɿ͔ͨͺ͍!UBLBQZ w ػցֶशʢ/-1ɺਪનγεςϜʣΛϝΠϯʹ΍Γͭͭ"84ͱٔΕ͍ͯ·͢ w ٳ೔͸σʔλ෼ੳίϯϖͨ͠ΓɺϒϩάʢIUUQTXXXUBLBQZXPSLʣॻ͍ͨΓɺ ໺ٿͨ͠Γɺϥʔϝϯ৯΂ͨΓ͍ͯ͠·͢ w ϙουΩϟετ🎙

    ͸͡Ί·ͨ͠ˠ!HFG@GNʢIUUQTUXJUUFSDPNHFG@GNʣ ࣗݾ঺հ
  5. αʔϏε঺հͱػցֶश΁ͷऔΓ૊Έ αʔϏεͷ֓ཁؚΊͯ ͍͔ͭ͘ϐοΫΞοϓͯ͠͝঺հ

  6. ϚϚϦʹ͍ͭͯ l೰ΈzͱzڞײzΛ࣠ʹϚϚʹدΓఴ͍ ΞϓϦɾ8FCɾ4/4ͱଟ֯తʹαʔϏεΛల։͍ͯ͠·͢

  7. ίϛϡχςΟݕӾ FH ؆୯ʹՔ͙ํ๏ڭ͑·͢⭐ ͜ͷ౤ߘ͸ͷ֬཰Ͱ ෆద੾ͳίϯςϯπͰ͢⚠ Ϟσϧ͕ෆద੾ͱ൑ఆͨ͠΋ͷ͚ͩ Λਓ͕ؒ໨ࢹͰ֬ೝ

  8. ίϛϡχςΟݕӾ FH ؆୯ʹՔ͙ํ๏ڭ͑·͢⭐ ͜ͷ౤ߘ͸ͷ֬཰Ͱ ෆద੾ͳίϯςϯπͰ͢⚠ Ϟσϧ͕ෆద੾ͱ൑ఆͨ͠΋ͷ͚ͩ Λਓ͕ؒ໨ࢹͰ֬ೝ ίετ࡟ݮ

  9. ΧςΰϦͷྨਪ ౤ߘ಺༰͔Βࣗಈతʹ ΧςΰϦΛαδΣετ

  10. ΧςΰϦͷྨਪ ౤ߘ಺༰͔Βࣗಈతʹ ΧςΰϦΛαδΣετ ࣭໰ͷ$7޲্

  11. هࣄͷϨίϝϯσʔγϣϯ ͻͱΓͻͱΓͷߦಈཤྺ͔Β ͓͢͢ΊͷهࣄΛϨίϝϯυ

  12. هࣄͷϨίϝϯσʔγϣϯ ͻͱΓͻͱΓͷߦಈཤྺ͔Β ͓͢͢ΊͷهࣄΛϨίϝϯυ $53޲্

  13. ϓϩμΫτʹରͯ͠ੵۃతʹ ػցֶशΛಋೖ͍ͯ͠·͢💪

  14. ϚϚϦͷݱঢ়ͱ՝୊ ͳͥɺ࣭໰ϨίϝϯυΛ΍Δ͜ͱʹͳͬͨͷ͔

  15. ϚϚϦͷݱঢ়ͱ՝୊ ݱঢ় w ೥ͷ$.ΛڥʹϢʔβʔج൫͕֦େɻͦ͜ͰϥΠτϢʔβʔ΋૿͑ɺϢʔβʔͷ ଟ༷Խ͕ਐΈɺ݁Ռͱͯ͠ɺϚϚϦ΁ͷظ଴஋ʢ㲈ϚϚϦ͕ղܾ͢΂͖՝୊ʣ΋ଟछ ଟ༷ʹͳͬͨɻ ੜ·Ε͖ͯͨʢʹղܾ͍ͨ͠ʣ՝୊ w χονͳ՝୊ͷ૯ྔ͕૿͑ɺଟ༷ͳՁ஋؍΍ߟ͑ํ͕ަࡨ͢Δ৔ॴ΁ͱมԽ͠ɺ୯Ұ తͳΞϓϩʔνʢྫઌഐϚϚ͔ͩΒޙഐϚϚʹճ౴ग़དྷΔʣͰ͸೤ྔͱ݈શੑΛҡ

    ࣋͢Δ͜ͱ͕೉͘͠ͳ͖ͬͯͨɻͦΕʹରͯ͠ݱࡏͷϧʔϧϕʔεͷΞϓϩʔνͰ͸ ղܾ͕೉͍͠ɻ
  16. ϚϚϦͷݱঢ়ͱ՝୊ Ծઆ w ػցֶशʹΑΔύʔιφϥΠζ΍ϨίϝϯσʔγϣϯΛ׆༻͢Δ͜ ͱͰɺϢʔβʔͷଟ͘ͷ՝୊Λղܾ͠ɺαʔϏεͷ೤ྔͱ݈શੑΛ ޲্ͤ͞ΒΕΔͷͰ͸ͳ͍͔ɻ ࣭໰ͷϨίϝϯσʔγϣϯΛ࣮૷

  17. ϚϚϦͷݱঢ়ͱ՝୊ Ծઆ w ػցֶशʹΑΔύʔιφϥΠζ΍ϨίϝϯσʔγϣϯΛ׆༻͢Δ͜ ͱͰɺϢʔβʔͷଟ͘ͷ՝୊Λղܾ͠ɺαʔϏεͷ೤ྔͱ݈શੑΛ ޲্ͤ͞ΒΕΔͷͰ͸ͳ͍͔ɻ ࣭໰ͷϨίϝϯσʔγϣϯΛ࣮૷ ຊࢿྉͰ͸ɺ͍͔ͭ͘ࢪࡦΛߦͬͨதͰɺ τϐοΫϞσϧΛ׆༻ͨ͠ Ϩίϝϯσʔγϣϯʹ͍͓ͭͯ࿩͠·͢

  18. τϐοΫϞσϧͱ͸

  19. τϐοΫϞσϧͱ͸ w จॻ͕ෳ਺ͷજࡏతͳτϐοΫ͔Β֬཰తʹੜ੒͞ΕΔͱԾఆͨ͠Ϟσϧ ʢจॻ಺ͷ֤୯ޠ͸͋ΔτϐοΫ͕࣋ͭ֬཰෼෍ʹैͬͯग़ݱ͢ΔͱԾఆʣ w ͜͜Ͱ͍͏ʮτϐοΫʯͱ͸࿩ͷओ୊ͷ͜ͱͰɺಉ͡࿩୊ʹ͍ͭͯ࿩͍ͯ͠ ͯ΋ɺਓʹΑͬͯղऍ͕มΘΔ͜ͱ͕͋Δ w ༗໊ͳ΋ͷͩͱҎԼͷΑ͏ͳख๏͕͋Δ w

    -4*ʢ-BUFOU4FNBOUJD*OEFYʣ w 1-4*ʢ1SPCBCJMJTUJD-BUFOU4FNBOUJD*OEFYJOHʣ w -%"ʢ-BUFOU%JSJDIMFU"MMPDBUJPOʣ
  20. τϐοΫϞσϧͱ͸ w ϞσϧͷʮτϐοΫͷ਺ʯͱʮτϐοΫͷϥϕϧʯ͸ਓ͕ܾؒΊΔඞཁ͕͋Δ w ྫ͑͹τϐοΫͷ਺Λͱࢦఆͯ͠ϞσϦϯάͨ͠৔߹ɺͦͷϞσϧʹԿ͔͠ ΒͷจॻΛ౉͢ͱɺग़ྗͱͯ̏ͭ͠ͷτϐοΫͦΕͧΕͷ֬཰෼෍͕ಘΒΕΔ จॻ Topic1 Topic2 Topic3

    ͋ͱ1ٿͰϊʔώοτϊʔϥϯ… 0.7 0.1 0.2 ͻͱΓ਌ੈଳʹʮྟ࣌ಛผڅ෇ۚʯ… 0.1 0.8 0.1 ̢ʵ̍Ԧऀ͸ϚξΧϧϥϒϦʔ… 0.3 0.1 0.6 ্هͷ৔߹ɺ5PQJD͸εϙʔπɺ5PQJD͸ܦࡁɺ5PQJD͸Τϯλϝ ͱ͍ͬͨղऍ͸ਓ͕͓ؒ͜ͳ͏ඞཁ͕͋Δ
  21. τϐοΫϞσϧΛ׆༻ͨ͠Ϩίϝϯσʔγϣϯ τϐοΫϞσϧͷఆੑධՁ͔ΒϨίϝϯσʔγϣϯ΁ͷԠ༻

  22. ͳͥτϐοΫϞσϧΛ࢖͓͏ͱࢥ͔ͬͨ w ϚϚϦͰ͸݄ؒͰສ݅΄Ͳͷ2"͕౤ߘ͞Ε͍ͯΔ w ྫ͑͹௚ۙϲ݄ͷσʔλΛਪનର৅ͱͯ͠΋ɺਪનର৅݅਺͕͔ͳΓଟ͍ w Ϣʔβʔͷͬ͘͟Γͨ͠ᅂ޷ΛਪఆͰ͖Ε͹ɺਪનର৅ͷ࣭໰Λ͋Δఔ౓ߜͬ ্ͨͰɺ࠷ޙʹϥϯΩϯά෇͚ͯ͠Ϩίϝϯσʔγϣϯ͢Δɺͱ͍ͬͨ͜ͱ͕ Ͱ͖Δ ˠ:PV5VCFͳͲͰ̎ஈ֊ͷਪનγεςϜΛߏங͍ͯ͠Δͱ͍ͬͨ࿦จ΋ʢ˞ʣ

    ˞IUUQTSFTFBSDIHPPHMFQVCTQVC
  23. ͳͥτϐοΫϞσϧΛ࢖͓͏ͱࢥ͔ͬͨ w Ϣʔβʔͷᅂ޷ΛਪఆͰ͖ΔσʔλͷͭʹʮΧςΰϦʯ͕͋Δ ˠྫ͑͹ʮࢠҭͯʯΧςΰϦΛΑ͘Έ͍ͯΔϢʔβʔ͸ʮࢠҭͯʯʹڵຯ͕͋Δͱ ਪఆͰ͖Δ w ͔͠͠ɺಉ͡ΧςΰϦͰ΋౤ߘ͞ΕΔ಺༰͸ҟͳ͍ͬͯΔ͜ͱ͕ଟ͍ ˠԼه͸ͲͪΒ΋ʮࢠҭͯʯΧςΰϦʹ౤ߘ͞Ε࣭ͨ໰͕ͩໟ৭͸͔ͳΓҧ͏ɻ lͲͷΧςΰϦͷ࣭໰ΛΑ͘Έ͍ͯΔ͔z͚ͩͰ͸ɺϢʔβʔ͕ͲΜͳ͜ͱʹ೰ΜͰ͍ Δͷ͔ਪఆ͢Δͷ͸ࠔ೉

  24. ͳͥτϐοΫϞσϧΛ࢖͓͏ͱࢥ͔ͬͨ w Ϣʔβʔͷᅂ޷ΛਪఆͰ͖ΔσʔλͷͭʹʮΧςΰϦʯ͕͋Δ ˠྫ͑͹ʮࢠҭͯʯΧςΰϦΛΑ͘Έ͍ͯΔϢʔβʔ͸ʮࢠҭͯʯʹڵຯ͕͋Δͱ ਪఆͰ͖Δ w ͔͠͠ɺಉ͡ΧςΰϦͰ΋౤ߘ͞ΕΔ಺༰͸ҟͳ͍ͬͯΔ͜ͱ͕ଟ͍ ˠԼه͸ͲͪΒ΋ʮࢠҭͯʯΧςΰϦʹ౤ߘ͞Ε࣭ͨ໰͕ͩໟ৭͸͔ͳΓҧ͏ɻ lͲͷΧςΰϦͷ࣭໰ΛΑ͘Έ͍ͯΔ͔z͚ͩͰ͸ɺϢʔβʔ͕ͲΜͳ͜ͱʹ೰ΜͰ͍ Δͷ͔ਪఆ͢Δͷ͸ࠔ೉

    τϐοΫϞσϧͰϢʔβʔͷᅂ޷Λ ਪఆͰ͖Δ͔෼ੳͯ͠Έͨ
  25. τϐοΫϞσϧͷఆੑνΣοΫᶃ w -%"Λ༻͍ͯϞσϦϯάΛ࣮ࢪ w τϐοΫ਺͸$PIFSFODFͱ1FSQMFYJUZͷ஋͔Β ܭࢉͯ͠ઃఆ w ࠨਤ͸Ұ෦Λൈਮͨ͠΋ͷ͕ͩɺྑ͍ײ͡ʹτϐ οΫ͕෼ׂ͞Ε͍ͯΔ͜ͱ͕ఆੑతʹ൑அͰ͖Δ ྫɿ

    ɹ5PQJDɿ͓ۚ 5PQJDɿอҭԂɾ༮ஓԂ 5PQJDɿίϩφ 5PQJDɿॅ·͍
  26. τϐοΫϞσϧͷఆੑνΣοΫᶄ w Կਓ͔ͷϢʔβʔΛαϯϓϦϯάͯ͠ఆੑతʹσʔλΛ෼ੳ w Լه͸ɺ͋ΔϢʔβʔͷ࣭໰ӾཡϩάΛ༻͍ͨڵຯτϐοΫͷભҠΛද͍ͯ͠Δ ˠτϐοΫʢग़࢈ʣ͸݄ޙ൒ʹ޲͚ͯӈݞ্͕ΓͰɺ೔͕ϐʔΫ ˠτϐοΫʢ௨Ӄʣ͕ɺ݄಄ͱޙ൒ʹߴ͍஋Λ͚͍ͭͯΔ

  27. τϐοΫϞσϧͷఆੑνΣοΫᶄ w Կਓ͔ͷϢʔβʔΛαϯϓϦϯάͯ͠ఆੑతʹσʔλΛ෼ੳ w Լه͸ɺ͋ΔϢʔβʔͷ࣭໰ӾཡϩάΛ༻͍ͨڵຯτϐοΫͷભҠΛද͍ͯ͠Δ ˠτϐοΫʢग़࢈ʣ͸݄ޙ൒ʹ޲͚ͯӈݞ্͕ΓͰɺ೔͕ϐʔΫ ˠτϐοΫʢ௨Ӄʣ͕ɺ݄಄ͱޙ൒ʹߴ͍஋Λ͚͍ͭͯΔ

  28. τϐοΫϞσϧͷఆੑνΣοΫᶄ w ࠓճͷϢʔβʔ͸݄೔ʹग़࢈Λ߇͍͑ͯͨͷͰɺͦΕʹ߹Θͤͯ ग़࢈τϐοΫͷ࣭໰ΛݟΔΑ͏ʹͳ͍ͬͯͬͨՄೳੑ͸͋Γͦ͏ ˠʮʢग़࢈ʣɺʢ௨Ӄʣʯ͋ͨΓͷτϐοΫʹڵຯ͕͋Δͱ͍͏͜ͱ͸ɺఆੑత ʹ൑அͯ͠΋ѱ͘ͳ͍ w ͜ͷΑ͏ͳ͜ͱΛෳ਺ϢʔβʔͰ܁Γฦ͠ɺఆੑతʹ൑அ ݄೔ʹग़࢈͍ͯ͠Δ ग़࢈τϐοΫ

    ௨ӃτϐοΫ ௨ӃτϐοΫ
  29. τϐοΫϞσϧͷఆੑνΣοΫᶄ w ࠓճͷϢʔβʔ͸݄೔ʹग़࢈Λ߇͍͑ͯͨͷͰɺͦΕʹ߹Θͤͯ ग़࢈τϐοΫͷ࣭໰ΛݟΔΑ͏ʹͳ͍ͬͯͬͨՄೳੑ͸͋Γͦ͏ ˠʮʢग़࢈ʣɺʢ௨Ӄʣʯ͋ͨΓͷτϐοΫʹڵຯ͕͋Δͱ͍͏͜ͱ͸ɺఆੑత ʹ൑அͯ͠΋ѱ͘ͳ͍ w ͜ͷΑ͏ͳ͜ͱΛෳ਺ϢʔβʔͰ܁Γฦ͠ɺఆੑతʹ൑அ ݄೔ʹग़࢈͍ͯ͠Δ ग़࢈τϐοΫ

    ௨ӃτϐοΫ ௨ӃτϐοΫ ఆੑతʹ͸ྑͦ͞͏ ˠϨίϝϯσʔγϣϯʹ׆༻ͯ͠ΈΔ
  30. τϐοΫϞσϧΛ׆༻ͨ͠Ϩίϝϯσʔγϣϯ

  31. τϐοΫϞσϧΛ׆༻ͨ͠Ϩίϝϯσʔγϣϯ

  32. τϐοΫϞσϧΛ׆༻ͨ͠Ϩίϝϯσʔγϣϯ w ߦྻ෼ղ͸3BUJOHߦྻΛVTFSͷಛ௃ྔߦྻʢ1ʣͱJUFNͷಛ௃ྔߦྻ ʢ2ʣʹ෼ղ͢Δख๏ w ྫ͑͹ɺNਓͷϢʔβʔͱOݸͷΞΠςϜΛߟ͑ͨͱ͖ʹɺNLͰ ͋ΔL࣍ݩʹ࣍ݩ࡟ݮͯ͠ม׵͢Δ͜ͱΛ໨తͱ͢Δ

  33. τϐοΫϞσϧΛ׆༻ͨ͠Ϩίϝϯσʔγϣϯ w UG&NCFEEJOHΛ༻͍Δ͜ͱͰɺL࣍ݩͷຒΊࠐΈΛදݱ ʢωοτϫʔΫ͸ӈԼਤͷΑ͏ͳΠϝʔδʣ w ԼهࣜͰϢʔβʔͷᅂ޷͕είΞϦϯάͰ͖ΔͱԾఆֶͯ͠श rij = vi ⋅

    vj + bi + bj SJKɿϢʔβJʹΑΔΞΠςϜKʹର͢ΔධՁ஋ CJɿϢʔβJʹΑΔධՁ஋ͷόΠΞε CKɿΞΠςϜKʹର͢ΔධՁ஋ͷόΠΞε WJɿϢʔβJͷಛ௃ϕΫτϧ WKɿΞΠςϜKͷಛ௃ϕΫτϧ WJ⋅WKɿϢʔβJͱΞΠςϜKͷಛ௃ϕΫτϧͷ಺ੵ
  34. ݁Ռ

  35. ݁Ռ w τϐοΫϞσϧΛ׆༻ͨ͠ϨίϝϯσʔγϣϯͷϦϦʔεͨ݁͠Ռɺ ϦϦʔεલޙ೔ฏۉͰ໿਺஋޲্🎉 ʢݱࡏ"#ςετதʣ ϦϦʔε ϦϦʔεલޙͷ 10೔ؒฏۉ U

  36. ݁Ռ w τϐοΫϞσϧΛ׆༻ͨ͠ϨίϝϯσʔγϣϯͷϦϦʔεͨ݁͠Ռɺ ϦϦʔεલޙ೔ฏۉͰ໿਺஋޲্🎉 ʢݱࡏ"#ςετதʣ ϦϦʔε ϦϦʔεલޙͷ 10೔ؒฏۉ U χίχί🥰

  37. ·ͱΊ

  38. ·ͱΊ w Ϣʔβʔͷ࣭໰Ӿཡߦಈ͔ΒɺͦͷϢʔβʔͷڵຯؔ৺ͷ͋Δτϐ οΫΛਪఆͯ͠Έͨ݁Ռɺྑ͍݁Ռ͕ಘΒΕͨ ˠࣾ಺ʹ΋෼ੳ݁ՌΛڞ༗͠ɺࠓ·Ͱݟ͑ͯ͜ͳ͔ͬͨσʔλͷ੾ ΓޱΛ։୓Ͱ͖ͨ w τϐοΫϞσϧΛ׆༻ͨ͠ϨίϝϯσʔγϣϯΛߦ͏͜ͱͰɺϕʔ εϥΠϯΑΓ΄Ͳͷվળ͕ݟࠐΊͨ🎉 w

    Ϩίϝϯσʔγϣϯָ͍͠😆
  39. ࠷ޙʹ

  40. .-ΤϯδχΞઈࢍืूதͰ͢ʂ🧑💻 ɾϥΠϑΠϕϯτ ϥΠϑελΠϧͷ՝୊ղܾΛ͢ΔαʔϏεʹڵຯ͕͋Δํ ɾػցֶशͷࣾձ࣮૷ ϓϩμΫτ։ൃʹڵຯͷ͋Δํ %.PSͦ͘ΊΜ܅ܦ༝PS8BOUFEMZܦ༝ͳͲ͝࿈བྷ͓଴͍ͪͯ͠·͢ʂ ΧδϡΞϧ໘ஊͰ͸౴͑ΒΕΔൣғͰͳΜͰ΋౴͑·͢ʂʢಛʹ४උ͸͍Γ·ͤΜʣ 5XJUUFSˠIUUQTUXJUUFSDPNUBLBQZ 8F`SF)JSJOH

  41. ձࣾͱͯ͠΋ظ଴͞Ε͍ͯΔ෼໺Ͱ͢ ֓ཁ ɹɾҰਓʹҰਓʹ࠷దԽ͞Εͨ৘ใΛσʔλ΍ػցֶशΛ༻͍ͯఏڙ͢Δ ͳͥ΍Δͷ͔ʁ ɹɾ୯Ұͷ৘ใΛϒϩʔυΩϟετ͢ΔͷͰ͸ͳ͘ɺͦΕͧΕͷՈ଒ʹدΓఴͬͨ৘ใΛఏڙ͢ΔͨΊ ɹɾΞηοτͰ͋Δେྔͷඇߏ଄ԽσʔλΛ׆༻͢ΔͨΊ Ͳ͏΍Δͷ͔ʁʢऔΓ૊ΜͰ͍Δ͜ͱ΍ݕ౼͍ͯ͠Δ͜ͱʣ ɹɾϨίϝϯυΤϯδϯͷ։ൃ ɹɾʮ"DUJPOBCMFʯͳσʔλج൫ͷߏஙFUD

  42. ͓ΘΓ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ