Slide 1

Slide 1 text

ࡾ୐༔հ / Pepabo R&D Institute, GMO Pepabo, Inc. 2020.11.13 Web System Architecture ݚڀձ (WSAݚ) #7 ᅂ޷఻ୡίϛϡχέʔγϣϯͷ ޮ཰ԽΛ໨ࢦͨ͠఻ୡํࣜͷݕ౼

Slide 2

Slide 2 text

1SJODJQBMFOHJOFFS :VTVLF.*:",&!NPOPDISPNFHBOF 1FQBCP3%*OTUJUVUF (.01FQBCP *OD IUUQTCMPHNPOPDISPNFHBOFDPN

Slide 3

Slide 3 text

1. ͸͡Ίʹ 2. ᅂ޷఻ୡίϛϡχέʔγϣϯͷ՝୊ͱޮ཰Խͷݕ౼ 1. ૉੑ৘ใͷ఻ୡํࣜ 2. ᅂ޷৘ใͷ఻ୡํࣜ 3. ධՁ 4. ·ͱΊ 3 ໨࣍

Slide 4

Slide 4 text

1. ͸͡Ίʹ

Slide 5

Slide 5 text

• దԠతͳγεςϜͷ࣮ݱʹ͸ɺγεςϜ͕ར༻ऀͷঢ়گΛΑ͘஌Δ͜ͱ͕ॏཁ • ECαΠτͷγεςϜͰ͋Ε͹ɺར༻ऀͷᅂ޷Λ೺Ѳ͢Δ͜ͱͰɺ࠷దͳ঎ ඼ΛఏҊͰ͖Δ • ಛʹॳظஈ֊ʹ͓͚Δར༻ऀͱͷҰఆྔͷίϛϡχέʔγϣϯ͕ඞཁ • ໌ࣔతͳίϛϡχέʔγϣϯʢϓϩϑΝΠϧͷొ࿥ͳͲʣ • ҉໧తͳίϛϡχέʔγϣϯʢߦಈཤྺͷ஝ੵͳͲʣ 5 దԠతͳγεςϜͱίϛϡχέʔγϣϯ

Slide 6

Slide 6 text

• దԠతͳγεςϜ͸ར༻ऀͷ͜ͱΛ஌Γ͍ͨ • ҰํͰɺར༻ऀʹͱͬͯ͜ͷ఻ୡ͸ෛ୲ • ࿑ྗతʢొ࿥΍஝ੵ࡞ۀʣ • ਫ਼ਆతʢϓϥΠόγʔอޢʣ • Ճ͑ͯɺ͜ͷ΍ΓͱΓ͸γεςϜ͝ͱʹߦΘΕΔ 6 దԠతͳγεςϜͱίϛϡχέʔγϣϯͷ՝୊

Slide 7

Slide 7 text

• γεςϜ͝ͱʹൃੜ͢ΔίϛϡχέʔγϣϯΛޮ཰Խ͍ͨ͠ • ఻ୡ͢Δ৘ใྔ͸Ͱ͖Δ͚ͩଟ͘ • ར༻ऀͷෛ୲͸Ͱ͖Δ͚ͩখ͘͞ 7 దԠతͳγεςϜͱίϛϡχέʔγϣϯͷ࣮ݱʹ޲͚ͯ ར༻ऀͷᅂ޷఻ୡʹవΘΔίϛϡχέʔγϣϯͷෛ୲Λ௿ݮͭͭ͠ɺదԠతͳ γεςϜʹΑΔརศੑΛৗʹڗडͰ͖ΔΠϯλʔωοτੈք΁

Slide 8

Slide 8 text

2. ᅂ޷఻ୡίϛϡχέʔγϣϯͷ՝୊ͱ ޮ཰Խͷݕ౼

Slide 9

Slide 9 text

• ᅂ޷(preference)ͱ͸ʮར༻ऀͷૉੑ(feature)ʯʹجͮ͘ʮର৅(content)΁ͷ ൓Ԡ(reaction)ʯͱ͢Δ 9 ఻ୡର৅Ͱ͋Δʮᅂ޷৘ใʯͷຊݚڀʹ͓͚Δఆٛ preference(feature,content) #=> reaction ᶃར༻ऀͷૉੑ৘ใΛ఻͑Δ ᶄར༻ऀͷᅂ޷৘ใΛ఻͑Δ

Slide 10

Slide 10 text

ᶃ ར༻ऀͷૉੑ(feature)ͷ఻ୡͷ՝୊ͱ ޮ཰Խͷݕ౼

Slide 11

Slide 11 text

1. γεςϜ಺ʹݶఆ͞Εͨར༻ऀͷૉੑ ૉੑͱͳΔϓϩϑΝΠϧ΍ߦಈཤྺ͸γεςϜ͝ͱʹݶఆ͞ΕΔ → γεςϜΛԣஅͨ͠ߦಈཤྺ͔ΒͳΔૉੑ͕ར༻Ͱ͖Δͱͳ͓ྑ͍ 2. ద੾ͳσʔλߏ଄͕ෆ໌ γεςϜΛԣஅͨ͠ૉੑΛߏஙͰ͖Δͱͯ͠ɺແݶͷཁҼީิΛ࣋ͭڞ௨ͷ ಛ௃ྔΛશγεςϜͰ؅ཧ͢Δ͜ͱ͸೉͍͠ 3. ϓϥΠόγʔอޢ͕ඞཁ ར༻ऀଆ͸ߦಈཤྺͷ։ࣔʹ͋ͨͬͯ಺༰ͷ੍ݶΛٻΊΔͩΖ͏ 11 ར༻ऀͷૉੑ(feature)ͷ఻ୡͷ՝୊

Slide 12

Slide 12 text

• γεςϜΛԣஅͨ͠ߦಈσʔλΛہॴ؅ཧ͢ΔΞϓϩʔν • Key-Valueܗࣜͷσʔλߏ଄ • γεςϜ΁ͷఏࣔ࣌ʹɺ͜ͷKey-ValueܗࣜͷσʔλΛBloomFilterʹม׵ • ِཅੑ: KeyΛஅఆ͢Δ͜ͱ͕Ͱ͖ͳ͍ಛੑ • ۭؒޮ཰: อଘ͢Δཁૉ਺ʹґଘ͠ͳ͍ಛੑ 12 ར༻ऀͷૉੑ(feature)ͷ఻ୡͷํࣜͷݕ౼

Slide 13

Slide 13 text

ར༻ऀͷૉੑ(feature)ͷ఻ୡͷํࣜͷݕ౼ 13 4ZTUFN -PDBM IUUQFYBNQMFDPNQSPEVDUT IUUQFYBNQMFDPNQSPEVDUT EFNPHSBQIJD@ EFNPHSBQIJD@ EFNPHSBQIJD@ ʜ ʜ 4ZTUFN 4ZTUFN ,FZ7BMVFEBUBTUPSF γεςϜΛԣஅͨ͠ ૉੑͷ஝ੵ ʢӾཡ΍ධՁཤྺͳͲʣ

Slide 14

Slide 14 text

ར༻ऀͷૉੑ(feature)ͷ఻ୡͷํࣜͷݕ౼ 14 4ZTUFN -PDBM IUUQFYBNQMFDPNQSPEVDUT IUUQFYBNQMFDPNQSPEVDUT EFNPHSBQIJD@ EFNPHSBQIJD@ EFNPHSBQIJD@ ʜ ʜ 4QBUJBM #MPPN'JMUFS 4ZTUFN 4ZTUFN ,FZ7BMVFEBUBTUPSF ِཅੑ ݻఆ࣍ݩ

Slide 15

Slide 15 text

ᶄ ର৅(content)΁ͷ൓Ԡ(reaction)ͷ ఻ୡͷ՝୊ͱޮ཰Խͷݕ౼

Slide 16

Slide 16 text

1. γεςϜ಺ʹݶఆ͞Εͨར༻ऀͷૉੑ ର৅(content)͸γεςϜ಺ʹݶఆ͞ΕΔͨΊɺγεςϜ͝ͱʹͦͷ൓ԠΛఏ ࣔ͠ͳ͚Ε͹ͳΒͳ͍ɻ ͜ͷ࣌ɺར༻ऀͷᅂ޷ΛΑΓ஌ΔͨΊʹ͸ɺͰ͖Δ͚ͩଟ͘ͷର৅(content) ʹର͢Δ൓Ԡ(reaction)ΛࣔͤΔ͜ͱ͕๬·͍͕͠ɺ࿑ྗతͳෛ୲͸ൺྫͯ͠ ૿Ճ͢Δɻ 2. ϓϥΠόγʔอޢ͕ඞཁ ར༻ऀଆ͸ᅂ޷ͷ։ࣔʹ͋ͨͬͯ಺༰ͷ੍ݶΛٻΊΔͩΖ͏ 16 ର৅(content)΁ͷ൓Ԡ(reaction)ͷ఻ୡͷ՝୊

Slide 17

Slide 17 text

• ᅂ޷ϞσϧΛہॴ؅ཧ͢ΔΞϓϩʔν • ᅂ޷Ϟσϧͷߏஙͱར༻͸ϩʔΧϧΤʔδΣϯτ͕ߦ͏ • ߏங͞ΕΔᅂ޷Ϟσϧ͸͜Ε·Ͱͷߦಈσʔλ͔Βɺະ஌ͷର৅(content) ΁ͷ൓Ԡ(reaction)Λਫ਼౓Α͘ਪଌ͢Δ • ϩʔΧϧΤʔδΣϯτ͸ɺ͜ͷϞσϧΛ࢖͍ɺγεςϜʹର͢Δର৅(content) ΁ͷ൓Ԡ(reaction)ͷ఻ୡΛ୅ཧ͢Δ 17 ର৅(content)΁ͷ൓Ԡ(reaction)ͷ఻ୡͷํࣜͷݕ౼

Slide 18

Slide 18 text

ར༻ऀͷૉੑ(feature)ͷ఻ୡͷํࣜͷݕ౼ 18 4ZTUFN -PDBM IUUQFYBNQMFDPNQSPEVDUT IUUQFYBNQMFDPNQSPEVDUT EFNPHSBQIJD@ EFNPHSBQIJD@ EFNPHSBQIJD@ ʜ ʜ 4ZTUFN γεςϜΛԣஅͨ͠ ૉੑͷ஝ੵ ʢӾཡ΍ධՁཤྺͳͲʣ ᅂ޷༧ଌϞσϧΛߏங -PDBM"HFOU

Slide 19

Slide 19 text

ར༻ऀͷૉੑ(feature)ͷ఻ୡͷํࣜͷݕ౼ 19 4ZTUFN -PDBM IUUQFYBNQMFDPNQSPEVDUT IUUQFYBNQMFDPNQSPEVDUT EFNPHSBQIJD@ EFNPHSBQIJD@ EFNPHSBQIJD@ ʜ ʜ 4ZTUFN 4ZTUFN ᅂ޷༧ଌϞσϧ -PDBM"HFOU ᅂ޷܏޲ͷ୅ཧԠ౴ ʢఏࣔൣғͷ੍ݶʹΑΔ ϓϥΠόγʔอޢ΋ʁʣ

Slide 20

Slide 20 text

ར༻ऀͷૉੑ(feature)ͷ఻ୡͷํࣜͷݕ౼ 20 4ZTUFN -PDBM IUUQFYBNQMFDPNQSPEVDUT IUUQFYBNQMFDPNQSPEVDUT EFNPHSBQIJD@ EFNPHSBQIJD@ EFNPHSBQIJD@ ʜ ʜ 4ZTUFN 4ZTUFN ᅂ޷༧ଌϞσϧ -PDBM"HFOU దԠతͳৼΔ෣͍

Slide 21

Slide 21 text

3. ධՁ

Slide 22

Slide 22 text

ᶃ ར༻ऀͷૉੑ(feature)ͷ ఻ୡͷํࣜͷධՁ

Slide 23

Slide 23 text

ར༻ऀͷૉੑ(feature)ͷ఻ୡͷํࣜͷݕ౼ 23 4ZTUFN -PDBM IUUQFYBNQMFDPNQSPEVDUT IUUQFYBNQMFDPNQSPEVDUT EFNPHSBQIJD@ EFNPHSBQIJD@ EFNPHSBQIJD@ ʜ ʜ 4QBUJBM #MPPN'JMUFS 4ZTUFN 4ZTUFN ,FZ7BMVFEBUBTUPSF ِཅੑ ݻఆ࣍ݩ

Slide 24

Slide 24 text

• BloomFilter (Not spatial)ʹม׵ͨ͠ૉੑʹΑΔᅂ޷৘ใͷ఻ୡೳྗΛௐ΂Δ • ૉੑΛಛ௃ྔͱͯ͠༻͍ͨઢܗͳଟ࿹όϯσΟοτͷγϛϡϨʔγϣϯ • ֤ͨͩ͠࿹ͷઢܗύϥϝʔλ ͷਪఆ͸׬͍ྃͯ͠Δ΋ͷͱ͢Δ • ͷ֤࣍ݩͷਪఆ஋͸ॏෳ͢Δݩͷઢܗύϥϝʔλͷظ଴஋ͱͨ͠ • ݩͷૉੑͱൺֱͯ͠ఏҊख๏ͷૉੑͰɺͲͷఔ౓ਫ਼౓ʹมԽ͕͋Δ͔֬ೝ ̂ θa ̂ θa 24 ར༻ऀͷૉੑ(feature)ͷ఻ୡͷํࣜͷ༗ޮੑ arg max a xT a ✓a = arg max a ˆ xT a ˆ ✓a AAADKnichZG7TtxAFIaPnQuwhLAkDRKNlRUo1WpMIoFAkVBoKLktIGGyGg+zuyM8tmXPLpCR8wB5AQqqRKJA0PMANKkjpVilpUGUIKVJwfElSgiEjGXPmf+cb/zPHDf0RKwI6Rrmg4ePHvf09pX6nww8HSwPPVuJg3bEeI0FXhCtuTTmnvB5TQnl8bUw4lS6Hl91t2bT/GqHR7EI/GW1G/INSZu+aAhGFUr18oHj820WSEn9Te3QqCnpTqIdSVUrCLUTSQu1D6noeEIKFSeloqquaWI5rtQ7SRq+y6G4oZeTJJUd1eKKZjnrjXUDalGlc/IO9FfyDz6plyukSrJh3Q7sIqhAMeaD8gk4sAkBMGiDBA4+KIw9oBDjsw42EAhR2wCNWoSRyPIcEigh28YqjhUU1S38NnG1Xqg+rtM944xm+BcP3whJC0bJN3JILskXckTOyc9/7qWzPVIvuzi7OcvD+uDH4aUf/6Ukzgpav6l7PStowGTmVaD3MFPSU7Cc77zfu1yaWhzVY+QzuUD/n0iXnOIJ/M4VO1jgi/v3+HHRC94YNsj+ux23g5Xxqv2qOr7wujLztmhVL4zAC3iJ/ZiAGZiDeagBM/oN25gyps1j86vZNb/npaZRMM/hxjDPrgHjidXg

Slide 25

Slide 25 text

ར༻ऀͷૉੑ(feature)ͷ఻ୡͷํࣜͷ༗ޮੑ 25 BDDVSBDZ %JNFOTJPO 0SJHJOBM EFOTJUZ EFOTJUZ EFOTJUZ EFOTJUZ EFOTJUZ 3BUFPG'1 %FOTJUZ %FOTJUZ %FOTJUZ %FOTJUZ %FOTJUZ ີ౓͝ͱͷਫ਼౓ͷมԽ ࢀߟີ౓͝ͱͷِཅੑ཰ ࿹ɺύλʔϯͷઢܗύϥϝʔλʹର ͯ͋͠ΔίϯςΩετ͕ൃੜͨ͠৔߹ͷਫ਼౓ ͷมԽɻίϯςΩετ͸औΓ͏Δύλʔϯͷ ͏ͪ ύλʔϯΛαϯϓϦϯάͨ͠ ͳ͓ɺϋογϡؔ਺ͷ਺͸ৗʹk = 1

Slide 26

Slide 26 text

ᶄ ର৅(content)΁ͷ൓Ԡ(reaction)ͷ ఻ୡͷํࣜͷධՁ

Slide 27

Slide 27 text

ར༻ऀͷૉੑ(feature)ͷ఻ୡͷํࣜͷݕ౼ 27 4ZTUFN -PDBM IUUQFYBNQMFDPNQSPEVDUT IUUQFYBNQMFDPNQSPEVDUT EFNPHSBQIJD@ EFNPHSBQIJD@ EFNPHSBQIJD@ ʜ ʜ 4ZTUFN 4ZTUFN ᅂ޷༧ଌϞσϧ -PDBM"HFOU ᅂ޷܏޲ͷ୅ཧԠ౴ ʢఏࣔൣғͷ੍ݶʹΑΔ ϓϥΠόγʔอޢ΋ʁʣ

Slide 28

Slide 28 text

• WIP • Ͳ͏ධՁ͢Δʁ • ϩʔΧϧΤʔδΣϯτͱ༧ଌϞσϧ͸࡞ΕΔͱͯ͠ • ࣮αʔϏεʹ૊ΈࠐΉͱͨ͠Βίϛϡχέʔγϣϯ޻ఔΛͲ͏ઃܭ͢Δʁ • Ͳ͜ʹ৽نੑΛग़͢ʁΞʔΩςΫνϟʁᅂ޷Ϟσϧʁ • ྨࣅݚڀ͸ʁ 28 ର৅(content)΁ͷ൓Ԡ(reaction)ͷ఻ୡͷํࣜͷධՁ

Slide 29

Slide 29 text

4. ·ͱΊ

Slide 30

Slide 30 text

• దԠతͳγεςϜͷ࣮ݱʹඞਢͷ఻ୡίϛϡχέʔγϣϯͷෛ୲ʹண໨ͨ͠ • ECαΠτΛྫʹᅂ޷৘ใΛޮ཰తʹ఻ୡ͢ΔํࣜΛݕ౼ͨ͠ • ૉੑΛہॴ؅ཧ͠BloomFilterΛ༻͍ͯϓϥΠόγʔΛߟྀ͠ͳ͕Βఏࣔ͢Δ ํࣜͰ͸ɺ఻ୡਫ਼౓ͷมԽʹ͍ͭͯ༧උධՁΛߦ͍ɺਫ਼౓௿Լʹ͍ͭͯ՝୊Λ ֬ೝͨ͠ • ผ్ɺᅂ޷ϞσϧΛہॴ؅ཧ͠ϩʔΧϧΤʔδΣϯτΛ༻͍ͯ୅ཧԠ౴͢Δํ ࣜΛݕ౼͠ɺ͜ͷ࣮ݱੑʹ͍ͭͯٞ࿦ͨ͠ʢ͢Δʣ 30 ·ͱΊ https://icons8.com https://icons8.com

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

ิ଍ࢿྉ

Slide 33

Slide 33 text

BloomFilter

Slide 34

Slide 34 text

• ͻͱͭͷϒϧʔϜϑΟϧλ͸ Ϗοτͷ഑ྻ͔Β੒Δ m 34 ϒϧʔϜϑΟϧλ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 Bloom filter(m = 10)

Slide 35

Slide 35 text

• ͻͱͭͷϒϧʔϜϑΟϧλ͸ Ϗοτͷ഑ྻ͔Β੒Δ • ཁૉ͸ ݸͷϋογϡؔ਺͔ΒಘΒΕΔ഑ྻͷఴࣈҐஔͷू߹ʹม׵͞ΕΔ m k 35 ϒϧʔϜϑΟϧλʢཁૉͷ௥Ճʣ H1 (element1 ) = 0 H2 (element1 ) = 9 element1 Hash function(k = 2)

Slide 36

Slide 36 text

• ͻͱͭͷϒϧʔϜϑΟϧλ͸ Ϗοτͷ഑ྻ͔Β੒Δ • ཁૉ͸ ݸͷϋογϡؔ਺͔ΒಘΒΕΔ഑ྻͷఴࣈҐஔͷू߹ʹม׵͞ΕΔ • ू߹͸શཁૉͷ഑ྻͷఴࣈͷ࿨ू߹Λ1ͱ͢Δ഑ྻͱͯ͠දݱ͞ΕΔ m k 36 ϒϧʔϜϑΟϧλʢཁૉͷ௥Ճʣ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 H1 (element1 ) = 0 H2 (element1 ) = 9 element1 Bloom filter(m = 10) Hash function(k = 2)

Slide 37

Slide 37 text

• ͻͱͭͷϒϧʔϜϑΟϧλ͸ Ϗοτͷ഑ྻ͔Β੒Δ • ཁૉ͸ ݸͷϋογϡؔ਺͔ΒಘΒΕΔ഑ྻͷఴࣈҐஔͷू߹ʹม׵͞ΕΔ • ू߹͸શཁૉͷ഑ྻͷఴࣈͷ࿨ू߹Λ1ͱ͢Δ഑ྻͱͯ͠දݱ͞ΕΔ m k 37 ϒϧʔϜϑΟϧλʢཁૉͷ௥Ճʣ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 H1 (element2 ) = 1 H2 (element2 ) = 9 element2 Bloom filter(m = 10) Hash function(k = 2)

Slide 38

Slide 38 text

• ໰͍߹ΘͤΔཁૉʹରͯ͠kݸͷϋογϡؔ਺͔ΒಘΒΕͨఴࣈҐஔΛ࢖͏ • ҰͭͰ΋0͕͋Ε͹ʮઈରʹʯؚ·Εͳ͍ 38 ϒϧʔϜϑΟϧλʢཁૉͷ໰͍߹Θͤʣ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 H1 (element3 ) = 1 H2 (element3 ) = 8 element3 Bloom filter(m = 10) Hash function(k = 2) ❌

Slide 39

Slide 39 text

• ໰͍߹ΘͤΔཁૉʹରͯ͠kݸͷϋογϡؔ਺͔ΒಘΒΕͨఴࣈҐஔΛ࢖͏ • ҰͭͰ΋0͕͋Ε͹ʮઈରʹʯؚ·Εͳ͍ • શͯ1ʹͳ͍ͬͯΕ͹ʮɹɹʯؚ·ΕΔ 39 ϒϧʔϜϑΟϧλʢཁૉͷ໰͍߹Θͤʣ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 H1 (element1 ) = 0 H2 (element1 ) = 9 element1 Bloom filter(m = 10) Hash function(k = 2) ⭕

Slide 40

Slide 40 text

• ໰͍߹ΘͤΔཁૉʹରͯ͠kݸͷϋογϡؔ਺͔ΒಘΒΕͨఴࣈҐஔΛ࢖͏ • ҰͭͰ΋0͕͋Ε͹ʮઈରʹʯؚ·Εͳ͍ • શͯ1ʹͳ͍ͬͯΕ͹ʮଟ෼ʯؚ·ΕΔ 40 ϒϧʔϜϑΟϧλʢཁૉͷ໰͍߹Θͤʣ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 H1 (element4 ) = 0 H2 (element4 ) = 1 element4 Bloom filter(m = 10) Hash function(k = 2) ❓