プログラミング言語 Python の会議 PyCon JP 2018 で Dwango Media Village の大元が発表した『niconicoにおけるコンテンツレコメンドの取り組み』の発表資料です。 niconicoサービスにおけるレコメンダーのアルゴリズム・システム開発・運用について発表しました。
PyCon JP 2018: https://pycon.jp/2018 当日の配信: https://www.youtube.com/watch?v=0l75fLKUlqk
OJDPOJDPʹ͓͚ΔίϯςϯπϨίϝϯυͷऔΓΈגࣜձࣾυϫϯΰ%XBOHP.FEJB7JMMBHF෦ ೳใγεςϜηΫγϣϯେݩ࢘
View Slide
େݩ ࢘ !IFOSZ͓͓ͱ ͔ͭ͞ਆށେֶ$4ʢߐޱάϧʔϓʣग़ਆށେֶେֶӃγεςϜใֶใՊֶઐ߈ത࢜՝ఔલظɼमྃτϐοΫϞσϧɺϊϯύϥϝτϦοΫϕΠζɺ࣌ܥྻσʔλגࣜձࣾυϫϯΰʢʙʣ%XBOHP.FEJB7JMMBHF෦ೳใγεςϜηΫγϣϯIUUQTENWOJDPϨίϝϯυγεςϜɺࠃબڍͷ֬༧ଌɺڝഅ༧ଌɺػցֶशߨ࠲ͷڭࡐ࡞༷ʑͳΦʔϓϯιʔειϑτΣΞͷߩݙݱࡏɺ.JDSPTPGU-JHIU(#.ͷίϛολʔࣗݾհ
χίχίಈըχίχίੜ์ૹχίχί੩ըχίχίνϟϯωϧχίχཱମχίχίχϡʔεχίχίେඦՊ31(ΞπϚʔϧɾ ɾ ɾχίχίͷαʔϏε݄৽όʔδϣϯʮ͘Εͬ͐͠ΜͲʯΛϦϦʔεʂ
ΦεεϝͷಈըΦεεϝͷλάΦεεϝͷੜ์ૹɾɾɾɾͳͲχίχίαʔϏεͰར༻͞Ε͍ͯΔϨίϝϯμʔ
ຊͷτʔΫ༰ϨίϝϯμʔͷࣄྫհྨࣅੜओϨίϝϯμʔλάϨίϝϯμʔݕࡧཤྺϕʔεϨίϝϯμʔϦΞϧλΠϜϨίϝϯμʔϨίϝϯμʔίʔσΟωʔλʔϨίϝϯυͷޮՌଌఆϨίϝϯμʔΛࢧ͑Δ։ൃɾӡ༻ํ๏γεςϜΞʔΩςΫνϟϞσϧͷσϓϩΠํ๏αʔϏεͷࢹ
ϢʔβʹϢʔβੜ์ૹΛϨίϝϯυ͢Δ͓͢͢Ίͷੜ์ૹͱʁ࠷ۙࢹௌͨ͠ੜ์ૹͷ৴ऀʢੜओʣͱࣅͨ৴ऀͷ์ૹ͓͢͢ΊͰ͖ΔͷͰʁੜ์ૹͷϨίϝϯυΛྨࣅੜओͷਪનʹΛஔ͖͑ΔੜओͷಛྔԿ͔ʁͲΜͳੜ์ૹΛ͢Δͷ͔ʁաڈͷੜ์ૹλΠτϧաڈͷੜ์ૹઆ໌աڈͷੜ์ૹλάɺΧςΰϦͲΜͳਓ͕ੜ์ૹΛݟΔͷ͔ʁࢹௌऀੜओࢹௌऀͷू߹ͰදݱͰ͖ΔྨࣅੜओϨίϝϯμʔੜओࢹௌऀ
֤ੜओͷτϐοΫΛࢹௌऀʢͷΈ͔Βʣਪఆ͢ΔྨࣅੜओϨίϝϯμʔԻָ Իָ өըεϙʔπ өը өըԻָ өը εϙʔπԻָ өը εϙʔπͭͷτϐοΫͰදݱ͞ΕΔ
֤ੜओͷτϐοΫτϐοΫϞσϧͰֶश͢ΔʢٻΊΔʣτϐοΫϞσϧͷ࣮ʹTDJLJUMFBSO TLMFBSOͷ-BUFOU%JSJDIMFU"MMPDBUJPO -%"Λར༻͢ΔTLMFBSOʹͭͷ-%"͕ଘࡏ͢ΔͷͰҙ͕ඞཁ-JOFBS%JTDSJNJOBOU"OBMZTJT TLMFBSOMEB-%"-BUFOU%JSJDIMFU"MMPDBUJPO TLMFBSOEFDPNQPTJUJPO-BUFOU%JSJDIMFU"MMPDBUJPO1ZUIPOͷ༗໊ͳτϐοΫϞσϧ࣮ʹHFOTJN͕͋Δ͕ɺTLMFBSOʹW͔Β-%"͕࣮͞ΕΔৄࡉʹݪҼ͍ͬͯͳ͍͕ɺܦݧ্TLMFBSOͷํ͕ಉҎ্ͷੑೳΛୡ͍ͯͨ͠TLMFBSOͷ"1*Λલఏͱ͢ΔγεςϜΛ։ൃ͓ͯ͘͜͠ͱͰɺTLMFBSOͷଞࢿ࢈ʹॊೈʹมߋՄೳͰ͖ΔྨࣅੜओϨίϝϯμʔ
֤ੜओͷτϐοΫτϐοΫϞσϧͰֶश͢ΔʢٻΊΔʣτϐοΫϞσϧͷ࣮ʹTDJLJUMFBSO TLMFBSOͷ-BUFOU%JSJDIMFU"MMPDBUJPO -%"Λར༻͢Δֶशํ๏ MFBSOJOH@NFUIPElCBUDIzʹ͢ΔࠓճΦϯϥΠϯ༻్Ͱͳ͍ͷͰɺੑೳͷྑ͍όονֶशΛ࠾༻͢Δඞͣௐ͖͢ύϥϝʔλτϐοΫ O@UPQJDT͍ͭ͘ͷτϐοΫʢΧςΰϦʔʣͰੜओΛදݱ͢Δͷ͔Λ࣮ݧతʹܾΊΔධՁईʹύʔϓϨΩγςΟ QFSQMFYJUZΛܭࢉ͢Δ͕খ͚͞Εখ͍͞΄Ͳྑ͍ྨࣅੜओϨίϝϯμʔ
Ϟσϧͷֶशσʔλۙϲ݄ͷੜ์ૹࢹௌϩά4QBSLͰ֤ߦ͕ੜओࢹௌऀͱͳΔֶशσʔλΛ࡞͢Δϲ݄ͷࢹௌϩάͰɺΦʔμʔతʹYҎ্ͷߦྻ͕Ͱ͖Δલॲཧͱͯ͠ࢹௌऀΛϑΟϧλʔ͢Δ$PVOU7FDUPSJ[FSͷύϥϝʔλΛNBY@EG NJO@EGͱ͢Δͭ·ΓɺֶशσʔλதʹճҎ্දΕΔϢʔβͱɺճະຬ͔͠දΕͳ͍ϢʔβΛऔΓআ͘͜ΕΒͷϢʔβ#PUతͳߦಈΛ͍ͯͨ͠Γɺݶఆతͳ͔ࣝ͠༩͑ͳ͍͜ͱ͕ଟʑ͋Δ$PVOU7FDUPSJ[FSͱ-BUFOU%JSJDIMFU"MMPDBUJPOΛܨ͛Δ1JQFMJOFΛߏங͢ΔϓϩμΫτڥͰ࠶ݱੑͷ͋ΔલॲཧͱϞσϧͷֶशΛߏங͢Δ-%"ͷSBOEPN@TUBUFΛඞͣݻఆ͢Δ͜ͱʂֶशதʹཚΛ͏ͷͰɺ࠶ݱੑΛ֬อ͓ͯ͘͠ྨࣅੜओϨίϝϯμʔ
τϐοΫͷ࣮ݧݱγεςϜͰτϐοΫΛͱ͍ͯ͠ΔੜओΛlԿ͔zݸͷτϐοΫͰදݱ͍ͯ͠Δ͜ͷԿ͔ΛػցֶशͰٻΊΔͷ͕τϐοΫϞσϧྨࣅੜओϨίϝϯμʔ
γεςϜߏྨࣅੜओϨίϝϯμʔϨίϝϯμʔ "1*ੜ์ૹ%#์ૹதͷੜओϦετੜओͷτϐοΫϕΫτϧʹճɺ-%"ͷֶश݁ՌΛ ੜओ*%ΛΩʔʹ3FEJTʹ֨ೲ͢Δ࠷ۙࢹௌͨ͠์ૹͷੜओͷྨࣅੜओ͕์ૹ͍ͯ͠Δ൪Λฦۙ͢ͷࢹௌϩά
ϢʔβʹಈըΛϨίϝϯυ͢ΔϢʔβͷΈͷಈըΛɺಈըʹ༩͞ΕͨλάΛར༻ͯ͠୳͢χίχίಈըͷλάߘऀϢʔβʢࢹௌऀʣ͕ࣗ༝ʹλάΛ࠷େݸొͰ͖ΔݕࡧੑͷͨΊɺϢʔβ͕৴༻ग़དྷΔλάΛ͚ͯ͘ΕΔλάؔπϦʔΛߏங͢Δ࣮ࡍͷλάͷΘΕํΛௐΔϢʔβͷΈΛɺ࠷ۙݟͨಈըͷλά͔Βਪఆ͢Δ͜ͱ͕Ͱ͖ͦ͏ʂλάϨίϝϯμʔ
λάؔπϦʔλάʹࢠ͕ؔ͋Δྫ͑ʮήʔϜʯʮఱಊʯʮϙέϞϯʯࢠؔΛπϦʔͰදݱ͢ΔλάϨίϝϯμʔ
ࢠؔΛλάͷڞى͔ؔΒਪଌ͢ΔγϯϓιϯͰλάɹͱɹͷڞىΛଌΔɹɹɹɹͦΕͧΕͷλά͕ొ͞Εͨಈըͷɹɹɹλά͕ಉ࣌ʹొ͞Εͨಈըͷλάɹɹʹ͍ͭͯɺγϯϓιϯΛܭࢉͯ͠ɺᮢΛ͑ͨͱ͖ʹɹɹࢠ͕ؔ͋Δͱ͢ΔɹɹͷؒʹΤοδΛҾ͘ᮢܦݧతʹͱͨ͠͞Βʹɺɹɹɹɹɹͷͱ͖ɺΛɹͷͱఆٛ͠ɺશͯͷλάͷΛπϦʔͷࠜͱΈͳ͢ɹ͔ΒɹͷํΤοδΛҾ͘λάϨίϝϯμʔ4JNQTPO(s, t) =n(s, t)min(n(s), n(t))s tn(s), n(t)n(s, t)s, t s, ts, tn(s) > n(t) s ts t
࣍ͷΑ͏ͳͭͷλά͕ؔग़ݱ͠͏ΔλάͷࢠؔΛऔΔʹπϦʔͷߏ͕ྻͰ͋Δํ͕ѻ͍͍͢λάɹͷͱͯ͠ɺɹ͕͋Δͱ͖ɺɹɹɹɹͷখ͍͞ํΛ།Ұͷͱͯ͠࠾༻͢ΔλάϨίϝϯμʔu s, t n(s), n(t)
͜ͷΑ͏ʹߏஙͨ͠λάπϦʔΛ୳ࡧ͢Δ͜ͱͰϢʔβຖʹΈͷλάΛௐΔ͜ͱ͕Ͱ͖ΔϢʔβ͕࠷ۙࢹௌͨ͠ಈըʹ༩͞Ε͍ͯΔλάΛूΊɺπϦʔ্Ͱͬͱlࡉ͔͍zλά͚ͩΛநग़͢Δྫ͑ɺʮεϓϥτΡʔϯʯͷಈըʹʮήʔϜʯʮεϓϥτΡʔϯʯʮ࣮گϓϨΠʯͳͲ͕ಉ࣌ʹొ͞ΕΔ͜ͱ͕ଟ͍ɻ͜ΕΒͷλάͷ֓೦ͷ͞ʮήʔϜʯʮ࣮گϓϨΠʯʮεϓϥτΡʔϯʯͰ͋Δͱߟ͑ΒΕΔͨΊɺ͜ͷಈըΛݟͨϢʔβͷΈΛද͢λάʮεϓϥτΡʔϯʯͰ͋ΔͱԾఆ͢Δɻlࡉ͔͍zλάɺ·͞ʹπϦʔ্Ͱͬͱl༿ʹ͍ۙzλάʹͳΔྫʣ͍ϊʔυ͕࠷ۙΈͨಈըͷλά ɹɹ͜ͷϢʔβͷΈʮ࣮گϓϨΠʯͱʮϚϦΦΧʔτʯͰද͞ΕΔλάϨίϝϯμʔήʔϜϚϦΦ࣮گϓϨΠϚϦΦΧʔτθϧμϖʔύʔϚϦΦ ࣌ͷΦΧϦφ ເΛݟΔౡ
ॲཧ࣌ؒπϦʔͷߏஙܭࢉྔɺಈըYλάͷಈըͷΦʔμʔҎ্4QBSLͰऑఔͰܭࢉ͢Δλάநग़ʢϨίϝϯυʣλάશମ͕/ఔπϦʔͷਂ͕͞/ఔϦΞϧλΠϜʹ༨༟Ͱࡹ͚ΔλάϨίϝϯμʔ
Ϣʔβͷݕࡧͱ͍͏ߦಈʹ໌֬ͳҙࢤؚ͕·Ε͍ͯΔͣݕࡧཤྺΛར༻ͯ͠ɺࣄલʹؾͷར͍ͨίϯςϯπΛग़ͯ͋͛͠Α͏ʂྫ͑ɺ࠷ۙʮήʔϜ"ʯΛݕࡧͨ͠ϢʔβͷϨίϝϯυʹʮήʔϜʯͱʮ"ʯʹؔ࿈͢ΔͷΛؚΊ͓ͯ͘ϢʔβຖʹݕࡧཤྺΛ݅ͣͭ3FEJTʹอ͍࣋ͯ͠ΔݕࡧཤྺΛ࣋ͨͳ͍ϢʔβʹԿฦͤͳ͍ŋŋŋ࠷ۙͷݕࡧʹॏΈΛஔ͍ͨ֬ͰݕࡧཤྺΛͭબ͠ɺίϯςϯπΛ࠶ݕࡧͨ݁͠ՌΛϨίϝϯυ͢ΔݕࡧཤྺϕʔεϨίϝϯμʔ%#Ϣʔβຖʹ݅ͷݕࡧཤྺΛ֨ೲ͢Δ3FEJTݕࡧཤྺΛ݅ɺ֬తʹબͯ͠ݕࡧ࠶ݕࡧͨ݁͠ՌΛฦ͢Ϩίϝϯμʔ "1*
ϢʔβͷࢹௌߦಈΛlϦΞϧλΠϜzʹө͢ΔϨίϝϯμʔ͜͜ͰͷϦΞϧλΠϜͱҎΛఆٛ+VCBUVTͷϨίϝϯμʔΛར༻1'/Y/55ʹΑͬͯ։ൃ͞Ε͍ͯΔΦϯϥΠϯػցֶश͚ࢄॲཧϑϨʔϜϫʔΫҰൠతͳڠௐϑΟϧλϦϯά $PMMBCPSBUJWF'JMUFSJOHΛ࠾༻͍ͯ͠ΔʢͣʣϦΞϧλΠϜϨίϝϯμʔڠௐϑΟϧλϦϯάͷྫϢʔβ" Ϣʔβ# Ϣʔβ$ Ϣʔβ%ಈը ಈը ಈը ಈը wϢʔβ%ʹ࣍ʹΦεεϝ͢Δಈըʁwಈըʹࣅ͍ͯΔಈըʁಛ͕ࣅ͍ͯΔϢʔβʗΞΠςϜ͔Βਪఆ͢ΔʹڠௐϑΟϧλϦϯά
೦ͳ͜ͱʹɺ+VCBUVTϨίϝϯμʔʹSPXʹର͢Δϝιου͔͠ແͦ͞͏Լͷදͷ߹ɺಈըʹର͢ΔܭࢉͰ͖Δ͕ɺϢʔβʹର͢Δૢ࡞͕Ͱ͖ͳ͍ŋŋŋΞΠςϜϕʔεͷϨίϝϯυʹɺඪ४"1*Λར༻ϢʔβϕʔεͷϨίϝϯυʹɺରϢʔβʹ࠷͍ۙϢʔβਓͷաڈͷࢹௌΞΠςϜ͔Βਪન͢Δ+VCBUVTʹશʹґଘ͍ͯ͠Δ͕ɺαʔϏεͷϐʔΫ࣌ʹඵؒ લޙͷϦΫΤετΛࡹ͍͍ͯΔϦΞϧλΠϜϨίϝϯμʔڠௐϑΟϧλϦϯάͷྫϢʔβ" Ϣʔβ# Ϣʔβ$ Ϣʔβ%ಈը ಈը ಈը ಈը
ҎલͷχίχίαʔϏεͰɺ֤αʔϏε͕ϨίϝϯμʔΛར༻͍ͯͨ͜͠ͷํ๏Ͱɺ֤αʔϏε͕ͦΕͧΕΫϥΠΞϯτͷ։ൃʹʢࣅͨΑ͏ͳʣ࣮Λ͢Δඞཁ͕͋Δ৽نϨίϝϯμʔ͕Ճ͞Εͨ߹ʹɺΫϥΠΞϯτͷՃ࣮͕ඞཁͱͳΔͲ͜ͰԿ͕ར༻͞Ε͍ͯΔͷ͔ཧͮ͠Β͘ͳΔϨίϝϯμʔίʔσΟωʔλʔϨίϝϯμʔ"Ϩίϝϯμʔ#Ϩίϝϯμʔ$
֤छϨίϝϯμʔΛྑ͍ײ͡ʹ·ͱΊΔϨίϝϯμʔίʔσΟωʔλʔͷಋೖϨίϝϯμʔίʔσΟωʔλʔϨίϝϯμʔ"Ϩίϝϯμʔ#Ϩίϝϯμʔ$ίʔσΟωʔλʔ
ϨίϝϯυίʔσΟωʔλʔͷಋೖʹΑΓخ͍͜͠ͱϨίϝϯμʔͷར༻ํ๏͕౷Ұ͞ΕΔશͯͷϨίϝϯμʔΛཧ͍ͯ͠ΔͨΊɺΫϦοΫͳͲͷޮՌଌఆɺ"#ςετͳͲͷϩδοΫಋೖ͕༰қʹͳΔϨίϝϯμʔͷՃϦϓϨΠεͷͨΊʹɺΫϥΠΞϯτͷ։ൃ͕ෆཁͱͳΔٯʹɺͦΕࣗମͷ։ൃӡ༻ίετ͔͔Δ͕ɺΔ͔ʹϝϦοτ͕େ͖͍ϨίϝϯμʔΛ·ͱΊΔlϨγϐzͷ֓೦ϨίϝϯμʔͷΈ߹ΘͤํϑΟϧλ݅ͳͲΛॻ͍ͨఆٛॻ :".-֤αʔϏεͷ୲ऀϨγϐΛ࡞Δ͜ͱͰಠࣗͷlϨίϝϯμʔzΛ࡞Δ͜ͱ͕ՄೳͱͳΔϦΫΤετύϥϝʔλ͕มΘΒͳ͍ݶΓϨγϐͷมߋͰϨίϝϯυ༰ͷมߋ͕ՄೳʹͳΔڽͬͨ%4-Ͱͳ͘ɺϨγϐ͔Β1ZUIPOPCKFDUΛ࡞Ͱ͖ΔΑ͏ͳߏจʹ͍ͯ͠ΔϨίϝϯμʔίʔσΟωʔλʔ
Ϩγϐྫࠓޙͷల։ͱͯ͠ɺϨγϐΤσΟλͷࣾެ։͕ߟ͑ΒΕΔϨίϝϯμʔίʔσΟωʔλʔ
֤αʔϏε͔ΒϨίϝϯυʹؔ࿈ͨ͠ϩάΛૹͬͯΒ͏දࣔϩάʢ࣮ࡍʹίϯςϯπΛදࣔͨ͠ʣԠϩάʢ࣮ࡍʹΫϦοΫͯ͠ίϯςϯπΛݟͨʣϨίϝϯμʔίʔσΟωʔλʔϨίϝϯυ"1*දࣔϩά"1*Ԡϩά"1*ϑϩϯταʔϏε3FDPNNFOE*%$POUFOU*%4<WJEFP WJEFP WJEFP ʜ>3FDPNNFOE*%$POUFOU*%4<WJEFP WJEFP ʜ>3FDPNNFOE*%$POUFOU*%WJEFP
ΫϦοΫදࣔϩάͱԠϩάΛૹͬͯΒ͍ɺϨίϝϯυ"1*ͷϩάͱKPJO͢Δ͜ͱͰɺΫϦοΫͷl΄΅zϦΞϧλΠϜܭଌ͕Ͱ͖Δಉ͡ϨίϝϯυΤϯδϯͰදࣔͷํϨγϐ༰ʹΑͬͯΫϦοΫ͕ҟͳΔͳͲ͕֬ೝͰ͖ΔԼਤɺ*OqVY%#ͱ(SBGBOBʹΑΔΫϦοΫͷՄࢹԽϨίϝϯμʔίʔσΟωʔλʔ
,VCFSOFUFT%PDLFSͰ"1*αʔόʔόονʹΑΔֶशδϣϒͷ࣮ߦڥΛߏங"1*αʔόʔʹ5PSOBEPΛ͏͜ͱ͕ଟ͍%PDLFSʹΑΔಈ࡞ͷҰ؏ੑΛอূ,VCFSOFUFTʹΑΔϦιʔεཧϝϞϦ༻ྔͳͲؾʹͨ͠ίϯςφͷஔΛؾʹ͠ͳͯ͘ྑ͍ϨγϐͷมߋʹΑΔ"1*ෛՙʹԠͯ͡σϓϩΠͷௐ͕༰қϏϧυσϓϩΠͷΈߏཧπʔϧͷ"OTJCMFΛར༻γεςϜΞʔΩςΫνϟ0404,VCFSOFUFT$MVTUFS"1*ίϯςφ%PDLFS %PDLFS"1*ίϯςφ"1*ίϯςφ#BUDIίϯςφ7. 7.
Ϟσϧͦͷͷ͕ඞཁͳ߹ೖྗσʔλʹରͯ͠ɺϞσϧͷ༧ଌ͕ඞཁͱͳΔͱ͖ࣾͷσʔλετΞج൫ʹϞσϧϑΝΠϧΛஔ͘ྫ͑ɺੜओͷτϐοΫʢϕΫτϧʣΛੜओͷ*%ΛΩʔʹ3FEJTʹ֨ೲ͍ͯ͠Δ֤ϨίϝϯμʔʹϞσϧͷߋ৽ػೳΛ࣮͢ΔϝϞϦ্ͷϞσϧΑΓ࡞͕৽͍͠ͱ͖ʹɺ৽͍͠ϞσϧΛϑΣον͢ΔϞσϧͷग़ྗ͕ඞཁͳ߹ೖྗσʔλ͕طͰ͋ΓɺࣄલʹϞσϧͷ༧ଌ͕ܭࢉͰ͖Δͱ͖Ϟσϧͷ༧ଌΛ3FEJT.Z42-ʹ֨ೲ͓ͯ͘͠ྫ͑ɺશͯͷಈըʹରͯ͠ɺࣄલʹϨίϝϯυ͢Δ͖ίϯςϯπΛࣄલʹܭࢉ͓ͯ͘͠ϞσϧͷσϓϩΠํ๏
%BUB%PHʹΑΔࢹΛͯ͢ͷԾϚγϯʹಋೖΤϥʔ௨Λ4MBDLʹྲྀ͢Τϥʔ͚ͩͰͳ͘ɺϨίϝϯμʔͷ༷ʑͳύϑΥʔϚϯενΣοΫΛߦ͍ͬͯΔྲྀྔϨεϙϯελΠϜΩϟογϡώοτ$16ɺϝϞϦ༻ɾɾɾͳͲαʔϏεͷࢹ
χίχίαʔϏεͰͷϨίϝϯμʔͷࣄྫհτϐοΫϞσϧΛར༻ͨ͠ʮྨࣅੜओϨίϝϯμʔʯγϯϓιϯΛܭࢉ͠ɺλάπϦʔΛߏங͢ΔʮλάϨίϝϯμʔʯؾͷར͍ͨʮݕࡧཤྺϕʔεϨίϝϯμʔʯ+VCBUVTʹΑΔʮϦΞϧλΠϜϨίϝϯμʔʯϨίϝϯμʔΛྑ͍ײ͡ʹ౷߹ɺཧ͢ΔϨίϝϯμʔίʔσΟωʔλʔΫϦοΫʹΑΔϨίϝϯυͷޮՌଌఆϨίϝϯυΛࢧ͑Δ։ൃɾӡ༻ํ๏ͷհγεςϜΞʔΩςΫνϟػցֶशϞσϧͷσϓϩΠํ๏αʔϏεͷࢹ·ͱΊ
%XBOHP.FEJB7JMMBHFͰҰॹʹಇؒ͘Λืू͍ͯ͠·͢ʂIUUQTENWOJDP!%XBOHP@%.7