Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
トピックモデルを活用したレコメンデーションの実装
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takanobu Nozawa
February 25, 2021
6.9k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
トピックモデルを活用したレコメンデーションの実装
2021/02/25に行われたコネヒトマルシェで発表したトピックモデルを活用したレコメンデーションについての資料です。
Takanobu Nozawa
February 25, 2021
More Decks by Takanobu Nozawa
See All by Takanobu Nozawa
データ基盤をDataformで整えた話 〜 開発環境を添えて 〜
takapy
1
220
低コストで実現する社内文書RAG機能を搭載したAIチャットボット開発
takapy
4
6.2k
コミュニティサービスに「あなたへ」フィードを リリースするまでの試行錯誤
takapy
1
2k
NLPを活用したオンボーディング改善とコールドスタート問題への対策
takapy
4
6.1k
自然言語可視化ライブラリ 「nlplot」のご紹介
takapy
3
4.5k
コミュニティサービスにおけるレコメンデーションの変遷とMLパイプラインについて
takapy
2
7.4k
SageMaker StudioとStep Functionsを用いてMLOpsへの一歩を踏み出そう
takapy
0
13k
GoogleColabとVSCodeを用いた分析環境運用Tips
takapy
15
15k
word2vecを利用した埋め込み分析とSWEMを用いた比較実験
takapy
0
2.5k
Featured
See All Featured
Believing is Seeing
oripsolob
1
170
A Tale of Four Properties
chriscoyier
163
24k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Code Review Best Practice
trishagee
74
20k
Building an army of robots
kneath
306
46k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.7k
Designing for Timeless Needs
cassininazir
1
410
Transcript
τϐοΫϞσϧΛ׆༻ͨ͠ Ϩίϝϯσʔγϣϯͷ࣮ Takanobu Nozawa 2021.02.25 ίωώτϚϧγΣΦϯϥΠϯʮػցֶशɾσʔλੳʯ
ࣗݾհ ػցֶशͷऔΓΈ ϚϚϦͷݱঢ়ͱ՝ τϐοΫϞσϧͱ τϐοΫϞσϧΛ׆༻ͨ͠Ϩίϝϯσʔγϣϯ
࠷ޙʹ ΞδΣϯμ
ࣗݾհ
໊લɿᖒরʢ/P[BXB5BLBOPCVʣ ॴଐɿίωώτגࣜձࣾ ɹɹɿ͔ͨͺ͍!UBLBQZ w ػցֶशʢ/-1ɺਪનγεςϜʣΛϝΠϯʹΓͭͭ"84ͱٔΕ͍ͯ·͢ w ٳσʔλੳίϯϖͨ͠ΓɺϒϩάʢIUUQTXXXUBLBQZXPSLʣॻ͍ͨΓɺ ٿͨ͠Γɺϥʔϝϯ৯ͨΓ͍ͯ͠·͢ w ϙουΩϟετ🎙
͡Ί·ͨ͠ˠ!HFG@GNʢIUUQTUXJUUFSDPNHFG@GNʣ ࣗݾհ
αʔϏεհͱػցֶशͷऔΓΈ αʔϏεͷ֓ཁؚΊͯ ͍͔ͭ͘ϐοΫΞοϓͯ͠͝հ
ϚϚϦʹ͍ͭͯ lΈzͱzڞײzΛ࣠ʹϚϚʹدΓఴ͍ ΞϓϦɾ8FCɾ4/4ͱଟ֯తʹαʔϏεΛల։͍ͯ͠·͢
ίϛϡχςΟݕӾ FH ؆୯ʹՔ͙ํ๏ڭ͑·͢⭐ ͜ͷߘͷ֬Ͱ ෆదͳίϯςϯπͰ͢⚠ Ϟσϧ͕ෆదͱఆͨ͠ͷ͚ͩ Λਓ͕ؒࢹͰ֬ೝ
ίϛϡχςΟݕӾ FH ؆୯ʹՔ͙ํ๏ڭ͑·͢⭐ ͜ͷߘͷ֬Ͱ ෆదͳίϯςϯπͰ͢⚠ Ϟσϧ͕ෆదͱఆͨ͠ͷ͚ͩ Λਓ͕ؒࢹͰ֬ೝ ίετݮ
ΧςΰϦͷྨਪ ߘ༰͔Βࣗಈతʹ ΧςΰϦΛαδΣετ
ΧςΰϦͷྨਪ ߘ༰͔Βࣗಈతʹ ΧςΰϦΛαδΣετ ࣭ͷ$7্
هࣄͷϨίϝϯσʔγϣϯ ͻͱΓͻͱΓͷߦಈཤྺ͔Β ͓͢͢ΊͷهࣄΛϨίϝϯυ
هࣄͷϨίϝϯσʔγϣϯ ͻͱΓͻͱΓͷߦಈཤྺ͔Β ͓͢͢ΊͷهࣄΛϨίϝϯυ $53্
ϓϩμΫτʹରͯ͠ੵۃతʹ ػցֶशΛಋೖ͍ͯ͠·͢💪
ϚϚϦͷݱঢ়ͱ՝ ͳͥɺ࣭ϨίϝϯυΛΔ͜ͱʹͳͬͨͷ͔
ϚϚϦͷݱঢ়ͱ՝ ݱঢ় w ͷ$.ΛڥʹϢʔβʔج൫͕֦େɻͦ͜ͰϥΠτϢʔβʔ૿͑ɺϢʔβʔͷ ଟ༷Խ͕ਐΈɺ݁Ռͱͯ͠ɺϚϚϦͷظʢ㲈ϚϚϦ͕ղܾ͖͢՝ʣଟछ ଟ༷ʹͳͬͨɻ ੜ·Ε͖ͯͨʢʹղܾ͍ͨ͠ʣ՝ w χονͳ՝ͷ૯ྔ͕૿͑ɺଟ༷ͳՁ؍ߟ͑ํ͕ަࡨ͢ΔॴͱมԽ͠ɺ୯Ұ తͳΞϓϩʔνʢྫઌഐϚϚ͔ͩΒޙഐϚϚʹճग़དྷΔʣͰྔͱ݈શੑΛҡ
࣋͢Δ͜ͱ͕͘͠ͳ͖ͬͯͨɻͦΕʹରͯ͠ݱࡏͷϧʔϧϕʔεͷΞϓϩʔνͰ ղܾ͕͍͠ɻ
ϚϚϦͷݱঢ়ͱ՝ Ծઆ w ػցֶशʹΑΔύʔιφϥΠζϨίϝϯσʔγϣϯΛ׆༻͢Δ͜ ͱͰɺϢʔβʔͷଟ͘ͷ՝Λղܾ͠ɺαʔϏεͷྔͱ݈શੑΛ ্ͤ͞ΒΕΔͷͰͳ͍͔ɻ ࣭ͷϨίϝϯσʔγϣϯΛ࣮
ϚϚϦͷݱঢ়ͱ՝ Ծઆ w ػցֶशʹΑΔύʔιφϥΠζϨίϝϯσʔγϣϯΛ׆༻͢Δ͜ ͱͰɺϢʔβʔͷଟ͘ͷ՝Λղܾ͠ɺαʔϏεͷྔͱ݈શੑΛ ্ͤ͞ΒΕΔͷͰͳ͍͔ɻ ࣭ͷϨίϝϯσʔγϣϯΛ࣮ ຊࢿྉͰɺ͍͔ͭ͘ࢪࡦΛߦͬͨதͰɺ τϐοΫϞσϧΛ׆༻ͨ͠ Ϩίϝϯσʔγϣϯʹ͍͓ͭͯ͠·͢
τϐοΫϞσϧͱ
τϐοΫϞσϧͱ w จॻ͕ෳͷજࡏతͳτϐοΫ͔Β֬తʹੜ͞ΕΔͱԾఆͨ͠Ϟσϧ ʢจॻͷ֤୯ޠ͋ΔτϐοΫ͕࣋ͭ֬ʹैͬͯग़ݱ͢ΔͱԾఆʣ w ͜͜Ͱ͍͏ʮτϐοΫʯͱͷओͷ͜ͱͰɺಉ͡ʹ͍͍ͭͯͯ͠ ͯɺਓʹΑͬͯղऍ͕มΘΔ͜ͱ͕͋Δ w ༗໊ͳͷͩͱҎԼͷΑ͏ͳख๏͕͋Δ w
-4*ʢ-BUFOU4FNBOUJD*OEFYʣ w 1-4*ʢ1SPCBCJMJTUJD-BUFOU4FNBOUJD*OEFYJOHʣ w -%"ʢ-BUFOU%JSJDIMFU"MMPDBUJPOʣ
τϐοΫϞσϧͱ 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Τϯλϝ ͱ͍ͬͨղऍਓ͕͓ؒ͜ͳ͏ඞཁ͕͋Δ
τϐοΫϞσϧΛ׆༻ͨ͠Ϩίϝϯσʔγϣϯ τϐοΫϞσϧͷఆੑධՁ͔ΒϨίϝϯσʔγϣϯͷԠ༻
ͳͥτϐοΫϞσϧΛ͓͏ͱࢥ͔ͬͨ w ϚϚϦͰ݄ؒͰສ݅΄Ͳͷ2"͕ߘ͞Ε͍ͯΔ w ྫ͑ۙϲ݄ͷσʔλΛਪનରͱͯ͠ɺਪનର͕͔݅ͳΓଟ͍ w Ϣʔβʔͷͬ͘͟Γͨ͠ᅂΛਪఆͰ͖Εɺਪનରͷ࣭Λ͋Δఔߜͬ ্ͨͰɺ࠷ޙʹϥϯΩϯά͚ͯ͠Ϩίϝϯσʔγϣϯ͢Δɺͱ͍ͬͨ͜ͱ͕ Ͱ͖Δ ˠ:PV5VCFͳͲͰ̎ஈ֊ͷਪનγεςϜΛߏங͍ͯ͠Δͱ͍ͬͨจʢ˞ʣ
˞IUUQTSFTFBSDIHPPHMFQVCTQVC
ͳͥτϐοΫϞσϧΛ͓͏ͱࢥ͔ͬͨ w ϢʔβʔͷᅂΛਪఆͰ͖ΔσʔλͷͭʹʮΧςΰϦʯ͕͋Δ ˠྫ͑ʮࢠҭͯʯΧςΰϦΛΑ͘Έ͍ͯΔϢʔβʔʮࢠҭͯʯʹڵຯ͕͋Δͱ ਪఆͰ͖Δ w ͔͠͠ɺಉ͡ΧςΰϦͰߘ͞ΕΔ༰ҟͳ͍ͬͯΔ͜ͱ͕ଟ͍ ˠԼهͲͪΒʮࢠҭͯʯΧςΰϦʹߘ͞Ε࣭͕ͨͩໟ৭͔ͳΓҧ͏ɻ lͲͷΧςΰϦͷ࣭ΛΑ͘Έ͍ͯΔ͔z͚ͩͰɺϢʔβʔ͕ͲΜͳ͜ͱʹΜͰ͍ Δͷ͔ਪఆ͢Δͷࠔ
ͳͥτϐοΫϞσϧΛ͓͏ͱࢥ͔ͬͨ w ϢʔβʔͷᅂΛਪఆͰ͖ΔσʔλͷͭʹʮΧςΰϦʯ͕͋Δ ˠྫ͑ʮࢠҭͯʯΧςΰϦΛΑ͘Έ͍ͯΔϢʔβʔʮࢠҭͯʯʹڵຯ͕͋Δͱ ਪఆͰ͖Δ w ͔͠͠ɺಉ͡ΧςΰϦͰߘ͞ΕΔ༰ҟͳ͍ͬͯΔ͜ͱ͕ଟ͍ ˠԼهͲͪΒʮࢠҭͯʯΧςΰϦʹߘ͞Ε࣭͕ͨͩໟ৭͔ͳΓҧ͏ɻ lͲͷΧςΰϦͷ࣭ΛΑ͘Έ͍ͯΔ͔z͚ͩͰɺϢʔβʔ͕ͲΜͳ͜ͱʹΜͰ͍ Δͷ͔ਪఆ͢Δͷࠔ
τϐοΫϞσϧͰϢʔβʔͷᅂΛ ਪఆͰ͖Δ͔ੳͯ͠Έͨ
τϐοΫϞσϧͷఆੑνΣοΫᶃ w -%"Λ༻͍ͯϞσϦϯάΛ࣮ࢪ w τϐοΫ$PIFSFODFͱ1FSQMFYJUZͷ͔Β ܭࢉͯ͠ઃఆ w ࠨਤҰ෦Λൈਮͨ͠ͷ͕ͩɺྑ͍ײ͡ʹτϐ οΫׂ͕͞Ε͍ͯΔ͜ͱ͕ఆੑతʹஅͰ͖Δ ྫɿ
ɹ5PQJDɿ͓ۚ 5PQJDɿอҭԂɾ༮ஓԂ 5PQJDɿίϩφ 5PQJDɿॅ·͍
τϐοΫϞσϧͷఆੑνΣοΫᶄ w Կਓ͔ͷϢʔβʔΛαϯϓϦϯάͯ͠ఆੑతʹσʔλΛੳ w Լهɺ͋ΔϢʔβʔͷ࣭ӾཡϩάΛ༻͍ͨڵຯτϐοΫͷભҠΛද͍ͯ͠Δ ˠτϐοΫʢग़࢈ʣ݄ޙʹ͚ͯӈݞ্͕ΓͰɺ͕ϐʔΫ ˠτϐοΫʢ௨Ӄʣ͕ɺ݄಄ͱޙʹߴ͍Λ͚͍ͭͯΔ
τϐοΫϞσϧͷఆੑνΣοΫᶄ w Կਓ͔ͷϢʔβʔΛαϯϓϦϯάͯ͠ఆੑతʹσʔλΛੳ w Լهɺ͋ΔϢʔβʔͷ࣭ӾཡϩάΛ༻͍ͨڵຯτϐοΫͷભҠΛද͍ͯ͠Δ ˠτϐοΫʢग़࢈ʣ݄ޙʹ͚ͯӈݞ্͕ΓͰɺ͕ϐʔΫ ˠτϐοΫʢ௨Ӄʣ͕ɺ݄಄ͱޙʹߴ͍Λ͚͍ͭͯΔ
τϐοΫϞσϧͷఆੑνΣοΫᶄ w ࠓճͷϢʔβʔ݄ʹग़࢈Λ߇͍͑ͯͨͷͰɺͦΕʹ߹Θͤͯ ग़࢈τϐοΫͷ࣭ΛݟΔΑ͏ʹͳ͍ͬͯͬͨՄೳੑ͋Γͦ͏ ˠʮʢग़࢈ʣɺʢ௨Ӄʣʯ͋ͨΓͷτϐοΫʹڵຯ͕͋Δͱ͍͏͜ͱɺఆੑత ʹஅͯ͠ѱ͘ͳ͍ w ͜ͷΑ͏ͳ͜ͱΛෳϢʔβʔͰ܁Γฦ͠ɺఆੑతʹஅ ݄ʹग़࢈͍ͯ͠Δ ग़࢈τϐοΫ
௨ӃτϐοΫ ௨ӃτϐοΫ
τϐοΫϞσϧͷఆੑνΣοΫᶄ w ࠓճͷϢʔβʔ݄ʹग़࢈Λ߇͍͑ͯͨͷͰɺͦΕʹ߹Θͤͯ ग़࢈τϐοΫͷ࣭ΛݟΔΑ͏ʹͳ͍ͬͯͬͨՄೳੑ͋Γͦ͏ ˠʮʢग़࢈ʣɺʢ௨Ӄʣʯ͋ͨΓͷτϐοΫʹڵຯ͕͋Δͱ͍͏͜ͱɺఆੑత ʹஅͯ͠ѱ͘ͳ͍ w ͜ͷΑ͏ͳ͜ͱΛෳϢʔβʔͰ܁Γฦ͠ɺఆੑతʹஅ ݄ʹग़࢈͍ͯ͠Δ ग़࢈τϐοΫ
௨ӃτϐοΫ ௨ӃτϐοΫ ఆੑతʹྑͦ͞͏ ˠϨίϝϯσʔγϣϯʹ׆༻ͯ͠ΈΔ
τϐοΫϞσϧΛ׆༻ͨ͠Ϩίϝϯσʔγϣϯ
τϐοΫϞσϧΛ׆༻ͨ͠Ϩίϝϯσʔγϣϯ
τϐοΫϞσϧΛ׆༻ͨ͠Ϩίϝϯσʔγϣϯ w ߦྻղ3BUJOHߦྻΛVTFSͷಛྔߦྻʢ1ʣͱJUFNͷಛྔߦྻ ʢ2ʣʹղ͢Δख๏ w ྫ͑ɺNਓͷϢʔβʔͱOݸͷΞΠςϜΛߟ͑ͨͱ͖ʹɺNLͰ ͋ΔL࣍ݩʹ࣍ݩݮͯ͠ม͢Δ͜ͱΛతͱ͢Δ
τϐοΫϞσϧΛ׆༻ͨ͠Ϩίϝϯσʔγϣϯ 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ͷಛϕΫτϧͷੵ
݁Ռ
݁Ռ w τϐοΫϞσϧΛ׆༻ͨ͠ϨίϝϯσʔγϣϯͷϦϦʔεͨ݁͠Ռɺ ϦϦʔεલޙฏۉͰ্🎉 ʢݱࡏ"#ςετதʣ ϦϦʔε ϦϦʔεલޙͷ 10ؒฏۉ U
݁Ռ w τϐοΫϞσϧΛ׆༻ͨ͠ϨίϝϯσʔγϣϯͷϦϦʔεͨ݁͠Ռɺ ϦϦʔεલޙฏۉͰ্🎉 ʢݱࡏ"#ςετதʣ ϦϦʔε ϦϦʔεલޙͷ 10ؒฏۉ U χίχί🥰
·ͱΊ
·ͱΊ w Ϣʔβʔͷ࣭Ӿཡߦಈ͔ΒɺͦͷϢʔβʔͷڵຯؔ৺ͷ͋Δτϐ οΫΛਪఆͯ͠Έͨ݁Ռɺྑ͍݁Ռ͕ಘΒΕͨ ˠࣾʹੳ݁ՌΛڞ༗͠ɺࠓ·Ͱݟ͑ͯ͜ͳ͔ͬͨσʔλͷ ΓޱΛ։Ͱ͖ͨ w τϐοΫϞσϧΛ׆༻ͨ͠ϨίϝϯσʔγϣϯΛߦ͏͜ͱͰɺϕʔ εϥΠϯΑΓ΄Ͳͷվળ͕ݟࠐΊͨ🎉 w
Ϩίϝϯσʔγϣϯָ͍͠😆
࠷ޙʹ
.-ΤϯδχΞઈࢍืूதͰ͢ʂ🧑💻 ɾϥΠϑΠϕϯτ ϥΠϑελΠϧͷ՝ղܾΛ͢ΔαʔϏεʹڵຯ͕͋Δํ ɾػցֶशͷࣾձ࣮ ϓϩμΫτ։ൃʹڵຯͷ͋Δํ %.PSͦ͘ΊΜ܅ܦ༝PS8BOUFEMZܦ༝ͳͲ͝࿈བྷ͓͍ͪͯ͠·͢ʂ ΧδϡΞϧ໘ஊͰ͑ΒΕΔൣғͰͳΜͰ͑·͢ʂʢಛʹ४උ͍Γ·ͤΜʣ 5XJUUFSˠIUUQTUXJUUFSDPNUBLBQZ 8F`SF)JSJOH
ձࣾͱͯ͠ظ͞Ε͍ͯΔͰ͢ ֓ཁ ɹɾҰਓʹҰਓʹ࠷దԽ͞ΕͨใΛσʔλػցֶशΛ༻͍ͯఏڙ͢Δ ͳͥΔͷ͔ʁ ɹɾ୯ҰͷใΛϒϩʔυΩϟετ͢ΔͷͰͳ͘ɺͦΕͧΕͷՈʹدΓఴͬͨใΛఏڙ͢ΔͨΊ ɹɾΞηοτͰ͋ΔେྔͷඇߏԽσʔλΛ׆༻͢ΔͨΊ Ͳ͏Δͷ͔ʁʢऔΓΜͰ͍Δ͜ͱݕ౼͍ͯ͠Δ͜ͱʣ ɹɾϨίϝϯυΤϯδϯͷ։ൃ ɹɾʮ"DUJPOBCMFʯͳσʔλج൫ͷߏஙFUD
͓ΘΓ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ