2019-[HERS]在稀疏和冷启动推荐系统中利用上下文进行异构关系建模

2019-[HERS]在稀疏和冷启动推荐系统中利用上下文进行异构关系建模

概要

经典的推荐系统主要面临数据稀疏性问题和冷启动问题。目前一个重要的解决思路是异构关系,如 user-user;item-item等,因为每个user-item对的关系均受到其他users和items 的影响。这些users和items就构成了这个user/item 的有影响的上下文(有影响的上下文:个人理解为user或item 的重要邻居 )。

本文[HERS: Modeling Influential Contexts with Heterogeneous Relations for Sparse and Cold-Start Recommendation]提出一种 场景影响聚合单元 Influential-Context Aggregation Units (ICAU),来聚合user-user/item-item的关系。基于ICAU提出一种异构关系建模推荐系统Heterogeneous relations-Embedded Recommender System (HERS) based on ICAUs。本本文最后用两个数据集验证了效果。(论文链接 参考文献1, 源代码为参考文献2)

主要关注点

在推荐系统中建模异构关系非常重要:user-user;item-item; user-item。多个异构关系的研究越来越受重视,特别是在应对这些挑战如 社交,基于组,基于上下文,跨域,稀疏,冷启动,动态,深度推荐等方面

如图所示:
在这里插入图片描述
每一个用户的选择都与相应的user和item 的有影响的上下文有关。(理解:每一个user->item 都受到邻居user 的影响和邻居item 的影响)。user 与item 的网络关系都是相互影响。本文就是要建模这种影响关系。

主要考虑考虑以下两点

  • 如何在观察到的user-item交互作用下对uset和item的影响上下文建模(如何利用neighbors)?
  • 如何学习不同背景下不同user或item 的影响力?

不同user-item交互的影响上下文不同,并且每个user/item在一个上下文中的影响也不同。所以必然不能用一个统一的方式进行聚合neighbors

本文设计了 场景影响聚合单元Influential-Context Aggregation Units (ICAUs)来聚合所有的user/item 的场景(上下文 / neighbors)来得到向量Influential Context Embedding(ICE)场景影响向量。这种方式既考虑user context,也考虑了item context。

模型

模型主要架构

如图所示:
在这里插入图片描述
模型解析:

  • User Representer E U {E_U} EU :user表示单元,即user的原始特征或者embedding matrix
  • Item Representer E I {E_I} EI : item表示单元,即item的原始特征或者embedding matrix
  • UIC Aggregator A U {A_U} AU : 基于user neighbors聚合得到的user 场景影响向量(UIC)
  • IIC Aggregator A I {A_I} AI : 基于item neighbors聚合得到的item 场景影响向量(IIC)
  • User-item Interaction Scorer S U I {S_{UI}} SUI : user-item 的交互分,即监督学习时的score。此处计算user-item score 可以采用多种方式(直接余弦/内积 或者 MLP+sigmoid 均可)

注: 此处论文未说明如何构造user/item neighbors。本文重点不是neighbors 的构建

计算流程:

  1. 基于某种关系得到 user neighbors(user influential context) item同理
  2. 获取user 特征mebedding 及相应的neighbors 特征embedding E U {E_U} EU
  3. 采用 ICAUs 聚合 neighbors信息 得到 user最终 embedding(UIC 场景影响向量ICE)。 item同理
  4. user-item 交互层计算 user-item score
    最终计算:
    在这里插入图片描述
    第一项表示 目标user-item 关系;第二项表示 user 与item-neighbors关系;第三项表示 user-neighbors 与item 的关系;第四项表示 user-neighbors与 item-neighbors关系。

关键点

本文最主要的贡献就是设计了神经场景影响聚合单元neural ICAUs来学习 场景影响向量ICEs。ICAU是HERS模型核心的组件

Influential-context Aggregation Unit

ICAU主要是用来聚合user 或 item 的neighbors(influence context -> neighbors),同时考虑到不同的neighbors 的影响长度是不一样的。(聚合方式与attention不一样
在这里插入图片描述
聚合过程主要分为两阶段:

  • S1:这个阶段主要是输出 一个辅助影响的聚合向量 c t {c_t} ct
    在这里插入图片描述
    式(2)表示 通过计算neighbors向量(a 函数 )得到 α { \alpha } α , α { \alpha } α表征不同neighbors的影响程度。然后通过聚合函数 h 函数得到 辅助影响的聚合向量 c t {c_t} ct
  • S2:这个阶段通过聚合 辅助影响的聚合向量 c t {c_t} ct 和 目标向量 e t {e_t} et 生成 ICE向量 r t {r_t} rt
    在这里插入图片描述
    h 函数f 函数 可以是 任何线性或非线性函数。本文 h 函数 为考虑注意力机制的多层网络神经元;f 函数是一个门控神经网络。
User’s Influential Context Embedding

UIC是通过树状的两阶邻居聚合生成。这样既考虑了一阶邻居影响,也考虑了二阶邻居的影响。首先通过聚合二阶邻居生成一阶邻居聚合向量,再通过聚合一阶邻居,生成目标向量。
一阶与二阶的聚合方式一样,这里仅用一阶聚合为例进行说明:

  1. The Second Level ICAUs (过聚合二阶邻居生成一阶邻居聚合向量)
    (1) S1: 采用注意力机制来聚合每一个邻居。
  • 首先 neighbors向量经过一个tanh 非线性单元
    在这里插入图片描述
    权重矩阵 W ( 1 ) ∈ R L × L { W }^{ (1) }\in { R }^{ L\times L } W(1)RL×L,后面公式偏置项 b 均不写明。
  • 然后 标准化输出得到每个neighbors 权重值 α {\alpha} α
    在这里插入图片描述
    在这里插入图片描述
    权重矩阵 W ( 2 ) ∈ R 1 × L { W }^{ (2) }\in { R }^{ 1\times L } W(2)R1×L
    式(8)中 θ { \theta } θ是一个超参数。 θ { \theta } θ越大,则使得上下界趋近于0,会导致权重趋向于均匀分布。相反, θ { \theta } θ越小,则对应的权重越大。
  • 进一步 根据生成的权重得到辅助影响的聚合向量 c t {c_t} ct
    在这里插入图片描述
    (2)S2 通过门控单元得到目标向量
    在这里插入图片描述
    注: g 函数衡量了二阶邻居的影响程度。
    在这里插入图片描述
    其中 σ ( z ) = 1 / ( 1 + e − z ) { \sigma }(z)= 1/(1+{ e }^{ -z }) σ(z)=1/(1+ez) W ( 4 ) , W ( 5 ) ∈ R L × L { W }^{ (4) },{ W }^{ (5) }\in { R }^{ L\times L } W(4),W(5)RL×L W ( 3 ) ∈ R 1 × L { W }^{ (3) }\in { R }^{ 1\times L } W(3)R1×L
  1. The First Level ICAU(通过聚合一阶邻居生成目标向量)
    在这里插入图片描述
    在这里插入图片描述
    与公式(6)-(11)计算类似。
Item’s Influential Context Embedding

因为user直接一般没有直接的联系与影响(user 关系模型中),所以通过两阶段聚合生成目标向量。而item直接一般有直接的联系,所以只需要进行一阶聚合即可。(此处可能是考虑到 在构建 user 关系图时,user之间没有直接的行为联系或者 联系不紧密)具体的聚合方式也是采用 ICAU构建,过程与UIC一样。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

User-item Interaction Ranking

每一个user-item 的连接表明user 的一个选择,也是表明user 的一个兴趣偏好。将user-item连接作为正样本,在剩余的item中随机挑选负样本,优化目标:
S < u t , i p > ≥ S < u t , i n > { S }_{ \left< { u }_{ t },{ i }_{ p } \right> }\ge { S }_{ \left< { u }_{ t },{ i }_{ n } \right> } Sut,ipSut,in
其中计算方式:
在这里插入图片描述
采用最大边界损失计算:
在这里插入图片描述
本文设置m = 10

注:推导(1)式说明为什么loss函数是分解为4项:
将式(18)基于式(13)(16)展开:
在这里插入图片描述
在这里插入图片描述
由上式(20)与(1)式相应位置一一对应。上式表明了 UIC 与 IIC 均影响了最终推荐模型的embedding

实验说明

对于每一个user 选择(点击) < u t , i p > <{ u }_{ t },{ i }_{ p }> <ut,ip>,建立一个 triplet三元组 < u t , i p , i n > <{ u }_{ t },{ i }_{ p }, { i }_{ n }> <ut,ip,in>来优化rank损失(mini-batch B)
在这里插入图片描述

采用的两个数据集进行训练,具体结果等不详细描述。主要说明一下训练集的前处理(group 生成)

(1) The Delicious dataset

  • user-group : 通过user关注同一个Delicious,将不同user建立联系(统一粉丝组里面user建立联系)
  • item-group:item之间有同样的tag标签。取共同标签数最多的10个item
  • user-item: user 将item 添加了标签则两者建立联系(user对item 有行为)

(2)The Lastfm dataset
The Lastfm dataset包含社交网络关系 / 标签信息 / 音乐家信息等

  • user-group : 根据社交关系建立user之间关系
  • item-group:item-item关系是根据同样的tag来建立,类似于 Delicious dataset
  • user-item: user 听了音乐家的音乐表征 user-item 之间的关系 user->item => user->artist

针对冷启动user/item, 随机remove掉20% 的数据 进行测试

思考

本文提出的模型结构可以抽象为解决冷启动问题的一种模型范式,通过 Graph + 双塔 结合,较为高效的解决 user 和 item 冷启动问题。

  • Graph部分融合结构信息,使 冷启动item不仅利用attribute信息,还可以结合 图谱或结构信息
  • 双塔 双塔结构比较简洁的结合user / item 域,同时进行更新;比较方便的添加side-infomation信息,在user侧 和 item 侧分别添加,比较灵活;且 利用有行为的 user-item对 进行有监督的学习,比绝大部分 无监督的冷启动算法更准确。且将warm-item与cold-item产出向量在排序侧利用起来,更有利于冷启动item在排序侧露出。(cold-user 同理)

但本文并没有详细的探讨如何进行构图,而图模型更重要的或者难点问题是在构图部分。以下加入自己的一点思考补充:

(1)item-group

  • warm-item 直接采用itemCF方式生成 neighbors关系 cold-item
  • cold-item 采用poi/mdd/tag等属性标签进行聚合,可以同时考虑多种标签计算item-sim-score(neighbor构建尽量采样warm-item)

(2)user-group

  • 有站外辅助信息: 基于站外信息(行为)聚合生成graph(比如飞猪 利用支付宝和淘宝信息构建user-group)
  • 根据主要的基本属性聚合计算u2u之间的相似性score(冷启动user)
    1)按最主要的属性分区/分簇
    2)在 子分区/子簇 里面计算相似user(考虑多种属性)
    3)用spark-stream任务计算user-neighbors
  • 根据属性利用变分自编码器得到embedding 找topk neighbors
  • 也可以根据行为生成group(非冷启动user)

(3)user-item

  • 有监督情况下一般为user 对 item 的行为,或者 直接采用业务目标即可

参考文献

  1. pdf论文 HERS: Modeling Influential Contexts with Heterogeneous Relations for Sparse and Cold-Start Recommendation
  2. 源代码 https://github.com/rainmilk/aaai19hers
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

召唤师的峡谷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值