文章全文首发:码农的科研笔记(公众号)
原文:https://arxiv.org/abs/2109.05261
源码:https://github.com/gzy-rgb/CauseRec
视频:https://dl.acm.org/doi/abs/10.1145/3404835.3462908
1 动机
Accurately characterizing and representing users face several challenges:
- Noisy nature of ubiquitous implicit feedbacks
- Data sparsity: users interact with a limited number of items
2 方法
作者主要是回答一个问题:“如果我们干预观察到的序列,用户表示会是怎样的?”。我们知道用户行为一方面来源于自己兴趣爱好,但同时也来源于随机而为。因此作者假设历史行为序列中存在两个概念(信息):不可或缺的概念和可有可无的概念。其中不可或缺的概念就是代表用户真实兴趣的有意义方面,而可有可无则是表示噪声信息。对于可有可无的噪声概念信息,可以替换成别的内容得到反事实序列(正样本)应该和原序列较为相似,而对于不可或缺的概念信息,替换成别的内容得到的反事实序列(负样本)应该和原序列存在较大偏差。
2.1【如何识别可有可无/不可或缺的概念】
作者定义item-level concepts和interest-level concepts,其中item-level concepts表示item层面的概念。
item-level concepts:对于序列行为,首先编码每个用户历史行为(得到概念序列) C = X ∈ R t × d C=X \in \mathbb{R}^{t \times d} C=X∈Rt×d ,其中 X = g θ ( x u , t + 1 ) X=g_{\theta}\left(x_{u, t+1}\right) X=gθ(xu,t+1) 表示序列的向量表征, x u , t + 1 = y u , 1 : t x_{u,t+1}={y_{u,1:t}} xu,t+1=yu,1:t表示用户历史行为。接下来定义一个概念分数,用来衡量概念对于用户兴趣 target item y y y 的重要性。计算方式如下,其中 c i c_i ci表示序列中第 i i i个商品的概念 (concept), y y y 表示目标商品的表征, ϕ \phi ϕ 是相似度函数,本文采用点积。
p i item = ϕ θ ( c i , y ) p_{i}^{\text { item }}=\phi_{\theta}\left(\mathbf{c}_{i}, \mathbf{y}\right) pi item =ϕθ(ci,y)
interest-level concepts:由于item层面的计算可能会存在冗余,某些项目可能会共享相似的语义信息,因此作者采用注意力机制进一步计算得到interest层面的概念。计算方式如下,利用注意力机制得到权重,并与原始 X ∈ R t × d