前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kdd'21「华为」利用图卷积进行特征交互和兴趣挖掘

Kdd'21「华为」利用图卷积进行特征交互和兴趣挖掘

作者头像
秋枫学习笔记
发布2022-09-19 11:47:09
4990
发布2022-09-19 11:47:09
举报
文章被收录于专栏:秋枫学习笔记

image.png

Dual Graph enhanced Embedding Neural Network for CTR Prediction https://arxiv.org/pdf/2106.00314.pdf

1.背景

1.1 现存的问题

基于特征交互用户兴趣挖掘的方法已经得到了广泛的应用,比如比较有名的DIN,DIEN等。但是存在以下两个问题:

  • 特征稀疏性:基于特征交互方法依赖于不同特征的共现,随着用户和item数量的不断增加,一些稀疏的特征在训练集中出现次数很少。如图1所示,蓝色虚线为特征相关的统计,可以发现很多特征出现的频率都是很低的
  • 行为稀疏性:基于用户兴趣挖掘的方法依赖于用户的历史行为,从历史行为中挖掘用户的兴趣。但是从图1中的红色虚线部分,我们可以发现用户行为分布是长尾的,大部分用户的交互行为比较少。

image.png

1.2 解决方法(创新点)

针对上述两个稀疏性问题,本文提出了 Dual Graph enhanced Embedding Neural Network (DG-ENN) 。该方法从两方面解决上述问题:

  • attribute graphs:属性图由user(item)的属性构成,包括性别、年龄等(类型,品牌等)。属性图中的高阶邻近度有助于增强稀疏特征的嵌入,因为学习一个节点的嵌入也有助于学习其邻居的嵌入,这样稀疏特征有更多的机会被更新。
  • collaborative graph:协作图是由users和items之间的协作信号构建的。在图中的节点就是user和item,当然边的关系就存在user-user,user-item,item-item。user-item表示用户与item有交互,比如点击;user-user基于用户画像和用户行为的相似性定义;item-item基于用户行为中的转换关系来定义。

1.3 在图上学习有效表征的难点

  • 在属性图中,不同属性属于不同的field,具有非常不同的特性,这使得在学习过程中聚合他们是非常困难的
  • 协作图中存在各种不同的边,边与边之间又存在传递性,如何建模用户和item之间的关系是困难的

1.4 解决方法

  • 利用分治法,单独学习每一个field中特征包含的信息,然后进行整合
  • 采用类似累积学习的策略,先学习user-user和item-item的边关系,然后学习user-item之间的关系。

2. 符号

User:

\mathcal{U}=\{u_1,...,u_M\}

item:

\mathcal{V}=\{v_1,...,v_N\}

含有J fields的User属性:

\mathcal{A}=\{\mathcal{A}^1,...,\mathcal{A}^J\}

含有K fields的item属性:

\mathcal{B}=\{\mathcal{B}^1,...,\mathcal{B}^K\}

含有R fields的上下文属性(时间戳,展示位置等):

C=\{C^1,...,C^R\}

User-Item的交互关系用矩阵表示:

\mathcal{Y} \in \mathbb{R}^{M \times N}

,

y_{uv}=1

表示user如何item有交互 用户行为序列:

S_u=\{s_1,...,s_{T_u}\}

s_1\in V

综上可以得到的特征是:

x=[u,v,A_u,B_v,S_u,C]

这里的u,v可以理解为是id,他们对应的特征是在A和B里面

3 DG-ENN

如图所示,主要由两部分组成,分别为属性图卷积和协作图卷积。

3.1 图构造

3.1.1 属性图

一个属性可以在多个用户或项目中,作为改善其表征的桥梁。这里主要构造两个属性图,分别是用户属性图

\mathcal{G}_{u a}=\left\langle\mathcal{U} \cup \mathcal{A}, \mathcal{E}_{u a}\right\rangle

和item属性图

\mathcal{G}_{v b}=\left\langle\mathcal{V} \cup \mathcal{B}, \mathcal{E}_{v b}\right\rangle

e_{ua}=(u,a)

表示属性a属于用户u。

3.1.2 协作图

受协同过滤启发,用协作信号扩展用户的行为序列从而缓解稀疏性问题。item-user交互图可以用二部图表示

\mathcal{G}_{u v}=\left\langle\mathcal{U} \cup \mathcal{V}, \mathcal{E}_{u v}\right\rangle

,但是这个只能表示item-user之间的关系,没有user-user和item-item之间的关系,因此需要再构建两个图。正如前文所述,user-user的图构建是通过用户之间的相似度,此处相似度的计算方式如下:

\operatorname{sim}(i, j)=\alpha_{1} \frac{\left\langle\mathbf{Y}_{i}, \mathbf{Y}_{j}\right\rangle}{\left\|\mathbf{Y}_{i}\right\| \cdot\left\|\mathbf{Y}_{j}\right\|}+\alpha_{2} \frac{\left\langle\mathbf{A}_{i}, \mathbf{A}_{j}\right\rangle}{\left\|\mathbf{A}_{i}\right\| \cdot\left\|\mathbf{A}_{j}\right\|}

其中第一部分是计算用户之间偏好的相似性,Y就是用户交互矩阵中的行;A是用户属性,因此第二部分计算的是用户画像的相似性。当计算好两两用户之间的相似度之后,构建user-user的k-nn graph item-item的图是基于用户的行为序列来构建,如果item被同一个用户连续交互,则这两个item之间存在边。协作图可以构建为

\mathcal{G}_{c f}=\left\langle\mathcal{U} \cup \mathcal{V}, \mathcal{E}_{u u} \cup \mathcal{E}_{u v} \cup \mathcal{E}_{v v}\right\rangle

,通过聚合节点的邻域信息可以促进用户表征。

3.2 属性图卷积

正如背景中所述,不同的特征属于不同的field,他们各自有不同的特性和分布,例如价格和类型就属于不同的field,因此本文采用分治的方法,先在field内做信息传播,然后再交叉。

3.2.1 Field-wise Information Propagation

假设h为中心点,

N_h

为h对应的邻居,则可以采用已提出的GCN相关方法来做信息传播,本文主要采用了GCN,NGCF和LightGCN三种方法,并试验了三种方法的性能,由于不是创新点,并没有对GCN做改进,这里不做具体方法的介绍。这部分主要是采用现有的GCN的相关方法,对每一个field做信息传播。感兴趣的小伙伴可以阅读相关文献。总体可以表示为:

\mathbf{e}_{h}^{(l+1)}=f_{\star}^{(l)}\left(\mathbf{e}_{h}^{(l)}, \mathbf{e}_{N_{h}}^{(l)}\right)

f表示各种GCN对应的方法,e表示不同层的对应节点的表征。这里的初始输入

e_h^0

是原始embedding,和后面的协作图有所不同。最后经过多层信息传播后,对每一层得到的表征求和得到最终表征:

\hat{\mathbf{e}}_{h}=\sum_{l=0}^{L} \mathbf{e}_{h}^{(l)}

3.2.2 Cross-field Information Integration

这部分就是要将不同field得到的表征进行整个。这部分整合比较简单,直接将不同field的表征求和。公式如下:

\mathbf{z}_{u}=\sum_{t=1}^{J} \hat{\mathbf{e}}_{u}^{(t)}, \mathbf{z}_{v}=\sum_{t=1}^{K} \hat{\mathbf{e}}_{v}^{(t)}

3.3 协作图卷积

协作图这里,作者先学习user-user和item-item的边的保证,然后在进行user-item的学习。user-user和item-item是类似的,因此这里以user-user为例。设u为中心,

N_u

为u的邻居集合,则信息传播可以表示为:

\mathbf{z}_{u}^{(l)}=f_{\star}^{(l-1)}\left(\mathbf{z}_{u}^{(l-1)}, \mathbf{z}_{N_{u}}^{(l-1)}\right)

,这里的f和属性图中一样采用各种GCN相关的方法进行信息传播,不同的是,这里的原始输入

z_u^0

z_{N_u}^0

是属性图中得到的表征,而属性图中的原始输入时原始的embedding。这里也和属性图一样,通过求和每一层的输出得到最终的表征,user和item分别为:

\hat{\mathbf{z}}_{u}=\sum_{l=0}^{L} \mathbf{z}_{u}^{(l)}
\hat{\mathbf{z}}_{v}=\sum_{l=0}^{L} \mathbf{z}_{v}^{(l)}

在通过user-user和item-item得到新的表征后,进行user-item交互的信息传播,得到最终的表征,公式还是类似的,这里不赘述了。

\mathbf{q}_{u}^{(l)}=f_{\star}^{(l-1)}\left(\mathbf{q}_{u}^{(l-1)}, \mathbf{q}_{N_{u}}^{(l-1)}\right)
\hat{\mathbf{p}}_{u}=\sum_{l=0}^{L} \mathbf{p}_{u}^{(l)}
\hat{\mathbf{p}}_{v}=\sum_{l=0}^{L} \mathbf{p}_{v}^{(l)}

通过最终得到的表征,我们可以构建用于预测的特征

P=[\hat{p_u},\hat{p_v},z_{A_u},z_{B_v},\hat{p}_{S_u},e_c]

,这里简单对各个特征做一个解释。前两个p不用多说,就是包含用户和item之间交互信息的用户表征和item表征,这里对应用户兴趣挖掘;中间两个z是属性图中得到的,对应于特征交互问题;

\hat{p_{S_u}}

是用户的行为序列,这里包含了交互信息,因此将序列中的item表征用经过协作图信息传播后的

\hat{p_i}

表示;最后的e表示最原始的上下文embedding。

4 实验

从实验结果中可以发现,在三个数据集上,本文所用的方法能够明显提升AUC。

5 总结

这里对本文做一个简单的总结。首先在ctr预估中,我们往往会采用特征交互(FM系列,DCN等)和兴趣挖掘(DIN系列),但是这些方法会遇到两个问题就是特征稀疏性和行为稀疏性,这会使得学习到的表征不好。‍‍‍‍‍‍‍‍‍‍因此作者提出了两个方案来解决这两个问题,分别构建了属性图和协作图,通过图中节点,边的关系来增强表征。通过图卷积,进行信息的传播,缓解稀疏性问题,提升特征表征。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 现存的问题
  • 1.2 解决方法(创新点)
  • 1.3 在图上学习有效表征的难点
  • 1.4 解决方法
  • 3.1 图构造
    • 3.1.1 属性图
      • 3.1.2 协作图
      • 3.2 属性图卷积
        • 3.2.1 Field-wise Information Propagation
          • 3.2.2 Cross-field Information Integration
          • 3.3 协作图卷积
          相关产品与服务
          大数据
          全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档