Personalized Bundle Recommendation in Online Games 阅读笔记

Personalized Bundle Recommendation in Online Games 阅读笔记

CIKM 2020

Qilin Deng, Kai Wang, Minghao Zhao, Zhene Zou, Runze Wu, Jianrong Tao, Changjie Fan and Liang Chen.

Netease Game and Sun Yat-Sen University

存在挑战

  1. 数据稀疏和冷启动问题。
  2. Bundle的泛化。
  3. Bundle与Bundle之间的相关性。

主要贡献

  1. 在工业界部署,通过在线A/B测试,提高了60%转化率和15%交易额。

    A/B 测试,让一部分用户使用A方案,一部分用户使用B方案,统计对比不同指标,以判断不同方案的优劣。

  2. 采用了可区分的消息传递框架,区分对待user-item,user-bundle,bundle-item三种关联。

模型设计

整体是GCN-based模型。

  1. 相较于传统的user-item二部图,构造了user-item-bundle三部图
    A = [ 0 A u i A u b A u i T 0 A b i T A u b T A b i 0 ] \mathbf{A}=\left[\begin{array}{ccc} \mathbf{0} & \mathbf{A}_{u i} & \mathbf{A}_{u b} \\ \mathbf{A}_{u i}^{T} & \mathbf{0} & \mathbf{A}_{b i}^{T} \\ \mathbf{A}_{u b}^{T} & \mathbf{A}_{b i} & \mathbf{0} \end{array}\right] A=0AuiTAubTAui0AbiAubAbiT0

  2. 可区分的消息传递

    h i l + 1 = σ ( W l h i l + ∑ r ∈ R ∑ j ∈ N i r 1 c i , r W r l h j l ) \mathbf{h}_{i}^{l+1}=\sigma\left(\mathbf{W}^{l} \mathbf{h}_{i}^{l}+\sum_{r \in \mathcal{R}} \sum_{j \in N_{i}^{r}} \frac{1}{c_{i, r}} \mathbf{W}_{r}^{l} \mathbf{h}_{j}^{l}\right) hil+1=σWlhil+rRjNirci,r1Wrlhjl

  3. 链路预测层

    • 类似NGCF,融合不同层GCN的表示

    h u = h u 1 ∥ ⋯ ∥ h u L , h i = h i 1 ∥ ⋯ ∥ h i L , h b = h b 1 ∥ ⋯ ∥ h b L \mathbf{h}_{u}=\mathbf{h}_{u}^{1}\|\cdots\| \mathbf{h}_{u}^{L}, \quad \mathbf{h}_{i}=\mathbf{h}_{i}^{1}\|\cdots\| \mathbf{h}_{i}^{L}, \quad \mathbf{h}_{b}=\mathbf{h}_{b}^{1}\|\cdots\| \mathbf{h}_{b}^{L} hu=hu1huL,hi=hi1hiL,hb=hb1hbL

    • 双层MLP得到预测打分
      p ^ u i = sigmoid ⁡ ( W i 2 ReLU ⁡ ( W i 1 [ h u ∥ h i ] + b i 1 ) + b i 2 ) p ^ u b = sigmoid ⁡ ( W b 2 ReLU ⁡ ( W b 1 [ h u ∥ h b ] + b b 1 ) + b b 2 ) \begin{array}{c} \hat{p}_{u i}=\operatorname{sigmoid}\left(\mathbf{W}_{i}^{2} \operatorname{ReLU}\left(\mathbf{W}_{i}^{1}\left[\mathbf{h}_{u} \| \mathbf{h}_{i}\right]+\mathbf{b}_{i}^{1}\right)+\mathbf{b}_{i}^{2}\right) \\ \hat{p}_{u b}=\operatorname{sigmoid}\left(\mathbf{W}_{b}^{2} \operatorname{ReLU}\left(\mathbf{W}_{b}^{1}\left[\mathbf{h}_{u} \| \mathbf{h}_{b}\right]+\mathbf{b}_{b}^{1}\right)+\mathbf{b}_{b}^{2}\right) \end{array} p^ui=sigmoid(Wi2ReLU(Wi1[huhi]+bi1)+bi2)p^ub=sigmoid(Wb2ReLU(Wb1[huhb]+bb1)+bb2)

模型训练

  • Loss为BPRloss+正则化项
    L B P R ( u , p , n ) = − ln ⁡ σ ( p ^ u p − p ^ u n ) + λ ∥ Θ ∥ 2 2 L_{B P R}(u, p, n)=-\ln \sigma\left(\hat{p}_{u p}-\hat{p}_{u n}\right)+\lambda\|\Theta\|_{2}^{2} LBPR(u,p,n)=lnσ(p^upp^un)+λΘ22

  • 多任务学习
    L 1 = L B P R ( u , i + , i − ) , L 2 = L B P R ( u , b + , b − ) L_{1}=L_{B P R}\left(u, i^{+}, i^{-}\right), \quad L_{2}=L_{B P R}\left(u, b^{+}, b^{-}\right) L1=LBPR(u,i+,i),L2=LBPR(u,b+,b)
    先优化L1,L1收敛之后再优化L2

    相当于L1是一种预训练

  • 标签泄露问题

    原因:

    传统GCN在学习A和B之间有没有链接的时候,仍然使用了AB之间互相传递的信息。

    就好比,在不知道A和B是否认识的情况下,却让A和B开始对话了。而对话跟认识是一种强相关的行为,也就是对话这件事情,泄露了A和B认识的情况。

    解决方法:

    训练中采用小批次的方法。

    要预测A和B之间的关系前,先删除掉A和B之间的对话渠道,AB之间没有直接消息传递的情况下再进行预测。

  • 模型最终推理
    p ^ = p ^ u b + 1 ∣ b ∣ ∑ i ∈ b p ^ u i \hat{p}=\hat{p}_{u b}+\frac{1}{|b|} \sum_{i \in b} \hat{p}_{u i} p^=p^ub+b1ibp^ui
    user对Bundle的预测打分组成为,user-bundle的预测打分和user对bundle中每个item打分的平均分。

实验部分

  • 数据集

    Steam,Youshu,Netease,Justice

  • 对比方法

    BPR, BundleBPR, DAM, GCN-Bi/Ti- /B_, BundleNet- /B_

  • 评估指标

    MRR,Recall,NDCG

  • 实验结果

    Personalized Bundle Recommendation in Online Games 阅读笔记_第1张图片

  • 消融分析

    作者主要对三种设计进行了分析

    分别是

    设计 解释 作用
    REL Relational GCN,也就是可区分消息传递,对每种交互分别计算,再组合 跟具体数据集有关
    MTL 多任务学习,同时学习用户对items和bundles的偏好 跟具体数据集有关
    MBT 小批次训练,解决标签泄露问题 对网易云和逆水寒数据提升巨大,其他数据也有提升

一些感悟

  • 之前看的paper大多是聚集item的embedding得到bundle embedding,这篇paper提到整合打分也是可行的,但有一点需要注意的是,如果整合打分的话,需要像该paper一样,先用sigmoid把打分都整合到同一个尺度下,再进行整合。

  • 新接触到一种MRR的指标度量方法,MRR只关注列表中的第一个相关元素。

    猜想与paper中图一的GUI有关,图中GUI只会展示一个Bundle。

    Personalized Bundle Recommendation in Online Games 阅读笔记_第2张图片

  • 学习到一种新的思路,先学习user-item交互,收敛之后,保存下来,作为预训练好的embedding来进行后续user bundle交互的学习。

  • 标签泄露问题对模型的有效学习有着较大影响。

  • 一个模型就给实际线上业务带来了15%的成交额增长,被推荐系统的产业价值震撼到了。

你可能感兴趣的:(推荐系统,神经网络,pytorch,深度学习)