Metapath-guided Heterogeneous Graph Neural Network for Intent Recommendation 個人總結

Metapath-guided Heterogeneous Graph Neural Network for Intent Recommendation 個人總結

寫在前面:爲方便閱讀,儘量使用中文總結,對於翻譯無把握或專有詞彙,在中文後附上原文字段.

另,CSDN對markdown 導入、latex支持還有進步空間啊,最完整的體驗勞請移步GitHub拉下來再用Typora打開?(無恥引流開始了):my github

 

0. 原作信息

 @inproceedings{fan2019metapath,
   title={Metapath-guided Heterogeneous Graph Neural Network for Intent Recommendation},
   author={Fan, Shaohua and Zhu, Junxiong and Han, Xiaotian and Shi, Chuan and Hu, Linmei and Ma, Biyu and Li, Yongliang},
   booktitle={Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery \& Data Mining},
   pages={2478--2486},
   year={2019}
 } 

 

1. Contributions 本文貢獻

  • 提出基於詞嵌入的預處理(propose a uniform term embedding mechanism);

  • 意圖推薦任務,設計基於異構圖上metapath的模型MEIRec( design a metapath-guided heterogeneous Graph Neural Network to learn the embeddings of objects);

  • 線下、線上實驗都證明了模型的有效性。

 

2. Backgrounds 背景信息

2.1 意圖推薦 (e-commerce intent recommendation)

例子:

  • 輸入數據類型:

    • 特徵數據 attribute data

    • 交互數據 interaction data

  • 與傳統推薦系統的區別:

    1. 加入交互數據(點擊等)

    2. 不需要用戶輸入字段(基於字段輸入的聯想推薦如,輸入“小米”,系統給出“小米10Pro”等)

 

以圖的結構建模:

注意,此HIN的邊上無特徵,只是不同關係的劃分。

 

總的來說,意圖推薦任務可使用更多類別的數據,同時要求更加個性化的推薦。

 

2.2 Metapath相關定義

  1. Metapath定義:簡單理解,在異構圖中不同類型節點遍歷的一條路徑,如(User-Item-Query)

  2. Metapath-guided Neighbors: 以上圖爲例,對於Metapath UIQ 上節點​$u_2$,它的鄰居爲:​

    \mathcal{N}_{\mathrm{UIQ}}\left(u_{2}\right)=\left\{\mathcal{N}_{\mathrm{UIQ}}^{0}\left(u_{2}\right), \mathcal{N}_{\mathrm{UIQ}}^{1}\left(u_{2}\right), \mathcal{N}_{\mathrm{UIQ}}^{2}\left(u_{2}\right)\right\}=\left\{u_{2}, i_{1}, i_{2}, q_{1}, q_{2}, q_{3}\right\}

 

3. MEIRec Model 建模

3.1 Overview 概覽

任務:輸入(User, Item, Query) 的圖結構數據;輸出User最可能的Query(意圖推薦)

 

3.2 Uniform Term Embedding

實質(what):預處理。將原始輸入處理爲合理的特徵向量作爲網絡的輸入。

  • 面對問題(why):輸入的Query或Item作爲一個整體特徵👉大量高維、稀疏特徵,參數過多不利於學習。

  • 解決方案(how):分詞降維 + Embedding提取特徵

    • 例子:輸入Query“LV Hand Bags",分詞後得到terms{'LV','Hand','Bag'}

    • 分詞使用阿里內部工具

    • Embedding:聚合每個term的embedding得到原始輸入的embedding

    • E=g\left(e_{w_{1}}, e_{w_{n-1}}, e_{w_{n}}\right)

 

3.3 Metapath-guided HeGNN

  • 基於對任務的理解,先驗的定義MetaPath

    •  

  • 本層任務:聚合metapath上鄰居節點的信息。

 

本文針對兩種Metapath:QIU、IUQ建模,即本層最後輸出的分別是​,​$User Embedding:U_i,QueryEmbedding:Q_i$

接下來以User Modeling爲例,說明如何產生​。

 

以圖中上方的藍框爲例,對於用戶​$U_i$在Metapath上有一階鄰居$I$​,二階鄰居​$Q$

  1. $i_1$收集其對應鄰居​的embedding信息,

    $$I_{j}^{\mathrm{UIQ}}=g\left(E_{q_{1}}, E_{q_{2}}, \cdots\right)$$

    $g(·)$在論文中試驗後,表示$avg(·)$​性能最好

  2. $U^{UIQ}_i$再收集其對應鄰居​的embedding信息,

    $$U_{i}^{\mathrm{UIQ}}=g\left(I_{1}^{\mathrm{UIQ}}, I_{2}^{\mathrm{UIQ}}, \cdots\right)$$

    因用戶查詢或點擊商品是線性時間上發生的, ​$g(·)$此處使用LSTM

  3. 最後聚合得到真正的​$U_i$

    $$U_{i}=g\left(U_{i}^{\rho_{1}}, U_{i}^{\rho_{2}}, \cdots, U_{i}^{\rho_{k}}\right)$$

 

3.4 Optimization Objective 優化對象

  • 將graph embedding、static features連接後輸入MLP做預測

    $$\hat{y}_{i j}=\operatorname{sigmoid}\left(f\left(U_{i} \oplus Q_{j} \oplus S_{i j}\right)\right)$$

  • 損失函數設計

    $$J=\sum_{i, j \in \mathcal{Y} \cup \mathcal{Y}^{-}}\left(y_{i j} \log \hat{y}_{i j}+\left(1-y_{i j}\right) \log \left(1-\hat{y}_{i j}\right)\right)$$

 

4. Experiment

數據集:10天的淘寶內部數據,億級節點數,千萬級邊數。

分別嘗試使用1天、3天、5天的數據量 訓練、測試

線下測試結果:

  • 較baseline(GBDT+MP/DW)提升:2.1%~4.3%

  • 和無使用異構信息的模型對比,證明引入異構信息是work的

  • 模型伸縮性好,可用於大規模數據集

  • 對於不同類型的鄰居,應比對、選擇合適的aggregation function,如模型中由先驗分析+實驗驗證,對​ $Item to User$選擇了LSTM

  • 模型性能、訓練時長和鄰居數量有關,前期呈正相關。

線上AB測試:比現有GBDT在各項指標小有增幅。

 

-1. One more thing

對於個人建模的思考:

  • 淘寶數據:

    • 沒有使用邊上特徵

    • Intuitively,淘寶的圖更稠密,每個用戶都有一定的歷史數據積累,相對交易支付數據等沒那麼稀疏

    • 圖結構抽象很清晰,有效的分爲{user, item, query}三部

  • metapath的選取在此作中基於對業務的瞭解,先驗知識。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章