なめらかなシステムの実現に向けて/coherently-fittable-system

 なめらかなシステムの実現に向けて/coherently-fittable-system

GMO Developers Day 2020
https://www.gmo.jp/developersday/

Cd3d2cb2dadf5488935fe0ddaea7938a?s=128

monochromegane

July 28, 2020
Tweet

Transcript

  1. ࡾ୐༔հ / Pepabo R&D Institute, GMO Pepabo, Inc. 2020.07.28 GMO

    Developers Day ͳΊΒ͔ͳγεςϜͷ ࣮ݱʹ޲͚ͯ
  2. 1SJODJQBMFOHJOFFS :VTVLF.*:",&!NPOPDISPNFHBOF 1FQBCP3%*OTUJUVUF (.01FQBCP *OD IUUQTCMPHNPOPDISPNFHBOFDPN

  3. 1. ͸͡Ίʹ 2. ͳΊΒ͔ͳγεςϜ 3. ͳΊΒ͔ͳγεςϜͷ࣮ݱʹ޲͚ͯ 4. ·ͱΊ 3 ໨࣍

  4. 1. ͸͡Ίʹ

  5. 5 ϖύϘݚڀॴ(ུশʮϖύݚʯ)͸ɺࣄۀΛࠩผԽ Ͱ͖Δٕज़Λ࡞Γग़ͨ͢ΊʹʮͳΊΒ͔ͳγες Ϝʯͱ͍͏ίϯηϓτͷԼͰݚڀ։ൃʹऔΓ૊Ή ૊৫Ͱ͢ɻ ❝ ϖύϘݚڀॴʹ͍ͭͯ http://rand.pepabo.com/

  6. 6 ΞΧσϛοΫͳਫ४ʹ͓͚Δ৽نੑɾ༗ޮੑɾ৴ པੑΛ௥ٻ͢ΔݚڀΛߦ͏ͱͱ΋ʹɺݚڀ։ൃ͠ ٕͨज़Λ࣮ࡍͷγεςϜͱ࣮ͯ͠૷ɾఏڙ͢Δ͜ ͱΛ௨ͯ͠ɺࣄۀͷ੒௕ʹߩݙ͠·͢ɻ ❝ ϖύϘݚڀॴʹ͍ͭͯ http://rand.pepabo.com/

  7. 7 ϖύݚͱαʔϏεͷؔ܎ ࣄۀΛࠩผԽ͢ΔͨΊʹ͸ɺݚڀॴͱαʔϏεͷ࿈ܞ͕ॏཁ ݚڀ ։ൃ ӡ༻ αʔϏεͷ՝୊ͷڞ༗ ݚڀʹΑΔ՝୊ղܾ ݚڀ੒Ռಋೖ࣌ͷ αʔϏεͱͷ࿈ܞ

    ݚڀ։ൃ݁ՌΛଈ࣌αʔϏεʹಋೖ͢Δ࢓૊ΈͱɺಋೖޙͷϑΟʔυόοΫʹΑΔαΠΫϧͷߴ ଎ԽʹΑͬͯɺݚڀ։ൃͷߴ౓ԽͱࣄۀͷࠩผԽʹͭͳ͛Δ ࣄۀ෦
  8. 2. ͳΊΒ͔ͳγεςϜ

  9. 9 ϖύϘݚڀॴ(ུশʮϖύݚʯ)͸ɺࣄۀΛࠩผԽ Ͱ͖Δٕज़Λ࡞Γग़ͨ͢ΊʹʮͳΊΒ͔ͳγες Ϝʯͱ͍͏ίϯηϓτͷԼͰݚڀ։ൃʹऔΓ૊Ή ૊৫Ͱ͢ɻ ❝ ϖύϘݚڀॴʹ͍ͭͯ http://rand.pepabo.com/

  10. • զʑ͕೔ৗͰ৮ΕΔγεςϜ͸ɺར༻΍ӡ༻ʹ͓͚Δ༷ʑͳোนʢΰπΰπʣ ʹຬͪ͋;Ε͍ͯΔɻ • → ྫʣར༻ऀͷ໌ࣔతͳࢦࣔɺӡ༻ऀͷ൑அ΍ߋ৽ͷհࡏ౳ 10 എܠ • ͜ΕΒͷোนΛऔΓআ͖ɺར༻΍ӡ༻ͷշద͞ͷ޲্ʹͭͳ͛ΔͨΊʹɺར༻

    ऀͷίϯςΩετʹج͖ͮ࠷దʹৼΔ෣͏ʮͳΊΒ͔ͳγεςϜʯΛ࣮ݱ͢ Δɻ
  11. • ʮͳΊΒ͔ͳγεςϜʯͱ͸ɺ৘ใγεςϜͷ͜ͱΛ͍͏ͷΈͳΒͣɺޓ͍ʹ ӨڹΛٴ΅͠߹͏ܧଓతͳؔ܎ʹ͋Δར༻ऀʢϢʔβʔ͓Αͼ։ൃӡ༻ऀʣͱ ৘ใγεςϜͱ͔ΒͳΔ૯ମͱͯ͠ͷγεςϜ 11 ͳΊΒ͔ͳγεςϜ <>܀ྛ݈ଠ࿠ ࡾ୐༔հ দຊ྄հ ͳΊΒ͔ͳγεςϜΛ໨ࢦͯ͠

    ϚϧνϝσΟΞɺ෼ࢄɺڠௐͱϞόΠϧʢ%*$0.0ʣγϯϙδ΢Ϝ # +VM < ><> < >υϛχΫɾνΣϯ(SBQIJDTGPS'VOEBNFOUBM*OGPSNBUJDTΛվมͯ͠࡞੒
  12. 1. ར༻ऀͱ৘ใγεςϜͱ͕ܧଓతͳؔ܎ΛऔΓ࣋ͭաఔʹ͓͍ͯɺར༻ऀͦ ΕͧΕʹݻ༗ͷίϯςΩετΛݟग़ͨ͠Γɺ৽ͨͳίϯςΩετΛ૑ग़ͨ͠ ΓͰ͖Δ͜ͱ 2. ཁ݅1.Λɺར༻ऀʹΑΔ໌ࣔతͳૢ࡞Λ՝͢͜ͱͳ࣮͘ݱͰ͖Δ͜ͱ 3. ཁ݅1.͓Αͼ2.ʹΑͬͯಘΒΕͨίϯςΩετʹج͖ͮɺ৘ใγεςϜ͕ར ༻ऀʹରͯ͠࠷దͳαʔϏεΛࣗಈతʹఏڙͰ͖Δ͜ͱ 12

    ͳΊΒ͔ͳγεςϜͷཁ݅ • ࣗಈ͔ͭܧଓతʹར༻ऀͷঢ়گΛ೺Ѳ͠ɺదԠతʹৼΔ෣͏৘ใγεςϜ
  13. • ͳΊΒ͔ͳγεςϜΛ࣮ݱ͢ΔͨΊɺ༷ʑͳαʔϏεɺϨΠϠʹ͓͍ͯҎԼͷ ςʔϚͷ΋ͱɺݚڀ։ൃΛਐΊ͍ͯΔ[*] • FastContainer: ൓ԠతͰঢ়ଶมԽͷૉૣ͍γεςϜج൫ٕज़ • ΦʔτεέʔϦϯά: ଟ؀ڥͰͷӡ༻ੑΛߟྀͨࣗ͠཯దԠܕ੍ޚܥ •

    ͳΊΒ͔ͳϚονϯά: จ຺ʹԠͨ͡ਪનख๏ͷ࠷దԽ • ߦಈݕ஌: ଟ໘తͳಛ௃ྔʹجͮ͘ਫ਼៛ͳߦಈ෼ੳ • ͳΊΒ͔ͳηΩϡϦςΟ: ಁաతͳηΩϡϦςΟ޲্Λ࣮ݱ͢Δ։ൃख๏ 13 ͳΊΒ͔ͳγεςϜʹ޲͚ͯ < >ϖύϘݚڀॴݚڀ։ൃ੒ՌIUUQTSBOEQFQBCPDPNBSDIJWF
  14. 3. ͳΊΒ͔ͳγεςϜͷ࣮ݱʹ޲͚ͯ

  15. ݚڀίϯηϓτ - ৘ใγεςϜͷࣗ཯దԠ -

  16. • ଟ༷͔ͭܧଓతʹมԽ͢Δ؀ڥͷதͰɺ৘ใγεςϜ͕ܧଓతʹػೳ͢Δʹ ͸ɺͦͷߏ੒΍ϩδοΫΛߋ৽͠มԽʹ௥ै͢Δඞཁ͕͋Δ • → ྫʣ৘ใγεςϜͷෛՙঢ়گɺར༻ऀͷߦಈͷมԽ౳ • ͜Ε·Ͱɺ͜ͷ௥ै͸ɺӡ༻ҡ࣋ۀ຿ͱͯ͠ӡ༻ऀ͕୲͖ͬͯͨ 16 ৘ใγεςϜͱ؀ڥมԽ

  17. • ଟ༷͔ͭܧଓతʹมԽ͢Δ؀ڥͷதͰɺ৘ใγεςϜ͕ܧଓతʹػೳ͢Δʹ ͸ɺͦͷߏ੒΍ϩδοΫΛߋ৽͠มԽʹ௥ै͢Δඞཁ͕͋Δ • → ྫʣ৘ใγεςϜͷෛՙঢ়گɺར༻ऀͷߦಈͷมԽ౳ • ͜Ε·Ͱɺ͜ͷ௥ै͸ɺӡ༻ҡ࣋ۀ຿ͱͯ͠ӡ༻ऀ͕୲͖ͬͯͨ 17 ৘ใγεςϜͱ؀ڥมԽ

    • ਓखʹΑΔ؀ڥͷมԽݕ஌΍৘ใγεςϜͷߋ৽͸ɺ௥ै΁ͷ࣌ؒࠩΛ൐͏ • ݁Ռͱͯ͠ɺ҆ఆੑ΍ར༻ऀͷຬ଍౓ͷ௿Լɺӡ༻ऀͷෛ୲ͷ૿ՃΛট͘
  18. • ैདྷͷӡ༻ҡ࣋ͷऔΓ૊ΈͰ͸ɺ৘ใγεςϜΛ؀ڥͷมԽʹରԠͤ͞Δͨ ΊɺਓʹΑΔܦݧଇ΍൑அͱ෦෼తͳࣗಈԽʹཹ·͍ͬͯΔ • → ྫʣܦݧଇʹΑΔᮢ஋ઃఆɺ਺஋Խͨ͠ར༻ऀͷߦಈୡ੒཰ʹΑΔ൑அ 18 ؀ڥมԽʹࣗΒదԠ͢Δ৘ใγεςϜʹ޲͚ͯ • ਓʹΑΔ൑அ΍ߋ৽ͷ޻ఔΛࣗಈԽ͠ɺ৘ใγεςϜࣗମ͕؀ڥมԽΛଊ͑ม

    Խʹ௥ै͢ΔదԠతͳ࢓૊Έͷݚڀ • ͳΒͼʹ࣮ӡ༻΁ͷద༻ ݚڀίϯηϓτ
  19. ΦʔτεέʔϦϯάख๏

  20. • ৘ใγεςϜͷӡ༻ʹ͓͍ͯɺॲཧੑೳΛอͪͭͭඞཁ࠷খݶͷαʔόΛ༻͍ Δ͜ͱͰӡ༻ίετΛ੍ޚ͢Δ͜ͱ͸ॏཁ • มಈ͢Δαʔόधཁʹ௥ै͢ΔͨΊΦʔτεέʔϦϯάػೳΛಋೖ 20 എܠ • ॲཧੑೳΛอͭඞཁ࠷খݶͷαʔό୆਺͸ܦݧͱ஍ಓͳνϡʔχϯάͰݸผʹ ٻΊΔ͕ɺ৘ใγεςϜͷมߋ΍؅ཧର৅ͷ૿Ճʹै͍ࠔ೉ʹͳΔ

    • ·ͨɺ୆਺ͷࢉग़ʹ͸ΦʔτεέʔϦϯάͷ࣮ߦ࣌ͷ࣌ؒࠩͷߟྀ΋ඞཁ ӡ༻্ͷ՝୊
  21. • ܧଓతʹมߋ͞Ε͏Δෳ਺ͷ৘ใγεςϜʹରͯ͠ɺ஗Ε΋ߟྀͨ͠Φʔτε έʔϦϯάͷ࠷దͳ৚݅Λܧଓͯ͠ٻΊΔ͜ͱ͕ӡ༻ͷෛ୲ • ৘ใγεςϜΛߏ੒͢ΔαʔόͷॲཧੑೳΛࣗಈͰ೺Ѳ͠ɺ৘ใγεςϜͷॲ ཧੑೳΛอͭඞཁ࠷খݶ͔ͭ஗ΕΛߟྀͨ͠αʔό୆਺Λࢉग़͍ͨ͠ • αʔόͷॲཧੑೳΛ࣮ߦ࣌ʹࣗಈ͔ͭܧଓతʹਪఆ͠ɺΦʔτεέʔϦϯάͷ ஗Ε΋ߟྀͨ͠࠷దͳαʔό਺Λࢉग़͢Δ੍ޚܥ 21

    ݚڀͷ໨తͱఏҊͷࠎࢠ
  22. • ଟ؀ڥͰͷӡ༻ੑΛߟྀͨࣗ͠཯దԠܕΦʔτεέʔϦϯά੍ޚܥ[2] 22 ఏҊख๏ (Kaburaya AutoScaler) <>ࡾ୐༔հ ܀ྛ݈ଠ࿠ ,BCVSBZB"VUP4DBMFSଟ؀ڥͰͷӡ༻ੑΛߟྀͨࣗ͠཯దԠܕΦʔτεέʔϦϯά੍ޚܥ Πϯλʔωο

    τͱӡ༻ٕज़γϯϙδ΢Ϝ࿦จू  QQ /PW
  23. • ଟ؀ڥͰͷӡ༻ੑΛߟྀͨࣗ͠཯దԠܕΦʔτεέʔϦϯά੍ޚܥ • M: αʔόॲཧੑೳΛɺ୯Ґ࣌ؒ͋ͨΓͷॲཧ਺ͷ্ݶ͔ΒٻΊΔ • D: ༧ΊఆΊͨ஗Εظؒʹର͠ɺݱࡏͷཁٻॲཧ਺ͱαʔόॲཧੑೳ͔Βෆ ଍͢Δͱߟ͑ΒΕΔະॲཧཁٻ਺ΛٻΊΔ •

    F: ݱࡏͷॲཧཁٻ਺ʹະॲཧཁٻ਺ΛՃ͑ɺαʔόॲཧੑೳ͔Βඞཁͳ αʔό୆਺Λࢉग़ 23 ఏҊख๏ (Kaburaya AutoScaler)
  24. 24 ఏҊख๏ͷධՁʢγϛϡϨʔγϣϯʣ αʔόੑೳʢॲཧ਺্ݶʣͷਪఆධՁ ௿ෛՙ࣌΍Ұ࣌తʹαʔό͋ͨΓͷෛՙ͕ߴ·Δෛ ՙ૿Ճ࣌Ͱ΋҆ఆͯ͠ਪఆʢ࣮ઢʣɻ αʔό୆਺ͷ௥ैੑධՁ ੨ઢͷཧ૝αʔό਺ʹ௥ैɻ஗ΕΛߟྀ͠ɺ૝ఆ͞ ΕΔະॲཧͷཁٻ਺ΛॲཧՄೳͳαʔό਺Λ౤ೖɻ ະॲཧཁٻ਺ͷղফ݁ՌͷධՁ ஗ΕʹΑΓ஝ੵ࣮ͨ͠ઢͷະॲཧཁٻΛଈ࣌ղফɻ

    ഁઢ͸஗ΕରࡦΛ͠ͳ͍৔߹ͷਪҠɻ
  25. ਪનγεςϜ

  26. 26 എܠ • ৘ใγεςϜʹ͓͚Δ৘ใաଟ໰୊Λղܾ͢ΔɺਪનγεςϜͷಋೖ • → ͳΜΒ͔ͷํࡦʢ= ਪનख๏ʣʹج͖ͮଟ਺ͷબ୒ࢶ͔Βར༻ऀ͕ڵຯ Λ࣋ͭ΋ͷΛఏҊ͢ΔγεςϜ •

    ӡ༻ऀʹͱͬͯɺޮՌతͳʮਪનख๏ʯͷબ୒͕ॏཁ • ޮՌతͳਪનख๏͸ঢ়گʹΑͬͯҟͳΔ • ͔͠͠ͳ͕Βɺ࣮؀ڥͰͷܧଓతͳਪનख๏ͷධՁʹ͸ػձଛࣦ͕൐͏ ӡ༻্ͷ՝୊
  27. • ਪનख๏ͷ༏ྼ͸ଟ͘ͷཁҼ͔ΒͳΔঢ়گʢ=จ຺ʣʹΑͬͯࠨӈ͞ΕΔ • ޮՌతͳਪનख๏Λػձଛࣦ͕ͳ͍Α͏ʹจ຺ʹԠͯ͡࢖͍෼͚͍ͨ • ࣄલʹఆΊͨจ຺͝ͱʹਪનख๏ͷબ୒Λࣗಈ͔ͭܧଓతʹ࠷దԽ͢Δ ϝλਪનγεςϜ • → ࠷ળͳਪનख๏ͷબ୒Λଟ࿹όϯσΟοτ໰୊ͱΈͳͯ͠ղ͘

    27 ݚڀͷ໨తͱఏҊͷࠎࢠ
  28. • ʮ࿹ʯͱݺ͹ΕΔෳ਺ͷީิ͔ΒಘΒΕΔใुΛ࠷େԽ͢Δ໰୊ • ϓϨΠϠʔ͸Ұ౓ͷࢼߦͰ1ͭͷ࿹Λબ୒͠ɺใुΛಘΔ • ͦΕͧΕͷ࿹͸͋Δใु෼෍ʹै͍ใुΛੜ੒ • ͨͩ͠ɺϓϨΠϠʔ͸͜ͷใु෼෍Λࢼߦͷ݁Ռ͔Βਪଌ͢Δඞཁ͕͋Δ 28 ଟ࿹όϯσΟοτ໰୊

    • ϓϨΠϠʔ͸͋Δ࣌఺ͷ࿹ͷධՁʹج͖ͮʮ׆༻ʯͱʮ୳ࡧʯΛฒߦͯ͠ߦ͏ • ͜ͷτϨʔυΦϑΛղফ͢ΔͨΊʹ༷ʑͳղ๏͕ఏҊ͞Ε͍ͯΔ
  29. ଟ࿹όϯσΟοτ໰୊ͱ࿹ͷใुͷ֬཰෼෍ 29 Arm0 Arm1 Arm2 User(s) System ਪఆͨ֬͠཰෼෍ ਅͷ֬཰෼෍ Recommend

    Click
  30. • จ຺͝ͱʹਪનख๏ͷબ୒Λࣗಈ͔ͭܧଓతʹ࠷దԽ͢ΔϝλਪનγεςϜ[3] • จ຺͝ͱͷ࠷ળͳબ୒Λɺઢܗͳଟ࿹όϯσΟοτ໰୊ͷղ๏Ͱ͋Δ Linear Thompson SamplingΛ༻͍ͯղ͘ • จ຺ͱͯ͠ɺᶃ৘ใγεςϜͷ࣌ؒͷܦաɺᶄਪનର৅ͷ঎඼ಛੑͷࠩҟΛ ѻ͏

    • จ຺͝ͱʹબ୒ͨ͠ਪનख๏ͱ͜Εʹର͢Δར༻ऀͷ൓ԠΛه࿥͠ɺબ୒ ͷվળʹ༻͍Δ 30 ఏҊγεςϜ (Synapse) <>ࡾ୐༔հ ็߃ݑ 4ZOBQTFจ຺ʹԠͯ͡ܧଓతʹਪનख๏ͷબ୒Λ࠷దԽ͢ΔਪનγεςϜ ిࢠ৘ใ௨৴ֶձ࿦จࢽ%  7PM+% /P QQ /PW UPBQQFBS
  31. 31 ఏҊγεςϜ (Synapse)

  32. • ࣮αʔϏεͷӡ༻σʔλΛ༻͍ͨγϛϡϨʔγϣϯʹ͓͍ͯɺจ຺Λߟྀ͠ͳ ͍΋ͷͱൺֱͯ͠ɺྦྷੵΫϦοΫ਺͕໿2%޲্͢Δ͜ͱΛ֬ೝ[3] • ֘౰γεςϜ͸࣮αʔϏεͰՔಇɾܧଓతʹධՁத • ࠓޙ͸ɺऔΓѻ͑Δจ຺ɺਪનख๏Λ޿͍͛ͯ͘[4][5] • ߹Θͤͯɺ؀ڥมԽ΁ͷ௥ैੑΛ޲্͍ͤͯ͘͞[6] 32

    ఏҊγεςϜͷධՁ <>ࡒ௡େՆɼࡾ୐༔հɼ&$αΠτʹ͓͚ΔӾཡཤྺΛ༻͍ͨߪങʹܨ͕ΔߦಈͷมԽݕग़ɼݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ *05 ɼ WPM*05ɼQQrɼ <>໺ଜ޸໋ɼࡾ୐༔հɼϋϯυϝΠυ࡞඼Λର৅ͱͨ͠&$αΠτʹ͓͚Δ୯ޠͷग़ݱස౓Λ༻͍ͨك᧵඼ͷݕग़ɼݚڀใࠂΠϯλʔ ωοτͱӡ༻ٕज़ *05 ɼWPM*05ɼQQrɼ <>ࡾ୐༔հɼ܀ྛ݈ଠ࿠ɼඇఆৗͳଟ࿹όϯσΟοτ໰୊ʹ͓͚ΔมԽݕग़ΞϓϩʔνͷઢܗϞσϧ΁ͷ֦ுɼݚڀใࠂΠϯλʔωο τͱӡ༻ٕज़ *05 ɼWPM*05ɼQQrɼ+VMZ
  33. 4. ·ͱΊ

  34. • ར༻ऀͷίϯςΩετʹج͖ͮ࠷దʹৼΔ෣͏ʮͳΊΒ͔ͳγεςϜʯΛ঺հ ͨ͠ • ͜ͷ࣮ݱʹ޲͚ͨݚڀࣄྫͱͯ͠ɺଟ؀ڥͰͷӡ༻ੑΛߟྀͨ͠Φʔτεέʔ Ϧϯά੍ޚܥΛ঺հͨ͠ • ݚڀͳΒͼʹαʔϏε΁ͷಋೖࣄྫͱͯ͠ɺจ຺ʹԠͨ͡ਪનख๏ͷ࠷దԽΛ ߦ͏ਪનγεςϜΛ঺հͨ͠ •

    ࠓޙ͸ɺ͜ΕΒΛؚΊͨݚڀ։ൃͷҰ૚ͷൃలΛ௨ͯ͠ʮͳΊΒ͔ͳγες ϜʯΛ࣮ݱ͍ͯ͘͠ 34 ·ͱΊ
  35. ݚڀһɺੵۃతʹืूதʂ https://rand.pepabo.com/

  36. ิ଍ࢿྉ

  37. • ࿹͝ͱʹෳ਺ͷจ຺͕͋Γɺจ຺ʹԠͯ͡ใु෼෍͕ܾ·Δଟ࿹όϯσΟοτ ໰୊ͷઃఆ • ຊݚڀใࠂͰ͸ɺจ຺͸ɺෳ਺ͷཁҼͷύϥϝʔλͷ૊Έ߹ΘͤͰදݱ͞ Εͨঢ়ଶͷ͜ͱΛࢦ͢ • → ཁҼύϥϝʔλͷ஋͕{0,1}ͷ৔߹ɺจ຺͸ཁҼ਺ ʹରͯ͠

    ύλʔϯ d 2d 37 ઢܗͳଟ࿹όϯσΟοτ໰୊ • ઢܗͳଟ࿹όϯσΟοτ໰୊ͷղ๏Ͱ͸ɺจ຺ͷ֬཰෼෍Ͱ͸ͳ͘ɺཁҼ͝ͱ ͷ܎਺ʢઢܗύϥϝʔλʣΛਪఆ͢Δ͜ͱͰ֤จ຺ʹ͓͚ΔใुΛ༧૝͢Δ
  38. ઢܗͳଟ࿹όϯσΟοτ໰୊ 38 Arm0 Arm1 Arm2 User(s) System ਪఆͨ֬͠཰෼෍ ਅͷ֬཰෼෍ Recommend

    Click Context = 0 Context = 0
  39. ઢܗͳଟ࿹όϯσΟοτ໰୊ 39 Arm0 Arm1 Arm2 User(s) System ਪఆͨ֬͠཰෼෍ ਅͷ֬཰෼෍ Recommend

    Click Context = 1 Context = 1