機械学習を使った レコメンデーション / visit-recommendation2019

機械学習を使った レコメンデーション / visit-recommendation2019

様々な業界でレコメンデーションの実装を要求されることがあります。例えば、検索システム、メールの配信などです。
ウォンテッドリーでは、昨年からレコメンデーションチームを立ち上げ、機械学習を使ったレコメンデーションをリリースし、継続的に改善を行っています。
今回、レコメンデーションアルゴリズムの全体像と、ユーザエンゲージメントを良くするためのターゲットの設定の方法についてお話します。

こちらのブログを見るとより全体像が分かります。
https://www.wantedly.com/companies/wantedly/post_articles/169261

054f2cb2c449b357fc84ae88fb4be91c?s=128

Rei Kubonaga

June 19, 2019
Tweet

Transcript

  1. ©2019 Wantedly, Inc. ػցֶशΛ࢖ͬͨ Ϩίϝϯσʔγϣϯ Ϩίϝϯσʔγϣϯͷ࡞ΓํͱϢʔβΤϯήʔδϝϯτ PyData.Tokyo Meetup #20 Jun

    13, 2019 - Rei Kubonaga
  2. ©2019 Wantedly, Inc. !LVCPOBHBSFJ3FJ,VCPOBHB w 8BOUFEMZਓ໨ͷࣾһ w 8BOUFEMZ7JTJUͷ։ൃνʔϜͷϚωʔδϟʔ w ϨίϝϯσʔγϣϯνʔϜϦʔμʔͱͯ͠νʔϜͷ্ཱͪ͛Λߦ͏

    w .-ΤϯδχΞͰ͸ͳ͘ɺ.-ͷϓϩμΫτ׆༻Λߟ͑Δਓ ࣗݾ঺հ
  3. ©2019 Wantedly, Inc. Wantedly Visit ࢲͨͪͷϓϩμΫτ!ձࣾ๚໰αʔϏε

  4. ©2019 Wantedly, Inc. ϨίϝϯσʔγϣϯΛ࢖͍ͬͯΔ৔ॴ Ϣʔβը໘Ͱ͸ɺΞϓϦΛ։͘ͱ࠷ॳʹදࣔ͞ΕΔը໘ͷ ϨίϝϯσʔγϣϯΛ։ൃ͍ͯ͠·͢ɻ ʮ͓͢͢ΊͷืूʯʮϑΟϧλϦϯάʯʮΩʔϫʔυݕࡧʯ ͱͦΕͧΕҟͳΔΞϧΰϦζϜͰ࣮૷͍ͯ͠·͢ɻ ఆ఺؍ଌ͍ͯ͠Δࢦඪͱͯ͠͸ɺ ʮืू͕දࣔ͞Ε͔ͯΒɺ࿩Λฉ͖ʹߦׂ͘߹ʯ

    ͳͲݟ͍ͯ·͢ɻ ࠷ॳͷ ͓͢͢Ίืू ϑΟϧλϦϯ ά Ωʔϫʔυ ݕࡧ
  5. ©2019 Wantedly, Inc. ࠓ೔࿩͠Λ͢Δ͜ͱ ืूΛද͔ࣔͯ͠Βɺ࿩Λฉ͖ʹߦׂ͘߹ͷਪҠ (2017೥3݄͔Β2019೥5݄ɻ2017೥3݄Λ100%ͱ͍ͯ͠Δ) 2೥લʹɺϨίϝϯσʔγϣϯνʔϜΛൃ଍͠ɺ ػցֶशΛ࢖ͬͨϨίϝϯσʔγϣϯΛ௨ͯ͡ɺ ϢʔβମݧΛେ͖͘վળ͠·ͨ͠ɻ ࣮ࡍɺʮืूΛද͔ࣔͯ͠Βɺ࿩Λฉ͖ʹߦ֬͘཰ʯͱ͍

    ͏ॏཁͳࢦඪ͕2ഒҎ্ʹվળ͠·ͨ͠ɻ ೥݄ͱൺֱ ͯ͠ͷվળ /FX "MHPSJUIN /FX "MHPSJUIN /FX "MHPSJUIN /FX "MHPSJUIN /FX "MHPSJUIN
  6. ©2019 Wantedly, Inc. 1. Ϩίϝϯσʔγϣϯͷ࡞Γํ 2. Ϩίϝϯσʔγϣϯͷ೉͠͞ 3. ϢʔβΤϯήʔδϝϯτͷܾΊํ ໨࣍

  7. ©2019 Wantedly, Inc. 1. Ϩίϝϯσʔγϣϯͷ࡞Γํ

  8. ©2019 Wantedly, Inc. Ϩίϝϯσʔγϣϯͷख๏ ڠௐϑΟϧλϦϯά ίϯςϯπϕʔε ϑΟϧλϦϯά

  9. ©2019 Wantedly, Inc. ಉ͡Α͏ͳߦಈΛ͍ͯ͠ΔਓͷΞΠςϜΛਪન • AࣾͱBࣾʹԠื͍ͯ͠Δਓ͕ଟ͍ͳΒɺAࣾʹԠืͨ͠ΒBࣾΛਪન͢Δ ڠௐϑΟϧλϦϯά V V "

    #
  10. ©2019 Wantedly, Inc. ಉ͡Α͏ͳଐੑΛ͍࣋ͬͯΔΞΠςϜ͕ਪન • AࣾͰ࢖ΘΕ͍ͯΔΩʔϫʔυΛ͍࣋ͬͯΔϢʔβʹAࣾΛਪન͢Δ ίϯςϯπϕʔεϑΟϧλϦϯά V V "

    # ιϑτ΢ΣΞΤϯδχΞ glangͱRuby͕޷͖ ΠϯϑϥΤϯδχΞ kubernetesͷӡ༻Λߦ͍ͬͯ·͢ golangͰϚΠΫϩαʔϏε࡞Γ͍ͨਓืूத GCP্Ͱkubernetes࢖͍͍ͨΤϯδχΞืूத
  11. ©2019 Wantedly, Inc. ػցֶशΛ࢖ͬͨϨίϝϯσʔγϣϯ .-NPEFM Ϣʔβͷߦಈσʔλ Ϣʔβͷσʔλ ΞΠςϜͷσʔλ Ϣʔβ Τϯήʔδϝϯτ

    είΞ σʔλ λʔήοτ
  12. ©2019 Wantedly, Inc. σʔλλΠϓ Ϣʔβͷߦಈσʔλ ɾInteraction (ΞΠςϜʹରͯ͠ɺӾཡɺΫϦοΫɺϒοΫϚʔΫͳͲ) ɾInteger (ΞΫηε਺, ࠷ऴΞΫηε೔ͳͲ)

    Ϣʔβ / ΞΠςϜͷσʔλ ɾInteger (બ୒͍ͯ͠Δ৬छɺ೥ྸͷൣғ, ϒοΫϚʔΫ਺ͳͲ) ɾBoolean (Ԡื͔ͨ͠ɺ࠷ۙొ࿥͔ͨ͠ɺֶੜ͔ɺΞϓϦΛ࢖͍ͬͯΔ͔) ɾText (ืूཁ߲ɺࣗݾ঺հɺֶྺɺ৬ྺ) ɾImage (ืूͷը૾ɺϓϩϑΟʔϧը૾)
  13. ©2019 Wantedly, Inc. ϢʔβΤϯήʔδϝϯτείΞ αʔϏεʹର͢ΔѪணΛද͢είΞ ɾϢʔβɺΞΠςϜ͝ͱʹɺϢʔβΤϯήʔδϝϯτΛͲͷ͘Β͍ߴΊΒΕΔ͔දͨ͠είΞ Ϣʔβମݧͷ࣭Λఆٛ͢Δࢦඪ ɾΑ͘ΫϦοΫ͞ΕΔɺΑ͘Ԡื͞ΕΔɺ௕͘࢖ͬͯ͘ΕΔɺසൟʹ࢖ͬͯ͘ΕΔͳͲ λʔήοτ͸Τϯήʔδϝϯτʹ૬͕ؔ͋Δ਺ ɾΫϦοΫ͞ΕΔ͜ͱʹΑͬͯɺΤϯήʔδϝϯτ͕ඞͣ͠΋ߴ͘ͳΔΘ͚Ͱ͸ͳ͍

  14. ©2019 Wantedly, Inc. ML model σʔλͱλʔήοτ͕ܾ·ΔͱֶशͰ͖Δ ɾLightGBMͷΑ͏ͳBoosting΋ར༻Ͱ͖Δ ɾNNΛར༻͍ͯ͘͜͠ͱ΋Ͱ͖Δ σʔλλΠϓʹΑͬͯར༻ํ๏͕มΘΔ ɾInteger΍Boolean͸ͦͷ··ར༻Մೳ

    ɾInteraction, Text, Image͸ࣄલʹॲཧ͕ඞཁ
  15. ©2019 Wantedly, Inc. ػցֶश͠΍͍͢ܗʹσʔλΛ੔ܗ .-NPEFM Ϣʔβͷಛ௃ ΞΠςϜͷಛ௃ ΫΤϦͷಛ௃ ૊Έ߹Θͤͨಛ௃ Ϣʔβ

    Τϯήʔδϝϯτ είΞ (SBQI 1SPDFTTJOH /-1 Ϣʔβͷߦಈσʔλ Ϣʔβͷଐੑ ΞΠςϜͷଐੑ Interaction data Text Integer, Boolean Feature Data Target
  16. ©2019 Wantedly, Inc. ޙ͸ؤுΕ͹׬੒ ͱ؆୯ʹ͸͍͖·ͤΜɻɻ

  17. ©2019 Wantedly, Inc. 2. Ϩίϝϯσʔγϣϯͷ೉͠͞

  18. ©2019 Wantedly, Inc. 1. ϢʔβΤϯήʔδϝϯτͬͯͳʹʁ • Ϣʔβͷਖ਼ղͷߦಈΛఆٛ͢Δ͜ͱ͸೉͍͠ɻࣗ෼͕ೖΔ΂͖ձࣾͷείΞΛ͚ͭΒΕ·͔͢ʁ 2. ΦϑϥΠϯςετͷ೉͠͞ •

    ৽͍͠ฒͼॱʹͨ͠ͱ͖ͷϢʔβΤϯήʔδϝϯτ͸෼͔Βͳ͍ 3. Ϣʔβ*ΞΠςϜ*ΫΤϦͷείΞܭࢉͷྔʂ • ਺ඦສ*਺ສ*਺ສ=਺ඦஹɻࣄલʹ४උͰ͖Δྔ͡Όͳ͍ɻΦϯϥΠϯͰ਺ສճpredictͰ͖ͳ͍ Ϩίϝϯσʔγϣϯͷ೉͠͞
  19. ©2019 Wantedly, Inc. 1. ϢʔβΤϯήʔδϝϯτͷ׬ᘳ͞ΛࣺͯΔ • ਖ਼͘͠ػցֶशͰ͖ΔείΞ͸ͳʹ͔ʁͱ͍͏ج४ͰείΞΛબͿɻৗʹมΘΔՄೳੑ͋Δ 2. ΦϑϥΠϯςετͷ׬ᘳ͞ΛࣺͯΔ •

    ৽͍͠ฒͼॱʹͨ࣌͠ʹࠓ͋ΔσʔλͰධՁ͢ΔͳΒͲ͏͢Δ͔ 3. ϚϧνεςʔδͰֶश͢Δ • ࠷ॳͷ10݅͸ෳࡶͳֶशɺ࣍ͷ100݅͸଎ֶ͍शͱ͍ͬͨΑ͏ʹɺཁ݅ʹ߹Θͤͯਫ਼౓Λม͑Δ Ϩίϝϯσʔγϣϯͷ೉͍͠ϙΠϯτͷղܾํ๏
  20. ©2019 Wantedly, Inc. 3. ϢʔβΤϯήʔδϝϯτͷܾΊํ

  21. ©2019 Wantedly, Inc. ϢʔβΤϯήʔδϝϯτείΞ αʔϏεʹର͢ΔѪணΛද͢είΞ ɾϢʔβɺΞΠςϜ͝ͱʹɺϢʔβΤϯήʔδϝϯτΛͲͷ͘Β͍ߴΊΒΕΔ͔දͨ͠είΞ Ϣʔβମݧͷ࣭Λఆٛ͢Δࢦඪ ɾΑ͘ΫϦοΫ͞ΕΔɺΑ͘Ԡื͞ΕΔɺ௕͘࢖ͬͯ͘ΕΔɺසൟʹ࢖ͬͯ͘ΕΔͳͲ ਪનͰ࢖͏ͷ͸Τϯήʔδϝϯτʹ૬͕ؔ͋Δ਺ ɾΫϦοΫ͞ΕΔ͜ͱʹΑͬͯɺΤϯήʔδϝϯτ͕ඞͣ͠΋ߴ͘ͳΔΘ͚Ͱ͸ͳ͍

  22. ©2019 Wantedly, Inc. ΤϯήʔδϝϯτͷϥΠϑαΠΫϧ /FX 6TFS "DUJWF6TFS %PSNBOU6TFS Acquisition Activation

    Disengagement Disengagement Re-engagement Churn
  23. ©2019 Wantedly, Inc. Activeͷఆٛͱ͸ʁ /FX 6TFS "DUJWF6TFS %PSNBOU6TFS Acquisition Activation

    Disengagement Disengagement Re-engagement Churn Endurability ϢʔβͷৼΔ෣͍Ͱఆٛ ࢖͍ଓ͚͍ͯΔظؒΛܾΊͯ Active͔Ͳ͏͔൑அ͢Δ
  24. ©2019 Wantedly, Inc. ΤϯήʔδϝϯτΛܾΊΔํ๏ ΠϯλϏϡʔ αʔϕΠ ΧελϚʔδϟʔχʔ FUD ΦϯϥΠϯ ෼ੳ

    ɾఆྔత ɾεέʔϧͯ͠ࢼͤΔ ɾϢʔβͷແҙࣝͷಈ͖ ɾ٬؍త ɾ୹ظత,௕ظత ɾఆੑ ɾ෦෼తʹߦ͏ ɾ࣮ݧதͷಈ͖ ɾओ؍త,٬؍త ɾ௕ظత
  25. ©2019 Wantedly, Inc. ΦϯϥΠϯͷ෼ੳͰߦ͏͜ͱ .FBTVSFNFOU .FUSJD ,1* αʔϏεͷதͰखʹೖΔ ఆྔతͳ஋ ɾӾཡ਺

    ɾӾཡ೔ ɾΫϦοΫ਺ Measurement͔Βܭࢉɾ෼ੳ ͠΍͍͢ܗʹ੔ܗͨ͠਺ࣈ ɾΫϦοΫ཰ ɾΞΫςΟϒϢʔβ ɾMRR/AUC/Precision/NDCG Business/Service্ͷ໨ඪʹରͯ͠ ॏཁͳӨڹΛ༩͑Δࢦඪ ɾϢʔβΤϯήʔδϝϯτείΞ ɾاۀͷܧଓ཰ɾARPU ɾ৽نϢʔβͷϦςϯγϣϯ཰ Measurement͔ΒMetricͱKPIΛܭࢉ͢Δ͜ͱ
  26. ©2019 Wantedly, Inc. Τϯήʔδϝϯτͷܭࢉྫ .FBTVSFNFOU .FUSJD ,1* ɾ͋ΔΞΠςϜͷӾཡ࣌ؒ ɾ͋ΔΞΠςϜΛදࣔͨ͠ॱ൪ ɾ͋ΔΞΠςϜͷΫϦοΫͨ࣌ؒ͠

    ɾ͋ΔΞΠςϜ΁ͷΞΫγϣϯ (ϒοΫϚʔΫɺԠื) ɾηογϣϯͷ࣌ؒ ɾηογϣϯதͷӾཡ਺ͱԠื਺ ɾ࠶๚໰ͨ࣌ؒ͠ ɾΫϦοΫ཰/ϒοΫϚʔΫ཰ ɾԠื཰/࠾༻཰ ɾMRR/AUC/nDCG (্Ґʹදࣔͨ͠΋ͷ͕ ΞΫγϣϯ͞Ε͔ͨ) ɾܧଓ཰ ɾར༻࣌ؒ ɾΞΠςϜΧόϨοδ (ಛఆͷاۀʹूதͯ͠ͳ͍͔) ɾϢʔβΤϯήʔδϝϯτείΞ ෳ਺ͷࢦඪΛ૊Έ߹ΘͤΔ ֶशʹ࢖͏Ϣʔβͷݶఆ΋ ߦͬͨ
  27. ©2019 Wantedly, Inc. Τϯήʔδϝϯτͷܭࢉྫ 5VOJOH &WBMVBUF 0OMJOF 5FTU Tuning ->

    Online Test -> EvaluateͷαΠΫϧΛΞϧΰϦζ Ϝ͚ͩͰͳ͘ɺϢʔβΤϯήʔδϝϯτείΞʹ͍ͭͯ΋ߦ ͏ ɾείΞࣗମͷ૊Έ߹Θͤํ͸ແݶɻৗʹਖ਼͍͠ղ͸ͳ͍ ɾΑΓΑ͍਺ࣈ͸ৗʹ͋Γɺඞͣ͠΋ෳࡶʹ͢Ε͹Α͍Θ ͚Ͱ͸ͳ͍ɻ(ΫϦοΫ࣌ؒ => ฏۉ, ۠ؒ, ࿈ଓ) ɾαʔϏεͷϑΣΠζʹΑͬͯ΋࠷దԽ͢Δ΋ͷ͸มΘΔ ɾΦϑϥΠϯͷςετͱΦϯϥΠϯͷςετ͕ಉ݁͡Ռ ͔ɺಛʹҟͳͬͨ࣌ʹཧ༝Λௐ΂Δ
  28. ©2019 Wantedly, Inc. • Ϩίϝϯσʔγϣϯʹ༷ʑͳػցֶशΛ࢖͏͜ͱ͕Ͱ͖Δ • ਐΊΔίπ͸ɺ׬ᘳ͞ΛٻΊͳ͍ɺࠓΑΓΑ͘͢Δ • λʔήοτ͸ɺ҆қʹΫϦοΫʹ͠ͳ͍ •

    ΞϧΰϦζϜ͚ͩͰͳ͘λʔήοτ΋ɺධՁ/෼ੳ/ݟ௚͠Λ͢Δ ·ͱΊ
  29. ©2019 Wantedly, Inc. ؔ࿈ͨ͠ϒϩά΋ॻ͍ͯ·͢ https://www.wantedly.com/companies/wantedly/post_articles/155593 https://www.wantedly.com/companies/wantedly/post_articles/169261

  30. ©2019 Wantedly, Inc. Mobile FrontendʗBackend Infrastructure New! We are hiring!!

    https://www.wantedly.com/companies/wantedly