Share
Embed
Graph Convolutional Matrix Completion
書誌情報
タイトル: Graph Convolutional Matrix Completion
著者: Rianne van den Berg, Thomas N. Kipf, Max Welling
所属: AMLab (University of Amsterdam)
採択: KDD(Deep Learning Day) 2018
概要
レコメンドタスクにおけるMatrix CompletionをGraphにおけるラベル付きリンク予測に置き換えて解く手法を提案
ユーザーとアイテムのレーティング行列を2部グラフとして解釈し,Graph Convolutionを使ったGraph Auto-Encoderでユーザーとアイテムの特徴量を獲得する.
その際に,ユーザーやアイテムに関するコンテンツ情報も取り入れることができるモデル構造.
実験で複数のデータセットでSoTAを達成し,MovieLens10M等の大規模データセットにも適用可能であることを確認した.
また,コンテンツ情報をレコメンドに導入することで,Cold-start問題に対しても有効な手法であることを実験的に確認できた.
tanimutomo
January 10, 2019
Transcript
46 slides
-
Bibliography • Title: Graph Convolutional Matrix Completion • Accepted: KDD
DeepLearning Day(2018) • Author: R. vd Berg, T. N. Kipf, M. Welling ʢAMLab, University of Amsterdamʣ • Max Wellingઌੜͷݚڀࣨ(Kingma͞Μ͜͜ʣ • ཧཧग़ऀ͕ଟ͍ɽڧͦ͏ɽɽɽ • Graph Convolution͕ྲྀߦΔ͖͔͚ͬΛ࡞ͬͨϥϘ • ಛʹɼKipf͞ΜGraph ConvolutionerʢΠέϝϯ͗͢ΔPh.Dʣ 2 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Abstract • ϨʔςΟϯάͷߦྻʢϢʔβʔͷΞΠςϜʹର͢ΔධՁ͕ ೖͬͨߦྻʣΛ࠶ߏ͢ΔϨίϝϯυλεΫ(CF)Λղ͍ͨ • ϨʔςΟϯάߦྻΛ2෦άϥϑͱͯ͠ղऍ͠ɼGraph ConvolutionΛ༻ͨ͠Graph Auto-encoderΛ༻ͯ͠༧ଌ 3 Preliminary
1 Preliminary 2 Method Details Experiment Conclusion -
Agenda • Preliminary for Recommender System • Preliminary for Graph
Convolution • Method Overview • Method Details • Experiment • Conclusion and Future works 4 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Agenda • Preliminary for Recommender System • Preliminary for Graph
Convolution • Method Overview • Method Details • Experiment • Conclusion and Future works 5 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
What is Recommender System? • ϨίϝϯγεςϜ • Recommenders: Tools to
help identify worthwhile stuff (ਪનγεςϜ:ͲΕʹՁ͕͋Δ͔Λಛఆ͢ΔͷΛॿ͚Δಓ۩) • ྫʣݱࡏ·ͰͷϢʔβʔͷߪങཤྺΛར༻ͯ͠ɼࠓޙͷߪങ׆ ಈΛ༧ଌ͢Δ • ϨίϝϯυγεςϜେ͖͚ͯ͘2ͭ • Content-based • Collaborative Filtering 6 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Content-based • ΞΠςϜʢϢʔβʔʣʹؔ͢Δใ͔ΒɼΞΠςϜʢϢʔβʔʣ ͷಛྔΛઃܭ͠ɼͦͷྨࣅΛܭࢉ →ྨࣅͷߴ͍ΞΠςϜΛϢʔβʔʹਪન 7 Πϝʔδ* * https://qiita.com/haminiku/items/f5008a57a870e0188f63 Preliminary
1 Preliminary 2 Method Details Experiment Conclusion -
Collaborative Filtering • ΞΠςϜͱϢʔβʔͷߪങ׆ಈʹؔ͢Δߦྻʢ֤ཁૉධՁ ߪೖΛද͢ʣ͔ΒϢʔβʔΞΠςϜͷڞىੑΛࢉ ग़͢Δ 8 Πϝʔδ* * https://qiita.com/haminiku/items/f5008a57a870e0188f63
Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Recent CF Method • ߦྻղʢMarix Factorizationʣ→༗໊ • ϨʔςΟϯάߦྻΛϢʔβʔͷಛྔͱΞΠςϜͷಛྔ ͷߦྻͷੵͰද͢͜ͱͰɼະ؍ଌͷϨʔςΟϯάΛ༧ଌ 9
* https://towardsdatascience.com/paper-summary-matrix-factorization-techniques-for-recommender-systems-82d1a7ace74 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Matrix Factorization 10 R R I I J J X
U V Ҭϝ ογϡ ΰϛͷᕓ ؍ଌ͞Εͨ × ~ ~ R R I I J J X U V Ҭϝ ογϡ ΰϛͷᕓ ؍ଌ͞Εͨ × ~ ~ % " X UVT R R I I J J X U V Ҭϝ ογϡ ΰϛͷᕓ ؍ଌ͞Εͨ × ~ ~ U R R I I J J X U V Ҭϝ ογϡ ΰϛͷᕓ ؍ଌ͞Εͨ × ~ ~ V #!$ user item userͷಛྔ Λද͢ߦྻ itemͷಛྔ Λද͢ߦྻ ࠶ߏ͞Εͨ ϨʔςΟϯάߦྻ ݩͷϨʔςΟϯάߦྻ ʢͨͩ͠؍ଌ͞ΕͨͷΈͷࠩΛ࠷খԽ͢Δʣ Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Interprete Matrix as Graph • ϨʔςΟϯάߦྻϢʔβʔͱΞΠςϜΛϊʔυͱ͢Δ2෦ά ϥϑͰදͤΔ 11 Preliminary 1
Preliminary 2 Method Details Experiment Conclusion -
How to use Graph Convolution • άϥϑߏͰදͨ͠ϨʔςΟϯάߦྻΛ༻͍ͯɼϢʔβʔͱ ΞΠςϜͷಛྔΛಘΔ • ϢʔβʔͱΞΠςϜͷಛྔΛݩʹɼݩͷάϥϑΛ࠶ߏ͢
ΔΠϝʔδͰະ؍ଌͷϨʔςΟϯάΛϥϕϧ͖ϦϯΫ༧ଌ 12 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Why use Graph Convolution? • ϊʔυʹؔ͢ΔิॿใʢContent-basedͰΘΕ͍ͯΔΑ͏ ͳใʣΛಛྔʹؚΊΔ͜ͱ͕Ͱ͖Δ • ϨʔςΟϯάͷؔҎ֎ͷใΛར༻͢Δ͜ͱͰɼCold-start ͷղܾʹۙͮ͘
13 ͜͜ʹิॿใΛಥͬࠐΊΔ Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Summary(1) • Graph ConvΛͬͨϨίϝϯυͷఏҊΛ͍ͯ͠Δจ • ϨίϝϯυγεςϜɼConten-basedͱCFͷେ͖͘2ͭ ʢࠓճओʹCFʣ • CFͷதͰߦྻղ*༗໊Ͱࠓճ͜Εʹ͍ۙ ʢ*
user-item matrixΛuserͷಛͱitemͷಛʹղ͢Δʣ • ࠓճ͜ͷߦྻΛGraphͱͯ͠ଊ͑Δ GraphߏΛೖྗͱͯ͠userͱitemͷಛྔΛಘΔ ิॿใΛؚΊͯͦΕͧΕͷಛྔΛಘΒΕΔͷ͕ར 14 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Agenda • Preliminary for Recommender System • Preliminary for Graph
Convolution • Method Overview • Method Details • Experiment • Conclusion and Future works 15 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
What is Graph Convolution? • Graph Convolution • ͦͷ໊ͷ௨ΓGraphΛΈࠐΜͰɼपลʹใΛͤ͞ Δܭࢉํ๏
• Graph Convolutionͷछྨ • Graph FourierมΛ༻͍ͨղੳతͳConvolution • తͳํ๏ ೖྗͱͳΔಛྔϕΫτϧͷઢܗ݁߹͔ΒͷඇઢܗมͰ NNͰֶश 16 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Various Graph Structure 17 * https://tech-blog.abeja.asia/entry/2017/04/27/105613 Preliminary 1 Preliminary 2
Method Details Experiment Conclusion -
Convolution for Image 18 * https://github.com/vdumoulin/conv_arithmetic Preliminary 1 Preliminary 2
Method Details Experiment Conclusion -
• Image • ϊʔυ͕άϦουঢ়ʹฒͼɼଓ͕ؔҰఆ • άϥϑߏͰΑ͘ද͞ΕΔσʔλʢSNSࠓճʣ • ϊʔυͷଓ͕ؔෆఆܗ Difference between
Image and Ordinary Graph 19 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
• ۙϊʔυͷใΛͨͨΈ͜Ή • Relationͷछྨ͝ͱʹߦ͏ ʢRelation͕RGBͷΠϝʔδʣ ʢRelation: ධՁʣ • ߹ʹΑͬͯࣗͷϊʔυ ܭࢉ͢Δ
ʢࠓճͷจͰ͠ͳ͍ʣ Directly Graph Convolution 20 * Modeling Relational Data with Graph Convolutional Networks Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
• ࣜͰද͢ͱ͜Μͳײ͡ Directly Graph Convolution 21 * Modeling Relational Data
with Graph Convolutional Networks ׆ੑԽؔ ۙϊʔυ શͯͰ࣮ߦ Weight ࣍ͷӅΕ ͷಛྔ શͯͷRelation Ͱ࣮ߦ ਖ਼نԽ ۙϊʔυ ͷಛྔ ࣗͷϊʔυ ͷಛྔ Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Summary(2) • Graph FourierมΛͬͨͷͱతͳํ๏͕͋Δɽࠓճ ޙऀ • ը૾Graphߏͱͯ͠ଊ͑Δ͜ͱ͕Ͱ͖Δ ࠓճͷΑ͏ͳGraphͱҧ͏ͷϊʔυͷྻ۩߹ • Graph
Convolutionଓ͞ΕͯΔϊʔυใΛͤ͞Δ • ෆఆܗͳϊʔυؔͷGraphߏֶशՄೳʹͨ͠ͷ͕Graph Convolutionͷ͍͢͝ͱ͜Ζ 22 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Agenda • Preliminary for Recommender System • Preliminary for Graph
Convolution • Method Overview • Method Details • Experiment • Conclusion and Future works 23 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
• X: ϊʔυͷಛྔΛؚΉߦྻ ʢϊʔυʣxʢಛ࣍ݩʣ • A: άϥϑߏʹ͓͚Δྡߦྻ ʢϊʔυʣx ʢϊʔυʣ •
Z: ϊʔυͷຒΊࠐΈಛྔͷߦྻ ʢϊʔυʣxʢຒΊࠐΈͷಛ࣍ݩʣ • A^: ࠶ߏ͞Εͨྡߦྻ Graph Auto-Encoder 24 Encoder Decoder Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Graph for Matrix Completion 25 ←ϊʔυू߹ ←Itemͷϊʔυू߹ ←Userͷϊʔυू߹ ←ϊʔυؒͷΤοδ ←Τοδʹඥͮ͘ϦϨʔγϣϯ
ʢࠓճධՁʣ Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Graph Auto-Encoder (Matrix ver) 26 Encoder Decoder ←Xϊʔυใͷߦྻ ←UserͱItemͷಛྔߦྻ ↖︎
ධՁ͝ͱʹྡߦྻ͕࡞͞ΕΔ ↖︎ ࠶ߏ͞Εͨྡߦྻ Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Graph Auto-Encoder (Matrix ver) 27 Preliminary 1 Preliminary 2 Method
Details Experiment Conclusion -
• Graph Convolution Layer => Dense Layer ͷྲྀΕ • Conv
Layerͷํ࠷ॳʹઆ໌ͨ͠Graph Convͱ΄ͱΜͲಉ͡ ʢҧ͍ࣗͷϊʔυͷܭࢉΛؚΊͳ͍ʣ • Dense Layerઢܗม͔Βͷඇઢܗม ʢͨͩ͠weightuserͱitemͰڞ༗͢Δʁʣ Graph Convolutional Encoder 28 Graph Convolution Layer Dense Layer where Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
• userͷಛྔ x Q (ֶशՄೳͳߦྻ) x itemͷಛྔ Λܭࢉ͠ɼ֤ධՁ͝ͱʹεΧϥʔΛࢉग़ • u,
Q, v͕ύϥϝʔλͷιϑτϚοΫεͰ r (ධՁ)ʹؔ͢Δ֬ ΛԾఆ r ͷظΛܭࢉ͢Δ Bilinear Decoder 29 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Agenda • Preliminary for Recommender System • Preliminary for Graph
Convolution • Method Overview • Method Details • Experiment • Conclusion and Future works 30 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
• r ʹؔ͢Δ֬ʹରͯ͠ɼෛͷରΛLossͱ͢Δ • ݩʑ؍ଌ͞Ε͍ͯΔධՁͷΈΛLossʹՃࢉ Loss Function 31 ϚεΫߦྻ ؍ଌͷi,
jͰ iteration r = Mij (؍ଌ) ͷ࣌1ɼͦΕҎ֎0 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
• ಛఆͷϊʔυͷґଘ͗͢͠ͳ͍ϩόετͳϊʔυಛྔΛ֫ ಘ͢ΔͨΊ • Ұఆ֬ (p dropout)Ͱɼ͋Δϊʔυͷ͔Β͞ΕΔใ͕0 ʹͳΔ • Edge
Dropoutʢ͋ΔΤοδ͔Β͞ΕΔใ͕0ʹͳΔʣΑ ΓNode Dropoutͷํ͕ਫ਼͕͍͍Β͍͠ Node Dropout 32 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
• େنσʔληοτʢRating͕10M݅ͱ͔ʣMemoryʹͷΒ ͳ͍ͷͰɼbatchॲཧΛಋೖ͢Δ • ϝϞϦݮ͚ͩͰͳ͘ɼਖ਼ଇԽͱͯ͠ػೳ͢Δ • Loss functionͷContributionΛجʹɼbatchΛαϯϓϦϯά ͢Δʁ •
Full-batch trainingͱਫ਼΄ͱΜͲมΘΒͳ͍͜ͱ࣮ݧͰ ֬ೝͰ͖ͨ • FullͰͰ͖ΔDatasetऩଋͷΛߟྀͯ͠FullͰͬͨ Mini-batching 33 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
• ࣮͢Δ࣌ޮΛߟ͑ͯɼߦྻͷ··ܭࢉͰ͖ΔΑ͏ௐ ʢཁૉ͝ͱʹIteration͍ͯ͠Δͱແݶʹ͕࣌ؒ৯͏ͨΊʣ Vectorized Implementation 34 Preliminary 1 Preliminary 2
Method Details Experiment Conclusion -
• ೖྗͷಛߦྻʹίϯςϯπใΛೖྗ͢Δͱɼ͏·͘ Ͱ͖ͳ͍͕ൃੜ͢Δ →ίϯςϯπใิॿใͱͯ͠ѻ͏ • ೖྗNodeΛࣝผ͢Δ͚ͩͷone-hot vector • ίϯςϯπใΛར༻ͨ͠ϊʔυಛྔΛผʹࢉग़͢Δ Input
feature representation 35 Dense Layer ίϯςϯπϕʔε ͷಛྔ ίϯςϯπ ใͷೖྗ Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
• UserItem͕ͭධՁͷɼධՁஈ֊͝ͱʹόϥόϥ ʢ͋ΔItemධՁ͕ߴ͍ͨΊ5͕ଟ͘ɼ1΄ͱΜͲͳ͍ʣ →࠷దԽ͞ΕΔස͕ҟͳͬͯ͠·͍ɼաֶशͷՄೳੑ͋Γ • WeightΛධՁஈ֊ؒͰڞ༗͢Δ͜ͱͰόϥϯεΛͱΔ Weight Sharing 36 Ordinal
Weight Sharingɼ r ҎԼͷධՁஈ֊ͷॏΈΛ શͯར༻͢Δ WS using Basis Weight Matrixɼ جఈߦྻPsͱaͷઢܗ݁߹Ͱ Weight matrixΛఆٛ͢Δ Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Agenda • Preliminary for Recommender System • Preliminary for Graph
Convolution • Method Overview • Method Details • Experiment • Conclusion and Future works 37 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Main Baselines 39 • sRGCNN: Graph CNNͰ DecoderʹRNNΛར༻͍ͯ͠Δ • CF-NADE:
Auto-EncoderͷҰछͰɼະ؍ଌϦϯΫʹॳظͱͯ͠3Λ༩͑ͯ ͍Δɽ·ͨͦͷଞ͍ΖΜͳςΫχοΫΛಋೖ ʢͪΌΜͱཧղͰ͖ͳ͔ͬͨʣ Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
MovieLens 100K 40 • େࠩͰউར • sRGCNNΑΓਫ਼͕͍͍ͱ͍͏͜ͱɼRNNΛͬͯෳࡶʹ ܭࢉ͢ΔΑΓಛྔΛߦྻΛ࠶ߏ͢Δํ͕͍͍ Preliminary 1
Preliminary 2 Method Details Experiment Conclusion -
MovieLens 1M and 10M 41 • ߴ͍ਫ਼͕ग़͍ͤͯΔͷͰɼେنͳσʔληοτͰͷֶश͕Մೳ Ͱ͋Δ͜ͱ͕ࣔ͞Εͨ • CF-NADE͍ΖΜͳςΫχοΫΛ͓ͬͯΓɼGC-MCͦΕΛ
͏͜ͱͰ͖Δʢͭ·Γ͑উͯΔͥతͳʁʣ Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Flixster, Douban, & YahooMusic 42 • શͯಉ͡hyper parameterͰ͚ͬͨͲউͬͨ Preliminary 1
Preliminary 2 Method Details Experiment Conclusion -
Cold-start Analysis 43 • ML-100KͰɼNcਓͷϢʔβʔͷධՁΛɼNr·ͰݮΒ࣮͠ݧ • ίϯςϯπใΛಋೖͨ͜͠ͱʹΑΔޮՌΛݕূ͍ͯ͠Δ ಛʹ͕݅ ݫ͍͠΄Ͳ վળ͕େ͖͍
Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Agenda • Preliminary for Recommender System • Preliminary for Graph
Convolution • Method Overview • Method Details • Experiment • Conclusion and Future works 44 Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Conclusion 45 • Recommender SystemͷͨΊͷGraph Auto-EncoderΛ༻͍ͨ Matrix Completionख๏ɼGC-MCΛఏҊ • σʔληοτʹΑͬͯSoTAΛୡ͠ɼstochastic
mini batch samplingʹΑΔେنσʔληοτͷద༻Մೳʹͨ͠ Preliminary 1 Preliminary 2 Method Details Experiment Conclusion -
Future Work 46 • Content-basedͷಛྔͷநग़ํ๏ΛCNNRNNʹม͑Δ͜ ͱͰɼը૾ࣗવݴޠΛϨίϝϯυʹಋೖͰ͖ΔΑ͏ʹ͢Δ • ScalabilityΛߴΊΔͨΊʹɼsub-sampling local neighborhood
ͳͲͷޮతͳۙࣅํ๏Λಋೖ͢Δ • ·ͨɼਖ਼نԽ߲ʹAttention MechanismΛಋೖͯ͠Ϟσϧ ͷ͞ΒͳΔ֦ுΛࢦ͢ Preliminary 1 Preliminary 2 Method Details Experiment Conclusion