前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KDD'22|CrossCBR:跨视图对比学习在捆绑推荐中的应用

KDD'22|CrossCBR:跨视图对比学习在捆绑推荐中的应用

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

关注我们,一起学习~

标题:CrossCBR: Cross-view Contrastive Learning for Bundle Recommendation 链接:https://arxiv.org/pdf/2206.00242.pdf 代码:https://github.com/mysbupt/CrossCBR 会议:KDD 2022 学校:新加坡国立,中科大

1. 导读

捆绑推荐旨在向用户推荐一组相关商品,可以满足用户的各种需求。现有方法通常利用用户-包(user-bundle)和用户商品两者的交互信息来获得用户和包(bundle)的信息表征,分别对应于包视图和商品视图。然而,他们要么使用没有差异的统一视图,要么直接结合两个独立视图的预测,而忽略了两个视图表示之间的关键协作关联。目标:捆绑推荐是计算用户是否会和当前捆绑包交互。本文通过跨视图对比学习来模拟两种不同视图之间的合作关联。

  • 使两个单独学习的视图对齐,每个视图可以从另一个视图中提取互补信息,实现相互增强。
  • 此外,通过扩大不同用户/捆绑包的分散度,增强了表征的自识别性。

2. 方法

如图所示为CrossCBR的总体框架图。

2.1 问题定义

用户集合为

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

包(bundle)集合为

\mathcal{B}=\{b_1,...,b_N\}

,商品集合为

\mathcal{I}=\{i_1,...,i_O\}

用户-包交互定义为

X_{M\times N}=\{x_{ub}|u \in \mathcal{U},b\in \mathcal{B}\}

用户-商品交互定义为

Y_{M\times O}=\{y_{ui}|u \in \mathcal{U},i\in \mathcal{I}\}

商品与包的附属关系表示为

Z_{N\times O}=\{z_{bi}|i \in \mathcal{I},b\in \mathcal{B}\}

,x,y,z为0或1,1表示存在关系。

对每个用户的历史包和商品交互进行了去重,所以X和Y的每个元素都是二进制的0,1,即有还是没有交互。X和Y是分开生成的,允许用户直接与捆绑包和单个商品进行交互。因此,X和Y包含不同的信息,启发式地实现了两个不同视图之间的协同效应。捆绑推荐任务的目标是从上述历史数据中学习一个模型预测X中看不见的用户-捆绑交互。

2.2 学习两个视图的表征

2.2.1 包视图表征学习

为了从捆绑包视图中学习用户和捆绑包表征,首先基于用户-包交互矩阵X构建用户-捆绑包二分图,即 U-B 图。然后采用基于GNN的推荐框架LightGCN来学习用户和捆绑包的表征。第k层的信息传播表示为下式,

e_{u}^{B(0)}

,

e_{b}^{B(0)}

随机初始化,

e_u^{B*}

,

e_{b}^{B*}

为包视图的用户和包表征。

\left\{\begin{array}{l} \mathrm{e}_{u}^{B(k)}=\sum_{b \in \mathcal{N}_{u}} \frac{1}{\sqrt{\left|\mathcal{N}_{u}\right|} \sqrt{\left|\mathcal{N}_{b}\right|}} \mathrm{e}_{b}^{B(k-1)}, \\ \mathrm{e}_{b}^{B(k)}=\sum_{u \in \mathcal{N}_{b}} \frac{1}{\sqrt{\left|\mathcal{N}_{b}\right|} \sqrt{\left|\mathcal{N}_{u}\right|}} \mathrm{e}_{u}^{B(k-1)}, \end{array}\right.

总体过程和LightGCN是一致的,这里就不赘述了,得到K层的embedding后,将每层的embedding聚合表示为下式,

\mathrm{e}_{u}^{B *}=\sum_{k=0}^{K} \mathrm{e}_{u}^{B(k)}, \quad \mathrm{e}_{b}^{B *}=\sum_{k=0}^{K} \mathrm{e}_{b}^{B(k)}

2.2.2 商品视图的表征学习

对于商品表征的学习,分别以相同方式构建U-I和B-I二分图,然后同样采用LightGCN,在U-I图上进行信息传播,得到下式,这里的

e_{i}^{I(0)}

和上面的

e_{u}^{B(0)}

参数共享,得到的

e_u^{I*}

,

e_i^{I*}

是商品视图的用户和商品表征,

\left\{\begin{array}{l} \mathrm{e}_{u}^{I(k)}=\sum_{i \in \mathcal{N}_{u}} \frac{1}{\sqrt{\left|\mathcal{N}_{u}\right|} \sqrt{\left|\mathcal{N}_{i}\right|}} \mathrm{e}_{i}^{I(k-1)} \\ \mathrm{e}_{i}^{I(k)}=\sum_{u \in \mathcal{N}_{i}} \frac{1}{\sqrt{\left|\mathcal{N}_{i}\right|} \sqrt{\left|\mathcal{N}_{u}\right|}} \mathrm{e}_{u}^{I(k-1)} \end{array}\right.
\mathrm{e}_{u}^{I^{*}}=\sum_{k=0}^{K} \mathrm{e}_{u}^{I(k)}, \quad \mathrm{e}_{i}^{I *}=\sum_{k=0}^{K} \mathrm{e}_{i}^{I(k)}

基于商品视图得到商品表征,基于B-I图可以通过平均池化计算商品视图的包表征,公式如下,其中

\mathcal{N}_b

表示包b中的商品集合。

\mathrm{e}_{b}^{I *}=\frac{1}{\left|\mathcal{N}_{b}\right|} \sum_{i \in \mathcal{N}_{b}} \mathrm{e}_{i}^{I *}

从两个视图计算得到所有用户和包的表征后,可以汇总成矩阵,表示为

E_U^{B*},E_U^{I*} \in \mathbb{R}^{M \times d}

E_B^{B*},E_U^{I*} \in \mathbb{R}^{N \times d}

,商品表征为

E_I^{I*}

2.3 跨视图对比学习

2.3.1 数据增广

自监督对比学习的主要思想是鼓励同一对象的各种视图之间的表征相近,同时扩大不同对象的表征分散度。如果每个对象自然存在多个视图,则可以直接应用对比损失。在许多情况下,无法获得多个视图,则利用数据增强从原始数据生成多个视图。适当的数据增强不仅可以释放应用对比学习的(多视图)数据约束,还可以提高对抗潜在噪声的鲁棒性。因此,在保持原始保存(无增强)作为默认设置的同时,本节引入了两种简单的数据增强方法基于图的增强和基于embedding的增强

2.3.1.1 基于图的数据增强

主要是通过修改图结构来生成增强数据。采用了一种简单的edge dropout(ED)增强方法,它从原始图中随机删除一定比例(dropout rate 为ρ)的边缘。基本原理在于保留了图的核心局部结构。因此,可以增强学习表示的鲁棒性以对抗某些噪声。

2.3.1.2 基于embedding的增强

基于embedding的增强更通用,主要思想是改变学习的表征。采用message dropout (MD),它在图学习期间以一定的概率ρ随机掩盖传播embedding的一些元素。

2.3.1.3 原始保存

将没有任何数据增强的方法命名为原始保存(OP),其中不引入随机性,只保留原始表征。由于捆绑推荐中的两个视图是从不同的数据源获得的,因此它们的表示具有足够的独特性,可以直接用来作为两个视图进行对比学习。

2.3.2 跨视图对比学习

包视图和商品视图每个视图都捕获了用户偏好的一个独特方面,两个视图必须协同工作以提高整体性能。采用流行的 InfoNCE 损失,分别建立在用户和捆绑包的交叉视图表征之上。对比损失能够同时鼓励来自不同视图的相同用户/捆绑包的对齐,并强制不同用户/捆绑包的分离。公式如下,s()为余弦相似度,基于SGL进行batch内负采样来构建损失函数,总损失为

L^C=\frac{1}{2}(L_U^C+L_B^C)

\begin{array}{l} \mathcal{L}_{U}^{C}=\frac{1}{|\mathcal{U}|} \sum_{u \in \mathcal{U}}-\log \frac{\exp \left(s\left(\mathrm{e}_{u}^{B *}, \mathrm{e}_{u}^{I^{*}}\right) / \tau\right)}{\sum_{v \in \mathcal{U}} \exp \left(s\left(\mathrm{e}_{u}^{B *}, \mathrm{e}_{v}^{I^{*}}\right) / \tau\right)} \\ \mathcal{L}_{B}^{C}=\frac{1}{|\mathcal{B}|} \sum_{b \in \mathcal{B}}-\log \frac{\exp \left(s\left(\mathrm{e}_{b}^{B *}, \mathrm{e}_{b}^{I^{*}}\right) / \tau\right)}{\sum_{p \in \mathcal{B}} \exp \left(s\left(\mathrm{e}_{b}^{B *}, \mathrm{e}_{p}^{I_{p}^{*}}\right) / \tau\right)}, \end{array}

2.4 预测和优化

最后的预测计算方式为下式,

y_{u, b}^{*}={\mathrm{e}_{u}^{B * }}^{\top}\mathrm{e}_{b}^{B *}+{\mathrm{e}_{u}^{I * }}^{\top} \mathrm{e}_{b}^{I*}

然后采用BPR损失函数,

\mathcal{L}^{B P R}=\sum_{\left(u, b, b^{\prime}\right) \in Q}-\ln \sigma\left(y_{u, b}^{*}-y_{u, b^{\prime}}^{*}\right)

则总的损失函数为下式,

\mathcal{L}=\mathcal{L}^{B P R}+\lambda_{1} \mathcal{L}^{C}+\lambda_{2}\|\Theta\|_{2}^{2}

3. 结果

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.1 问题定义
  • 2.2 学习两个视图的表征
    • 2.2.1 包视图表征学习
      • 2.2.2 商品视图的表征学习
      • 2.3 跨视图对比学习
        • 2.3.1 数据增广
          • 2.3.1.1 基于图的数据增强
          • 2.3.1.2 基于embedding的增强
          • 2.3.1.3 原始保存
        • 2.3.2 跨视图对比学习
        • 2.4 预测和优化
        相关产品与服务
        灰盒安全测试
        腾讯知识图谱(Tencent Knowledge Graph,TKG)是一个集成图数据库、图计算引擎和图可视化分析的一站式平台。支持抽取和融合异构数据,支持千亿级节点关系的存储和计算,支持规则匹配、机器学习、图嵌入等图数据挖掘算法,拥有丰富的图数据渲染和展现的可视化方案。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档