美文网首页
推荐系统论文阅读(四十九)-阿里:使用曝光未点击序列修正点击序列

推荐系统论文阅读(四十九)-阿里:使用曝光未点击序列修正点击序列

作者: 推荐系统论文阅读 | 来源:发表于2021-05-17 16:09 被阅读0次

    论文:

    论文题目:《Unclicked User Behaviors Enhanced Sequential Recommendation》

    论文地址:https://arxiv.org/pdf/2010.12837v1.pdf

    在以前我们讲到一篇微信用未点击序列建模的文章后,我们今天也来讲讲,阿里是如何用未点击序列和度量学习的方法来建模的。

    一 、背景

    关于sequence based recommendation我们在之前的很多文章都介绍过了,比如sdm,narm等文章,这些论文一般都是对用户的点击序列建模出用户的兴趣向量,然后再跟target item计算内积来训练的。

    用户的兴趣是动态变化的,长期兴趣可能潜藏在用户在很长一段时间的购买记录上面,而用户的短期兴趣则是体现在用户最近的几十次点击上,在sdm中,利用了gate机制同时建模了用户的长短期兴趣。

    大多数序列行为建模都是对clicked进行建模,忽略了用户曝光未点击的序列。其实,用户的未点击序列蕴含着丰厚的信息,这些item大多都是精排模型筛选出来的了,已经非常符合用户的偏好了,如果我们能够拿这个信息去进行一次信息补充,那么整个推荐的效果就会更近一步。

    如图所示,如果用户是女性的时候,用户只会去点击女性的外套,而不会去点击男性的外套,这时候曝光的序列就分成了曝光未点击的序列和曝光点击的序列。再有一点,用户可能会有误点击的行为,这种行为就会让用户的点击序列趋于发散,不易于建模。在这种情况下,我们的曝光未点击序列就会体现作用了。在微信那篇文章里,只是对该序列进行而外建模,而忽略了点击和未点击之间对交互关系,因此本论文做了一定对改进。

    我们首先明确几点,

    1.用户的未点击行为,在某种程度上体现了用户对某类信息的不喜欢程度,这个信息是十分重要的,以前我们只会去建模用户的偏好,而忽略了用户的不喜欢

    2.曝光未点击的item在一定程度上是比随机推荐给用户的物品更符合用户的偏好的,因为这些item也是我们自己的推荐系统推荐出来的。只是说,用户出于某些原因,比如说价格,流行度等因素而没有去选。这些物品是点击样本跟随机推荐物品之间的隐式折中反馈。

    3.我们在之前说过了,用户的点击序列里可能有噪音,也就是会有误点击的行为,而我们恰好可以利用曝光未点击的行为去对点击序列进行纠偏,因为既然未点击的序列蕴含着用户的不喜欢信息,我们就可以拿这个去剔除掉点击序列中的噪音。

    二 、模型

    我们先不看整个模型的架构,先来介绍几个预先的知识。

    2.1 问题定义

    定义用户的集合:

    item的集合:

    给定用户在t时刻的点击序列:

    未点击序列:

    给定以上两个序列,然后来预测用户在t时刻以后的点击序列,在t时刻以后的序列定义为:

    同时Cu,t也是我们的label

    3.2 Base Sequential Recommendation

    用到的序列行为建模方法,对于序列而言,一般的做法是Gru/Rnn/transformer等等,对于序列,通过这些模型编码成一个定长的向量,具体而言,论文里采用的SDM作为basemodel,具体细节就不细说。

    利用这些结构,我们把向量编码成了h_{u,t} ,然后,我们就用这个向量跟候选item i的向量做内积:

    这时候就已经可以训练一个模型了。

    3.3 Sequential Recommendation with Unclicked User Behaviors

    前面我们介绍完basedmodel后,接下来我们就要介绍如何使用用户未点击的行为了。

    我们在看上面这个图之前,先明确几个定义:

    h_{u,t} :用户t时刻点击序列建模出来的向量

    n_{u,t}:用户t时刻未点击的序列建模出来的向量

    c_{u,t} :用户在t时刻以后的点击序列建模出来的向量

    具体而言:

    这里是直接对未点击的序列作mean了,因为未点击的序列太长了。

    度量损失定义为:

    我们要让点击的向量离我们的label向量近一点,离未点击的向量远一点,还有个额外的超参数m,意味着点击向量跟label向量的距离至少比未点击向量离点击向量之间的距离少m。

    之前我们说过,可以用未点击的序列去做纠偏,所以论文也采用了下面的方法来修正h这个向量:

    但是这么做的话忽略来点击序列跟未点击序列直接的交叉,所以修正后为:

    最后,我们再来一看下上面那张图,假如存在另一个向量n_{u,t}^{’} ,假如他跟c的距离比h跟c的距离来得小,这显然是不符合的,因为n是未点击的向量,怎么可能存在未点击的向量跟label向量c的距离来得更近呢?

    所以我们要对这个损失进行修改:

    我们既要做到第一个m的限制,又要做到c跟h的距离要比c跟n的距离来得小。

    最后,我们总的损失为:

    第一部分是sample softmax loss,这个loss就不多说了tf有这个方法的实现,第二个就是我们的triple loss。

    三、实验结果

    实验效果:

    相关文章

      网友评论

          本文标题:推荐系统论文阅读(四十九)-阿里:使用曝光未点击序列修正点击序列

          本文链接:https://www.haomeiwen.com/subject/stadjltx.html