前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >推荐系统(十二)「腾讯」推荐系统中one-hot一定好吗?它忽略了一些信息

推荐系统(十二)「腾讯」推荐系统中one-hot一定好吗?它忽略了一些信息

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

Learning Recommender Systems with Implicit Feedback via Soft Target Enhancementhttps://dl.acm.org/doi/pdf/10.1145/3404835.3462863

公式太长可以左右滑动

背景

通常在做多分类的时候,我们会采用softmax配合one-hot标签,最后结合交叉熵损失函数来进行优化。one-hot是对应类别的地方为1,其他地方都为0,文中称之为hard target。这种hard target的方法会忽略那些没有被观察到的反馈的作用,例如有的item没有被推荐,但是就说明user不喜欢该item吗?当然是不一定的,因此本文提出了soft target,以此考虑所有item的作用

方法

推荐系统模型

h_{\theta}(c,i)

通过上下文

C

来推荐item

I

。原始的hard target的情况,使用

q(i|c)

表示上下文context为c是对应的标签i的one-hot。则其交叉熵损失为:

H(q,p)=-\sum_{i \in I}{q(i|c)log(p(i|c))}

其中,

p(i|c)=h_{\theta}(c)=softmax(\cdot)

表示模型预测的情况。最小化交叉熵损失函数,相当于最小化负对数似然。可以得到下面的等式变换:

\begin{aligned} \mathcal{L}(c, q) &=-\log h_{\theta}(c) \\ &=-h_{\theta}(c, i)+\log \sum_{i^{\prime} \in I} \exp \left(h_{\theta}\left(c, i^{\prime}\right)\right) \end{aligned}

其中

h_{\theta}(c,i)

表示用户对item的偏好。这就是本文的总体思想,就是用soft target和hard target结合,来得到新的标签,利用soft target引入未反馈的item的作用,但是具体的实现方式将在后续给出。

SoftRec 的优化框架

在soft target中需要满足一个约束,就是整个soft target向量中,目标item的排名应该是最高的。给出如下定义:定义soft target

d=\{d^{o_1},d^{o_2},...,d^{o_N}\}

,其中

\sum{d^{o_i}}=1

,并且

d^{o_i} \in [0,1]

。这样就使得原本one-hot中都为0的地方,现在都是非0的概率反应用户对这些item的偏好。从标签平滑正则得到启发,得到本文的平滑方式:

q^{\prime}(i \mid c)=(1-\alpha) q(i \mid c)+\alpha d

将原始hard target q和soft target d按照超参数

\alpha

结合得到新的标签q'。其中

\alpha \in [0, 1]

,将原有损失函数改为后得到下式,其中第一部分是传统的交叉熵损失,第二部分是soft target引导的交叉熵损失。

\begin{aligned} \mathcal{L}\left(c, q^{\prime}\right) &=-\sum_{i \in I} q^{\prime}(i \mid c) \log p(i \mid c) \\ &=(1-\alpha) \mathcal{H}(q(i \mid c), p(i \mid c))+\alpha \mathcal{H}(d, p(i \mid c)) \end{aligned}

通过KL散度与熵的关系,可以改写上式为:

\begin{aligned} \mathcal{L}\left(c, q^{\prime}\right) &=(1-\alpha) \mathcal{H}(q(i \mid c), p(i \mid c))+\alpha\left(\mathcal{D}_{K L}(d, p(i \mid c))+\mathcal{H}(d)\right) \\ &=(1-\alpha) \mathcal{H}(q(i \mid c), p(i \mid c))+\alpha \mathcal{D}_{K L}(d, p(i \mid c)) . \end{aligned}

其中H(d)为常量。当

\alpha=0

时,相当于优化传统的交叉熵损失函数。以上就是总体的损失函数了,接下来是具体实现。

SoftRec实例

想直接得到最优的soft target是很难的,但是可以用已有的数据和模型来模拟得到。本文通过三个层面,来得到soft target。

Item-Based Strategy

本文基于item流行度分布(item popularity distribution)来生成soft target。item流行度定义为

d_{pop}=\{f^{o_1},...,f^{o_N}\}

,其中

f^{o_i}

表示item i被所有用户的点击频率,通常它的分布是非均匀分布的,一般是指数分布或幂分布。本文就是希望将流行度分布作为soft target来促进推荐系统的性能,那么根据定义我们现在需要将流行度进行标准化,但是会存在一个问题,就是直接对流行度进行标准化后,argmax得到的位置和one-hot对应的位置可能不一样,因此将item的流行度分布标准化如下式,

d_{p o p+}(i \mid c)=\frac{1}{2}\left(\operatorname{softmax}\left(d_{\text {pop }} / \mathcal{T}\right)+q(\mathrm{i} \mid \mathrm{c})\right)

其中

\mathcal{T}

表示温度系数,对原有的流行度分布进行缩放。然后得到新的损失函数为下式,

\mathcal{L}_{p o p+}=(1-\alpha) \mathcal{H}(q(i \mid c), p(i \mid c))+\alpha \mathcal{D}_{K L}\left(d_{p o p+}, p(i \mid c)\right)
User-Based Strategy

这部分是从user的信息中构建soft target。利用周边的邻居信息来生成soft target,这需要解决2部分问题:1.如何得到用户上下文信息的邻居信息;2.如何将这个邻居信息融入模型中。对于第一个问题, 将每个用户的历史交互视为他预先存在的特征。在二部图中通过Item2vec 将每个item嵌入到潜在向量空间中,然后获得每个用户的嵌入。然后利用余弦相似度查找周围的相似向量,文中采用了更高效的搜索方法(具体方法参考论文的参考文献)。对于第二个问题,采用CSN来捕获邻居中的知识。如图,将当前的上下文信息和其邻居信息作为输入,然后匹配两个输入的预测尽量相近,从而更新网络参数。

对于给定的上下文c,和他的邻居信息c',可以得到两个输出

p(i|c;\theta_{CSN})

p(i|c';\theta_{CSN}')

,其中

\theta_{CSN}'

\theta_{CSN}

的复制,并且

\theta_{CSN}'

不更新,从图中也可以看出,只更新

\theta_{CSN}

。和item-based类似,为了保证输出的向量p的argmax和ont-hot对应上,采用下式对其进行平滑处理。

d_{C S N}=\frac{1}{2}\left(p\left(i \mid c^{\prime} ; \theta_{C S N}^{\prime}, \mathcal{T}\right)+q(i \mid c)\right)

最终得到新的损失函数为:

\mathcal{L}_{C S N}=(1-\alpha) \mathcal{H}\left(q(i \mid c), p\left(i \mid c ; \theta_{C S N}\right)\right)+\alpha \mathcal{D}_{K L}\left(d_{C S N}, p\left(i \mid c ; \theta_{C S N}\right)\right)
Model-Based Strategy

基于模型的方法是采用知识蒸馏(教师-学生模型)。用预训练的教师网络T学习得到的输出

p(i|c;\theta_T)

作为每一个训练实例的soft target。还是同样的问题就是softmax得到的输出argmax得到的位置需要对应于one-hot,因此仍然用平滑的方法对其进行平滑

d_{K D}=\frac{1}{2}\left(p\left(i \mid c ; \theta_{T}, \mathcal{T}\right)+q(i \mid c)\right)

得到新的损失函数如下式:

\mathcal{L}_{K D}=(1-\alpha) \mathcal{H}\left(q(i \mid c), p\left(i \mid c ; \theta_{S}\right)\right)+\alpha \mathcal{D}_{K L}\left(d_{K D}, p\left(i \mid c ; \theta_{S}\right)\right)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 公式太长可以左右滑动
  • 背景
  • 方法
    • SoftRec 的优化框架
      • SoftRec实例
        • Item-Based Strategy
        • User-Based Strategy
        • Model-Based Strategy
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档