前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >正反馈+负反馈还不够,还有【中性反馈】

正反馈+负反馈还不够,还有【中性反馈】

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

关注我们,一起学习~

标题:Positive, Negative and Neutral: Modeling Implicit Feedback in Session-based News Recommendation 链接:https://arxiv.org/pdf/2205.06058.pdf 代码:https://github.com/summmeer/session-based-news-recommendation 会议:SIGIR 2022 学校:上交

1. 导读

本文主要针对新闻网站对匿名读者(没注册的游客)进行新闻推荐的场景,访客和文章之间的交互仅限于临时登录会话。以前的工作倾向于将基于会话的推荐制定为下一个商品预测任务,而忽略了用户行为的隐含反馈,即用户真正喜欢或不喜欢什么。因此,本文提出了一个综合框架,通过正反馈(即他们花更多时间阅读的文章)和负反馈(即他们选择跳过而不点击的文章)来模拟用户行为。并且该框架使用会话开始时间隐含地对用户进行建模,并使用其初始发布时间对文章进行建模,称之为“中性反馈”。

本文主要是考虑不同的反馈方式,构建一种新的反馈“中性反馈”来加强对用户兴趣的建模。

2. 方法

image.png

2.1 基础会话推荐

在会话推荐中,给定会话的前缀序列

S_n=(n_1,...,n_T)

,目标是预测目标用户u最有可能阅读的第

n_{T+1}

篇文章。使用

N\times d_n

的商品embedding矩阵,

d_n

是embedding维数,文章

n_i

的embedding向量表示为

\mathbf{x}_i

。然后可以使用 RNN、GNN或基于注意力机制等方法将会话信息从序列

(\mathbf{x}_i,...,\mathbf{x}_T)

编码为向量

\mathbf{x}_s

,代表用户的历史偏好。N个商品的embedding可以表示为

[\mathbf{x}_i,...,\mathbf{x}_N]

,对于u,会话表征和文章j之间的余弦相似度分数

\hat{z}_j^u

由会话向量

\mathbf{x}_s

和候选新闻文章向量的内积计算得出,公式如下,经过softmax标准化得到预测概率。

\begin{array}{l} \hat{z}_{j}^{u}=\mathbf{x}_{j}^{T} \mathbf{x}_{\mathbf{s}}, j \in[1, N] \text {, }\\ \hat{\mathbf{y}}^{u}=\operatorname{softmax}\left(\hat{\mathbf{z}}^{u}\right), \end{array}

损失函数采用交叉熵损失函数,

\mathcal{L}_{1}=-\frac{1}{|S|} \sum_{S_{u} \in S} \sum_{j=1}^{N}\left(y_{j}^{u} \log \left(\hat{y}_{j}^{u}\right)+\left(1-y_{j}^{u}\right) \log \left(1-\hat{y}_{j}^{u}\right)\right)

2.2 本文基模型:内容感知模型CAR

为了推荐新出现的文章,本节的出发点是一个基本的内容感知推荐模型。需要对文章内容进行编码,从 Word2Vec 中得到

d_c

维向量来表示文章的主题内容。得到文章

n_i

的内容向量

\mathbf{c}_i

,将

\mathbf{c}_i

\mathbf{x}_i

拼接得到文章的表征为

\mathbf{xc}_i

。为了模拟用户对同一会话中文章的不同偏好,采用简单的注意力网络,使用输入向量序列的加权和来编码整个会话。令

\alpha_i

表示注意力权重,即第i篇文章在会话

S_u

中的注意力权重定义,公式如下,

\begin{array}{c} \alpha_{i}=W_{0} \times \sigma\left(W_{1} \times \mathbf{x} c_{i}+b_{0}\right) \\ \alpha_{i}^{\prime}=\frac{\exp \left(\alpha_{i}\right)}{\sum_{i=1}^{T} \exp \left(\alpha_{i}\right)} \end{array}

会话

S_u

的上下文会话向量由注意力权重加权求和得到,公式如下,

\mathbf{xc}_s=\sum_{i=1}^T{\alpha_i'\mathbf{xc}_i}

为了获得输入序列的顺序信息,注意力机制通过位置编码利用位置信息提取

\mathbf{xc}_s

,与 Transformer中的方式相同。

2.3 将时间建模为中性反馈

一个用户在一篇特定文章上停留的活动时间是持续时间。对于不同且连续的活动时间

t_i

,设计一个持续时间编码器,通过公式

t_{i}^{\prime}=\left\lfloor\log _{2} t_{i}\right\rfloor

t_i

分桶为离散变量。将离散的

t_i'

映射到m个不同的类别中,其中每个类别共享相同的embedding向量

\mathbf{ta}_i

与揭示用户积极隐含反馈的持续时间不同,某个事件发生的日期时间具有物理意义,也传达了时间信息背后的规则模式,因此为这种时间表示设计了一个时间编码器。对文章的发布时间和会话的开始时间进行编码。为了提取周期性时间变化,提供月份、月份中的某一天、星期几、小时、分钟 (

s \in \mathbb{R}^{12}, d \in \mathbb{R}^{31}, w \in \mathbb{R}^{7}, h \in \mathbb{R}^{24}, m \in \mathbb{R}^{60}

) 到时间embedding矩阵

\mathbf{E_t} \in \mathbb{R}^{134 \times d_t}

,将上述五部分拼接得到

\mathbf{t} \in \mathbb{R}^{5d_t}

作为整个时间向量。

2.3.1 开始时间

在相似时间开始阅读的用户更有可能具有相同的阅读行为,这意味着用户兴趣受开始时间的影响。例如,有些人倾向于在早上阅读财经新闻,而在晚上阅读娱乐节目。使用周和小时(w,h)表示会话的每次点击行为的点击时间

\mathbf{ts_i}\in \mathbb{R}^{2d_t}

。为了模拟

S_u

中文章的不同信息量,以供用户在不同的开始阅读时间阅读,应用此信息来计算个性化注意力。进行非线性变换后,计算注意力权重

\mathbf{q}_{\mathbf{i}}=\operatorname{ReLU}\left(W_{t} \times \mathbf{t s}_{i}+b_{t}\right)
\begin{array}{c} \alpha_{i}^{t}=\mathbf{c}_{i} \times \tanh \left(W_{t}^{\prime} \times \mathrm{q}_{\mathrm{i}}+b_{t}^{\prime}\right) \\ \alpha_{i}^{t \prime}=\frac{\exp \left(\alpha_{i}^{t}\right)}{\sum_{j=1}^{\left|S_{u}\right|} \exp \left(\alpha_{j}^{t}\right)} \end{array}

结合CAR中计算的注意力权重一起对序列表征进行信息提取,公式如下,

\mathbf{x c}_{\mathrm{s}}=\sum_{i=1}^{\left|S_{u}\right|}\left(\alpha_{i}^{\prime}+\alpha_{i}^{t^{\prime}}\right) \mathbf{x c}_{i}

2.3.2 发布时间

用户的阅读习惯可以由

S_u

中的发布时间顺序

tp_1,...,tp_i

反映。可以由此推断用户是否倾向于浏览新文章或旧文章。文章的发布时间序列是一个相对独立的序列,因此单独对其进行建模。由于文章发表时间的密度高,使用

(s,d,w,h,m)

构造发表时间embedding向量

\mathbf{tp}_i \in \mathbb{R}^{5d_t}

。同样通过注意力机制从序列中提取信息。添加每篇文章的内容向量来捕捉文章内容与其发布时间之间的注意力关系。公式如下,

\begin{array}{c} \alpha_{i}^{t p}=W_{0}^{\prime} \times \sigma\left(W_{1}^{\prime} \times \operatorname{tp}_{i}+W_{2}^{\prime} \times \mathbf{c}_{i}+b_{0}^{\prime}\right), \\ \alpha_{i}^{t p^{\prime}}=\frac{\exp \left(\alpha_{i}^{t p}\right)}{\sum_{j=1}^{\left|S_{u}\right|} \exp \left(\alpha_{j}^{t p}\right)},\\ \mathbf{x t}_{\mathrm{s}}=\sum_{i=1}^{\left|S_{u}\right|} \alpha_{i}^{t p^{\prime}} \mathbf{t p}_{i} \end{array}

最后,将

\mathbf{xt}_s

\mathbf{xc}_s

拼接作为整个会话的聚合表征

\mathbf{x}_s

。针对目标新闻 j ,将

\mathbf{xc}_j

\mathbf{tp}_j

拼接得到目标新闻j的表征,然后可以计算目标新闻表征和会话表征之间的余弦相似度,构建交叉熵损失函数。

2.4 正反馈

隐式正反馈采用用户点击每篇文章后在其上花费的活跃时间间隔。如果用户在一篇文章中停留的时间很短,很可能是因为用户被标题所迷惑,但实际上并不喜欢这篇文章。如果没有明确可用的活动时间,可以通过用户连续两次点击的时间间隔来估计。

每个活跃时间度共享相同的embedding向量

\mathbf{ta}_i

,表示正反馈的程度。将此向量作为额外的点击级反馈输入注意力计算。则上述基模型CAR中的

\alpha_i

可以表示为下式,

\alpha_{i}=W_{0} \times \sigma\left(W_{1} \times \mathbf{x c}_{i}+W_{2} \times \operatorname{ta}_{i}+b_{0}\right)

2.5 负反馈

最直接且被广泛采用的负采样是从一组未点击的商品中随机采样。随机采样的主要问题是这些商品可能与用户完全无关,对模型学习构成的挑战太小。用户在阅读新闻时,上下滚动新闻流,暴露给用户的文章共同形成一个印象列表

Imp_u

。将

Imp_u

中未点击的文章比其他候选提供更多负信号,因此在计算损失时应该区别对待它们,更严格地惩罚

\mathbf{xc}_s

和那些强负样本之间的相似性。

由于印象列表可能无法获得,因此假设如果一篇文章发布在被u点击的文章附近,它更有可能出现在

Imp_u

中。根据候选文章的发表时间对候选文章进行排序,在每个文章周围构建300大小的窗口,在窗口中采样得到负样本集。目标是在

j \in N_{e_u}

时最小化

\mathbf{xc}_s

和负样本j的向量

\mathbf{xc}_j

之间的余弦分数,其中

N_{e_u}

是会话

S_u

的负样本集,最终损失函数为,

\begin{aligned} \mathcal{L}_{2}=-\frac{1}{|S|} & \sum_{S_{u} \in S} \sum_{j=1}^{N}\left(y_{j}^{u} \log \left(\hat{y}_{j}^{u}\right)+\left(1-y_{j}^{u}\right) \log \left(1-\hat{y}_{j}^{u}\right)\right.\\ &\left.+\lambda \mathbb{1}\left(j \in N e_{u}\right) \log \left(\sigma\left(1-\mathbf{x c}_{j}^{T} \mathbf{x c}_{\mathbf{s}}\right)\right)\right) \end{aligned}

3. 结果

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.1 基础会话推荐
  • 2.2 本文基模型:内容感知模型CAR
  • 2.3 将时间建模为中性反馈
    • 2.3.1 开始时间
      • 2.3.2 发布时间
      • 2.4 正反馈
      • 2.5 负反馈
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档