Slide 1

Slide 1 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ ఆྔతʹվળ͍ͯ͘͠ Server side engineer @ota42y

Slide 2

Slide 2 text

3ͭͷ࣭໰

Slide 3

Slide 3 text

1/3 ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ 3ͭͷ࣭໰

Slide 4

Slide 4 text

2/3 ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ 3ͭͷ࣭໰

Slide 5

Slide 5 text

BEFORE AFTER 3/3 ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ 3ͭͷ࣭໰

Slide 6

Slide 6 text

࠷ޙ͚ͩҙݟׂ͕ΕΔ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ 3ͭͷ࣭໰

Slide 7

Slide 7 text

“΋ͷ͞͠”Λ୳ͦ͏

Slide 8

Slide 8 text

ɾಉ͡ʮ΋ͷ͞͠ʯͳΒಉ͡ൺֱ݁Ռ ɾಉ͡ೝࣝΛڞ༗Ͱ͖Δ Կ͔ͷج४ʮ΋ͷ͞͠ʯΛ࢖ͬͯൺֱ ମॏ ڑ཭ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ୳ͦ͏

Slide 9

Slide 9 text

ɾܧଓ཰ ɾετʔϦʔϙΠϯτ ɾॲཧ࣌ؒ ࢓ࣄʹ࢖͏ʮ΋ͷ͞͠ʯ͸ͨ͘͞Μ͋Δ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ୳ͦ͏

Slide 10

Slide 10 text

ɾͬͪ͜ͷํ͕ͳΜ͔͍͍ ɾ͋ͱগ͠ͰऴΘΓ·͢ ɾྑ͍ײ͡ʹ࣮૷͠ͱ͍ͯ ň΋ͷ͞͠ʯ͕ͳ͍ͱೝࣝͷζϨ͕ى͖Δ → ίϛϡχέʔγϣϯϛε ਓʹΑͬͯೝ͕ࣝζϨ΍͍͢ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ୳ͦ͏

Slide 11

Slide 11 text

ň΋ͷ͞͠ʯ͸ศར ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ୳ͦ͏

Slide 12

Slide 12 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ୳ͦ͏ ܧଓ཰DAU, ച্, རӹ, ౤ߘ਺, ϨϏϡʔͷ఺, ໰͍߹Θͤ਺ PV਺, ΫϦοΫ਺, ฏۉߪങֹۚ, όά਺ etc… ܭΓ΍͍͢΋ͷ ܭΓʹ͍͘΋ͷ Ξχϝʔγϣϯͷྑ͞, ͔ͬ͜Α͞, Θ͔Γ΍͢͞, ϥϯΩϯάͷྑ͞, Ϣʔβͷຬ଍౓ɾෆຬ౓ɾ๞͖۩߹ etc…

Slide 13

Slide 13 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ୳ͦ͏ ɾࣗ෼ͷ࣋ͭʮ΋ͷ͞͠ʯ͕ରԠͰ͖ͳ͍࣌ ɾརӹ΍ച্ͱ͔Ͱؒ઀తʹܭΕΔ͚Ͳ…Կϲ݄͔͔Δʁ ܭΓʹ͍͘έʔεʹग़͘Θ͔͢΋

Slide 14

Slide 14 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ୳ͦ͏ ɾ୳͠ํͷ࣮ྫΛ঺հ ɹ— ೉͍͠໰୊΋ಉ͡ೝࣝͰ࿩ͤΔ ɹ— ྑ͍ѱ͍Λૉૣ͘൑அͰ͖Δ ɹ— ࣗಈԽͷԸܙ΋ಘΒΕΔ ࣗ෼Ͱɺඞཁͳʮ΋ͷ͞͠ʯΛ୳ͦ͏

Slide 15

Slide 15 text

ࣗݾ঺հ

Slide 16

Slide 16 text

גࣜձࣾFiNC Technologies — αʔόʔαΠυΤϯδχΞ @ota42y → Twitter, GitHub ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ ࣗݾ঺հ ۀ຿ — rubyͱ͔rustͱ͔goͱ͔C++ͱ͔ — αʔόϨεͨ͠Γ — GPUͰ༡ΜͩΓ — ػցֶशͨ͠Γ — ElasticSearchͨ͠Γ৭ʑ…

Slide 17

Slide 17 text

എܠઆ໌

Slide 18

Slide 18 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ എܠઆ໌

Slide 19

Slide 19 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ എܠઆ໌

Slide 20

Slide 20 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ എܠઆ໌ ɾ඼໨DBͷσʔλΛొ࿥ ɾ໊લΛݕࡧͯ͠બͿ ඼໨ొ࿥

Slide 21

Slide 21 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ എܠઆ໌ ݕࡧγεςϜ

Slide 22

Slide 22 text

→ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ എܠઆ໌ ɾσʔλࣗମ͸݁ߏ͋Δ ୳ͯ͠Δσʔλ͕ ͳ͔ͳ͔ݟ͔ͭΒͳ͍ ɹɾ20ສ݅͘Β͍ ɹɾશ͘ݟ͔ͭΒͳ͍ମݧʹ͸ͳΒͳ͍͸ͣ ྑ͍ݕࡧΛఏڙ͍ͨ͠ʂ ɾΑ͘ݟΔͱԼͷํʹग़͍ͯΔ ɹɾ̏̌൪໨ͱ͔

Slide 23

Slide 23 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ എܠઆ໌ ɾ͋Δ1ͭͷ݁Ռͷྑ͞͸ͳΜͱͳ͘Θ͔Δ ɾਓʹΑͬͯྑ͞ͷج४͕ҧ͏ ɾଞͷΫΤϦ΁ͷѱӨڹ΋ௐ΂͖Εͳ͍ ɹ — ຯḩϥʔϝϯͷॱҐΛ্͛ΔͨΊʹຯḩͷॏΈΛ্͛Δ ɹ— ผͷΫΤϦͰຯḩΧπ΍ຯḩ͓ͰΜ͕1൪্ʹ… ྑ͍ݕࡧͱ͸Կ͔? ͦͯ͠Ͳ͏ܭΔͷ͔?

Slide 24

Slide 24 text

ɾňྑ͘ͳͬͨؾ͕͢Δʯͱ͔͠ݴ͑ͳ͍ ɾ࣮૷΍είΞͷॏΈ෇͚͕ਖ਼͍͔͠ղΒͳ͍ ɾશମͱͯ͠ࠅ͘ͳ͍ͬͯΔՄೳੑ͸े෼ʹ͋Δ ݕࡧ݁Ռͷʮ΋ͷ͞͠ʯ͕ͳ͍ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ എܠઆ໌

Slide 25

Slide 25 text

ɾ݁Ռ͕Θ͔Δͷ͸͕͔࣌ؒͨͬͯΒ ɹ— ѱ͍ঢ়ଶͷΞϓϦΛϢʔβʹఏڙͯ͠͠·͏ ɾී௨͸ѱ͍΋ͷΛੈʹग़͢͜ͱ͸ແ͍ ɹ— ͋Δఔ౓ྑ͍֬৴Λ࣋ͬͯϢʔβʹग़͢ ɹ— ࠓճ͸ྑ͍͔ѱ͍͔Θ͔Βͳ͍ ɹɹɹ— ѱ͍΋ͷΛੈʹग़ͯ͠͠·͏ύλʔϯ΋͋Δ Ϣʔβͷ൓ԠΛݟΔ͔? ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ എܠઆ໌

Slide 26

Slide 26 text

ɾͲΕ͘Β͍ྑ͘ͳ͔͕ͬͨΘ͔Δ ɾಉ͡ج४Λڞ༗Ͱ͖Δ ɾѱ͍ঢ়ଶͰϦϦʔε͢ΔͷΛආ͚ΕΔ ɹ— ଟ͘ͷݕࡧ݁Ռ͕ྑ͘ͳͬͯΔͱΘ͔Δ ň΋ͷ͞͠ʯ͕͋Ε͹ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ എܠઆ໌ 75఺ Έ͍ͨͳ

Slide 27

Slide 27 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ എܠઆ໌ ň΋ͷ͞͠ʯ͕ཉ͍͠

Slide 28

Slide 28 text

“΋ͷ͞͠”Λ༻ҙ͢Δ

Slide 29

Slide 29 text

ɾͦͷܭΓํ͸͖ͪΜͱྑ͞Λ൓ө͍ͯ͠Δ? ɾಛఆͷύλʔϯͰมʹͳͬͨΓ͠ͳ͍͔ ň΋ͷ͞͠ʯΛθϩ͔Β࡞Δͷ͸େม ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ༻ҙ͢Δ

Slide 30

Slide 30 text

ɾ͜ͷΞϓϦݻ༗ͷ໰୊…Ͱ͸ແͦ͞͏ ɾ৘ใݕࡧ͸৘ใՊֶͷதͰ΋Ұେ෼໺ ɹ— ਺े೥ͷྺ࢙͕͋Δ ɹ— ΫΤϦͰର৅ͷจॻΛ୳͢ύλʔϯ͸සग़ ɹ— ݕࡧϥϯΩϯά΋ఆྔԽࢦඪ͕͋Δ աڈʹ୭͔͕௚໘͍ͯ͠Δ໰୊ͷ͸ͣ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ༻ҙ͢Δ

Slide 31

Slide 31 text

ɾզʑͷ໰୊Λաڈͷ໰୊ʹϚοϐϯά͍ͨ͠ ɾաڈͷ੒ՌΛదԠͰ͖Δ ɾň΋ͷ͞͠ʯͷಘखෆಘख΋͋Δఔ౓Θ͔Δ ڊਓͷݞʹ৐Γ͍ͨ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ༻ҙ͢Δ ࣗ෼ୡͷ໰୊ΛϚοϐϯάͰ͖Δ͔?Λߟ͑Δ

Slide 32

Slide 32 text

ɾϢʔβ͕ΫΤϦΛೖྗ ɾෳ਺ͷจॻΛ݁ՌͰฦ͢ ɾϢʔβ͕ΫϦοΫͨ͠ෳ਺ͷ΋ͷ͕ਖ਼ղ Ұൠతͳจॻݕࡧͷ֓೦ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ༻ҙ͢Δ

Slide 33

Slide 33 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ༻ҙ͢Δ ɾݕࡧ୯ޠΛೖྗ͠ɺ඼໨ͷϦετΛฦ͢ ɾϢʔβ͸඼໨ΛબΜͰొ࿥͢Δ ɾొ࿥͢Δ඼໨͸(ଟͯ͘)1ͭ ɹ— ͦ΋ͦ΋ཉ͍͠෺͕ແ͍ύλʔϯ΋͋Γ͏Δ ɹ— Ұ୴͸ແࢹͯ݁͠ՌͷϥϯΩϯάʹ஫ྗ ࠓճͷػೳ

Slide 34

Slide 34 text

ɾࠓճͷػೳ͸จॻݕࡧͷҰ෦ʹͰ͖Δ ɹ— ඼໨໊͚͕ͩॻ͔ΕͨจॻͱΈͳ͢ ɹ— ొ࿥͞Εͨ඼໨Λ།Ұͷਖ਼ղͱΈͳ͢ ໰୊ΛϚοϐϯά͢Δ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ༻ҙ͢Δ ɾਖ਼ղσʔλ΋͋Δఔ౓ϩά͔Β࡞ΕΔ ɹ— ݕࡧ୯ޠͱ݁ՌͷॱҐΛϩάΛอଘ͢Δ ɹ— ొ࿥ͨ࣌͠ʹݕࡧϩάͱ͖ͭ͋ΘͤΔ ɹ— ͋ΔݕࡧͰԿ͕ొ࿥͞Εͨʢʹਖ਼ղ͔ʣղΔ

Slide 35

Slide 35 text

طଘͷʮ΋ͷ͞͠ʯ͕࢖͑ͦ͏ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ༻ҙ͢Δ

Slide 36

Slide 36 text

“΋ͷ͞͠”ΛબͿ

Slide 37

Slide 37 text

MRR (Mean Reciprocal Rank) ࠷ॳʹͰͨਖ਼ղͷΈΛߟྀ͢ΔධՁख๏ ݕࡧ݁ՌͷධՁख๏ͱͯ͠MRRΛ࠾༻ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”ΛબͿ

Slide 38

Slide 38 text

ɾ֓೦͕؆୯Ͱଟ͘ͷਓ͕ཧղ͠΍͍͢ ɾ݁Ռ͕୯Ұͷ਺ࣈͳͷͰγϯϓϧ ɾ࣮૷ָ͕Ͱૣ͘վળͰ͖Δ ɾਖ਼ղ͕1ͭͳͷͰܽ఺ͷ1ͭ͸ແࢹͰ͖Δ ɹ— ࠷ॳͷਖ਼ղ͔͠ݟͳ͍͕ɺ࠷ॳ͔͠ͳ͍ ɹ— ෳ਺ߟྀ͢ΔMAPͱಉ݁͡ՌʹͳΔ͸ͣ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”ΛબͿ ख๏બఆཧ༝

Slide 39

Slide 39 text

ň΋ͷ͞͠ʯΛखʹೖΕͨ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”ΛબͿ

Slide 40

Slide 40 text

“΋ͷ͞͠”Λ࢖ͬͯվળ

Slide 41

Slide 41 text

ɾݱࡏͷঢ়ଶΛܭΔ ɾվળํ๏Λߟ͑Δ ɾࢼ͢ ɾ݁ՌΛʮ΋ͷ͞͠ʯͰܭΔ ɾϦϦʔε͢Δ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ࢖ͬͯվળ ͲͷΑ͏ʹվળ͍ͯ͘͠ͷ͔

Slide 42

Slide 42 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ࢖ͬͯվળ ݱࡏͷঢ়ଶΛܭΔ ɾొ࿥͞Εͨ඼໨ͷ্Ґ2000݅Λ࢖ͬͯMRRΛܭࢉ ɹ— શ෦ߟྀ͢Δͷ͸๲େ ɹ— ૯ొ࿥਺ͷ͔ͳΓͷׂ߹Λ઎ΊΔ্ҐʹߜΔ ɹɹ — ԼҐͷӨڹ͸খ͍͞ͷͰ… ɾ݁Ռͱͯ͠MRR=0.55͙Β͍ ɹ— ݕࡧϩάͱొ࿥ϩά͔Βਖ਼ղΛܭࢉͰ͖Δ ɹ— ݕࡧϩά͔ΒॱҐΛऔΓग़͠MRRΛܭࢉ͢Δ

Slide 43

Slide 43 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ࢖ͬͯվળ վળํ๏Λߟ͑Δ ɾMRRΛ্ঢͤ͞Ε͹ྑ͘ͳͬͨͱݴ͑Δ ɾ্ঢ͢ΔύϥϝʔλΛߟ͑Δ ɹ— ݕࡧ෦෼͸Elasticsearch ɹɹɹ— ύϥϝʔλΛมߋ͢ΔͱϥϯΩϯά͕͍͡ΕΔ ɹɹɹ— ͲͷཁૉͷॏΈΛॏ͘͢Δ͔ ɹɹɹ— ొ࿥਺ɺ඼໨ͷଐੑɺetc…

Slide 44

Slide 44 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ࢖ͬͯվળ ࢼ͢ ɾElasticsearchͷύϥϝʔλͷॏΈΛม͑Δ ɹ— ύϥϝʔλ͸શ෦ొ࿥ ɹ— ݕࡧΫΤϦͰॏΈΛม͑Δ ɹ— MRR͕େ͖͘ͳΔॏΈͷ૊Έ߹ΘͤΛߟ͑Δ

Slide 45

Slide 45 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ࢖ͬͯվળ ɾΑ͍ॏΈ(ύϥϝʔλ)ͷ૊߹ͤ୳ࡧ͸ػցֶशܥͩͱසग़ ύϥϝʔλͷ૊߹ͤΛ୳ࡧ͢Δ ɾHyperopt ɹ— ྑ͍ύϥϝʔλΛ୳ࡧ͢ΔPythonϥΠϒϥϦ ɹ— MRR͕ྑ͘ͳΔΑ͏ʹ୳ࡧΛߦ͏ ɹɹ — ElasticsearchʹΫΤϦΛ౤͛ͯMRRΛܭࢉͯ͘͠ ɹɹ — ྑ͍ݕࡧ㲈ྑ͍MRRΛࣗಈͰ୳ࡧͰ͖Δ ྑ͞Λ୯Ұͷ਺ࣈͰఆٛͯ͠ΔͷͰ୳ࡧ΋؆୯

Slide 46

Slide 46 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ࢖ͬͯվળ ྑ͍݁ՌʹͳΔΫΤϦΛ୳ࡧ

Slide 47

Slide 47 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ࢖ͬͯվળ ɾखಈͰௐ੔ͨ͠৔߹ΑΓྑ͘ͳͬͨ ɹ— ॏཁࢹͯ͠ͳ͔ͬͨύϥϝʔλͷӨڹ͕େ͖͘ɺखಈͰ͸೉͔ͬͨ݁͠Ռʹ ݁ՌΛʮ΋ͷ͞͠ʯͰܭΔ MRR ແௐ੔ 0.55 खಈௐ੔ 0.68 Hyperopt 0.76

Slide 48

Slide 48 text

ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ “΋ͷ͞͠”Λ࢖ͬͯվળ ϦϦʔε͢Δ ɾA/BςετͰ࠷ऴ֬ೝ ɹ— ݕࡧͷྑ͕͞ͲΕ͘Β͍KPIʹڹ͔͘͸ະ஌ ɹ— ྑ͍΋ͷΛϢʔβ͸ٻΊͯͳ͔ͬͨՄೳੑ ɾ݁Ռͱͯ͠͸੒ޭ ɹ— ແௐ੔ύϥϝʔλͷϢʔβΑΓ౤ߘ਺͕5%૿Ճͨ͠ ɹ— ৯ࣄʹؔ͢Δ͝ҙݟϨϏϡʔ΋10͔݅ۙ͘Β΄΅0΁

Slide 49

Slide 49 text

·ͱΊ

Slide 50

Slide 50 text

ɾͳΜͱͳ͔͘Βɺڞ௨ೝࣝʹ͢Δ ɾݟ͑ʹ͍͘΋ͷΛݟ͑ΔΑ͏ʹ͢Δ ň΋ͷ͞͠ʯ͕େࣄ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ ·ͱΊ ň΋ͷ͞͠ʯΛ୳͢ ɾ͍͔ʹطଘͷ໰୊ʹམͱ͠ࠐΉ͔ ɾ໰୊Λ੔ཧͯ͠ڊਓͷݞʹ৐Δ ɾň΋ͷ͞͠ʯ͕Ͱ͖Ε͹Ԡ༻΋ޮ͘

Slide 51

Slide 51 text

͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ - Thank You -

Slide 52

Slide 52 text

ɾͳΜͱͳ͔͘Βɺڞ௨ೝࣝʹ͢Δ ɾݟ͑ʹ͍͘΋ͷΛݟ͑ΔΑ͏ʹ͢Δ ň΋ͷ͞͠ʯ͕େࣄ ݕࡧ݁Ռͷྑ͞Λܭଌͯ͠ఆྔతʹվળ͍ͯ͘͠ ·ͱΊ ň΋ͷ͞͠ʯΛ୳͢ ɾ͍͔ʹطଘͷ໰୊ʹམͱ͠ࠐΉ͔ ɾ໰୊Λ੔ཧͯ͠ڊਓͷݞʹ৐Δ ɾň΋ͷ͞͠ʯ͕Ͱ͖Ε͹Ԡ༻΋ޮ͘