大規模ネットワークにおけるノードの属性情報を利用した未知ノードのグラフ埋め込みの近似 / Graph Embedding Approximiation Using Node Attributes on a Large Social Network

13d936e697fe0f4fa96f926d0a712f6c?s=47 Sansan
November 20, 2019

大規模ネットワークにおけるノードの属性情報を利用した未知ノードのグラフ埋め込みの近似 / Graph Embedding Approximiation Using Node Attributes on a Large Social Network

■イベント
第22回情報論的学習理論ワークショップ(IBIS)
http://ibisml.org/ibis2019/

■登壇概要
タイトル:
大規模ネットワークにおけるノードの属性情報を利用した未知ノードのグラフ埋め込みの近似

登壇者:
DSOC R&DGroup 奥田裕樹 / 吉村皐亮

▼Sansan Builders Box
https://buildersbox.corp-sansan.com/

13d936e697fe0f4fa96f926d0a712f6c?s=128

Sansan

November 20, 2019
Tweet

Transcript

  1. 1.

    大規模ネットワークにおけるノードの属性情報を 利用した未知ノードのグラフ埋め込みの近似 ख๏ Ϣʔβʔͷ໊ࢗަ׵Ͱߏ੒͞ΕΔωο τϫʔΫ • Ϣʔβʔ਺ 250ສਓ ʢ2019೥8݄࣌఺ʣ ͔Βऔಘͨ͠ωο

    τϫʔΫ • ֶश/ςετ͕8/2ʹͳΔΑ͏ʹϊʔυΛ෼ׂ - ࣍਺10Ҏ্ͷϊʔυͷΈΛର৅ - ֶशϊʔυ͔Βςετ ϊʔυʹܨ͕ΔΤοδ͸࡟আ Ϣʔβʔʹඥͮ͘ଐੑ • ϢʔβʔͷॴଐاۀΛଐੑͱ͠ ͯදݱ - اۀ਺ ɿ ໿200ສ • 1ϊʔυʹର͠ ͯ1छྨͷଐੑ͕෇༩͞ΕΔ σʔληοτ Ԟా༟थɾ٢ଜࡷ྄ ʢSansanגࣜձࣾʣ େن໛ωο τϫʔΫ ֓ཁ άϥϑߏ଄͔Βϊʔυͷ෼ࢄදݱΛ֫ಘ͢ΔάϥϑຒΊࠐΈ͸ɺ ϦϯΫ༧ଌ΍ ྨࣅݕࡧͳͲʹ༻͍ΒΕΔಛ௃ྔநग़ͷํ๏Ͱ͋Δɻ සൟʹϊʔυ͕௥Ճ ͞ΕΔେن໛ωο τϫʔΫʹର͢ΔάϥϑຒΊࠐΈ͸ɺ ߋ৽͞ΕΔͨͼʹ৽ͨʹ άϥϑશମͷֶशΛߦ͏ඞཁ͕͋Γɺ ܭࢉྔ΍ܭࢉ࣌ؒͷίετ͔Βݱ࣮త Ͱ͸ͳ͍ɻ ͦ͜ͰຊݚڀͰ͸ɺ ৽͍͠ϊʔυʹର͢Δ෼ࢄදݱΛɺ पลϊʔυͷ ଐੑ৘ใΛ༻͍ͯۙࣅ͢Δख๏Λൺֱݕ౼͢Δɻ ໨త ɿ ྨࣅਓ෺ݕࡧͷͨΊͷάϥϑຒΊࠐΈΛ֫ಘ͢Δ ର৅ ɿ Sansanגࣜձ͕ࣾఏڙ͢Δݸਓ޲໊͚ࢗΞϓϦ ʮEightʯ ͷ ໊ࢗަ׵ωο τϫʔΫશମ ํ๏ ɿ άϥϑຒΊࠐΈख๏Λ2छྨ༻ҙ͠ɺ ۭؒΛࣸ૾͢Δม׵Λֶश ᶃάϥϑຒΊࠐΈΛܭࢉ ᶄଐੑΛར༻ͨۙ͠ࣅతͳ ɹάϥϑຒΊࠐΈΛܭࢉ ະ஌ϊʔυ ᶅະ஌ϊʔυͷຒΊࠐΈΛܭࢉ ᶇະ஌ϊʔυʹର͢Δ ɹάϥϑຒΊࠐΈΛಘΔ ᶅ ม׵ߦྻΛֶश εςοϓ3. ม׵ߦྻΛֶश 1ͱ2Ͱ࡞੒ͨ͠ຒΊࠐΈϕΫ τ ϧ͕ Ұக͢ΔΑ ͏ʹઢܗม׵ Λֶश͢Δ εςοϓ4. ະ஌ϊʔυͷຒΊࠐΈΛܭࢉ ະ஌ϊ ʔυ ͸εςοϓ2ͱಉ౳ͷํ๏ͰϕΫ τϧԽ͢Δ εςοϓ5. ະ஌ϊʔυʹର͢ΔάϥϑຒΊࠐΈΛಘΔ εςοϓ3ͰಘΒΕͨม׵ߦྻΛར༻͠ ͯม׵͠ɺ ະ஌ϊʔυͷάϥϑຒΊ ࠐΈͷϕΫ τϧ ͱ͢Δ ٞ࿦ ϕΫ τϧͷม׵ࣗମͷݶք • ਫ਼౓తͳ՝୊ ʢPrecision@k΍Ұக཰ͷ஋͕খ͍͞ʣ - ͨͩ͠ਓ͕ؒଐੑ৘ใ΍ͦͷଞϝ λσʔλΛݩʹ֬ೝ͢Δͱਖ਼ղ/ۙࣅ ͲͪΒ΋ೲಘײ͕͋Γɺ େ෯ʹྨࣅਓ෺ݕࡧ͕ࣦഊ͠ ͍ͯΔΑ͏ʹ͸ݟ͑ ͳ͍ - ຊདྷܭࢉ͍ͨ͠άϥϑຒΊࠐΈͷදݱෆ଍ / ֶशෆ଍ ྨࣅਓ෺ݕࡧʹΑΔධՁͷ೉͠͞ • ʮྨࣅʯ ʹ͸༷ʑͳई౓͕ଘࡏ͢Δ - ಉ͡ձࣾͷผ෦ॺͷਓ͸ࣅ͍ͯΔ / ผձࣾͷಉ͡໾ׂͷਓ͸ࣅ͍ͯΔ ஞ࣍తʹߋ৽ՄೳͳNNϕʔεͷάϥϑຒΊࠐΈख๏ͷՄೳੑ • GraphSAGEͳͲͷGraph Neural Networkͷख๏ • node2vecͳͲͷ࿮૊Έʹஞ࣍తͳSGNSΛద༻ ൺֱͱධՁ ൺֱख๏ • random: ର৅ϊʔυͱܨ͕Γͷ͋Δपลϊʔυ͔ΒϥϯμϜʹtopN݅ • node average: पลϊʔυͷϕΫ τϧ ʹର͠average pooling • attr. average: पลϊ ʔ υͷଐੑͷϕΫ τϧ ʹର͠average pooling • attr. max: पลϊʔυͷଐੑϕΫ τϧ ʹର͠max pooling • attr. concat: पลϊʔυͷଐੑϕΫ τϧ ʹର͠average poolingͱ max poolingΛద༻ͨ͠ϕΫ τϧΛ࿈݁ͤ͞Δ Precision@k: ྨࣅݕࡧʹ͓͚Δ࠷ۙ๣ͷҰகϊʔυ਺ͰൺֱΛߦ͏ • σʔληο τશମͰεςοϓ1.ͷάϥϑຒΊࠐΈΛܭࢉ͠ɺ ਖ਼ղͷάϥϑ ຒΊࠐΈͱ͢Δ ଐੑ୯ҐͰͷҰக཰ • ςετηο τͷϊʔυʹର͠ ͯɺ ͦΕͧΕͷ࠷ۙ๣୳ࡧʹΑΓྨࣅϊʔυ TopN ʢn=100ʣ Λࢉग़͠ɺ ֤ϊ ʔυ܈ͷଐੑηο τʹର͠ ͯ Ұக཰Λܭࢉ͢Δ ݁Ռ Precision@kʹ͓͍ͯ node pooling > attr. pooling • ϊʔυࣗମͷϕΫ τϧΛར༻͢Δํ͕ຊདྷܭࢉ͍ͨ͠άϥϑຒΊࠐΈΛ࠶ߏ੒ Ͱ͖͍ͯͨ • attr. pooling಺Ͱ͸average pooling͕࠷΋ྑ͘ɺ node averageʹඖఢ ଐੑ୯ҐͰͷҰக཰Ͱ͸attr. pooling > node pooling • ଐੑϕΫ τϧΛར༻͢Δํ͕ྨࣅਓ෺ͷଐੑͷҰக཰͕ߴ͔ͬͨ - ಉ͡اۀ಺Ͱͷ͍ۙผਓΛྨࣅਓ෺ͱநग़͢Δͱ͍ͬͨέʔε Precision@k ଐੑ୯ҐͰͷҰக཰ ʢ%ʣ random 0.086 2.73 node average 2.24 3.41 attr. average 2.18 6.67 attr. max 1.49 4.60 attr. concat 2.19 6.61 पลϊʔυͷଐੑΛར༻ͨۙ͠ࣅతͳຒΊࠐΈ • ۙࣅతʹಘΒΕΔάϥϑຒΊࠐΈ ΛಘΔ • ܭࢉίετ͕௿͘ɺ άϥϑͷҰ෦Λ༻͍ͯஞ࣍తʹ ϕΫ τϧͷܭࢉ͕Մೳͳख๏Λద༻ • ଐੑϊʔυͷຒΊࠐΈϕΫ τϧ ͸ ͋Β͔͡Ίܭࢉ͠ ͓ͯ͘ Poolingͷํ๏͸Լه͔Βબ୒ • average pooling • max pooling εςοϓ2. ଐੑΛར༻ͨۙ͠ࣅతͳάϥϑຒΊࠐΈΛܭࢉ Ϣʔβʔ اۀ εςοϓ1. άϥϑຒΊࠐΈΛܭࢉ શϊʔυΛར༻͢ΔάϥϑຒΊࠐΈ • ຊདྷܭࢉ͍ͨ͠ຒΊࠐΈϕΫ τϧ ΛಘΔ • ܭࢉίετ͕ߴ͘ɺ ߴස౓ʹߋ৽͕Ͱ͖ͳ͍ ख๏Λద༻ Pytorch-BigGraphΛར༻ • ຒΊࠐΈ࣍ݩ: 400 D • Ϟσϧ ɿ complEx ϊ ʔυ ͷۙࣅతʹಘΔ ຒΊࠐΈϕΫ τϧ ϊ ʔυ ͷຊདྷܭࢉ͍ͨ͠ ຒΊࠐΈϕΫ τϧ ϊ ʔυ ϊ ʔυͷू߹ ϊ ʔυ ʹରԠ͢Δ ଐੑϕΫ τϧ આ໌ Notation