前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我为什么喜欢它?带有解释的推荐系统第二弹

我为什么喜欢它?带有解释的推荐系统第二弹

作者头像
炼丹笔记
发布2021-05-14 16:04:52
6470
发布2021-05-14 16:04:52
举报
文章被收录于专栏:炼丹笔记

作者:一元,炼丹笔记小编

Why I like it: Multi-task Learning for Recommendation and Explanation(RecSys18)

简介

这是比较早的一篇使用多任务学习来赋能推荐任务可解释性的文章, 可解释性有效性是构建推荐系统的两大关键成份,本文提出了一种新的多任务推荐模型,通过结合矩阵分解对抗性序列对序列学习来进行评分预测和推荐解释。改进了评级预测性能,同时产生了有效的个性化解释。

近期很多工作会尝试利用用户的反馈来赋予模型可解释性。

模型

模型的整体框架如下:

1. Adversarial Sequence-to-Sequence Learning

此处我们提出了encoder-decoder的框架,他可以基于评论的文档生成相关的评论。

  • : 用户些的所有评论,我们称其为,
  • : 关于商品写的所有评论我们称之为,
  • :当且仅当用户关于商品写过评论。

优化seq2seq模型的传统方法是在训练过程中的每个时间步输入真实性注释。这种优化策略会导致暴露偏差(exposure bias)的问题,即在测试时,模型会暴露在自己的预测中,因此误差会随着时间累积。

为了解决这个问题,我们采用了一种对抗性的训练过程,在这个过程中我们同时训练一个生成器网络和一个判别器网络。前者学会了创造虚假评论来愚弄判别者,而后者则旨在检测这些对抗性样本。

1.1. Recurrent Review Generator 递归评论生成器

给定用户的评论文档, 我们希望用户评论生成器能生成类似于用户写的文档,此处,我们使用seq2seq的学习框架:

  • 用户文档编码器;
  • 用户评论生成器;

对于用户,用户文档编码器先将评论文档映射到维的向量, 然后基于生成和评论文档类似的评论。此处用户文档编码器和生成器都是基于GRU的。

细节:

  • 对每个词进行embedding, 然后过BiGRU,得到前向和后向的向量;
  • 我们对用户所有生成的文本向量进行求均值, 得到;
  • 然后使用decoder学习特定用户的评论,通过估计下面的条件概率:

其中是预测长度为的评论.

1.2. 卷积评论判别器

用户的评论生成器是希望生成和用户相近的评论,而评论判别器则希望能将生成的样本和真实的评论分开。本文采用卷积的形式来进行此操作,具体的框架如上图所示。

1.3. reinforce的评论生成对抗训练

我们假设生成器是一个虚拟的agent, 它的目的是在每次尝试中尽可能获得多的reward(由判别器的置信度给出)。也就是说生成器的目的是尽可能的制造能骗过判别器的生成样本

此处我们判别器的训练目标为(最大化真实样本,最小化假的生成样本):

其中表示从真实评论中采样的样本, 表示生成器生成的样本。

因为序列生成是一个离散化采样的过程,所以梯度不能直接从判别器传到生成器。我们此处使用policy gradient算法来估计目标函数的梯度。

\nabla J(\theta) = E_{Y' \sim G_\theta} \nabla_{\theta} logG_{\theta}(Y') \cdot [R(Y') - b(Y')] \\ \approx \frac{1}{K} \sum_{i=1}^K \nabla_{\theta} logG_{\theta}(Y') \cdot [R(Y_i') - b(Y_i')]

其中是有判别器给第个生成序列的reward, 表示降低方差的baseline.

为了方便后续多任务学习,我们对文本特征学习得到的用户系数矩阵和矩阵分解得到的矩阵进行正则,这样我们的设定可以使我们的seq2seq模型更好地探索从协同过滤方法中得到的用户偏好。

其中是通过矩阵分解得到的用户稀疏矩阵, 是从用户文档编码器中学到的用户文本特征。

2. 生成个性化的解释

我们先抽取用户和商品的文本特征和,我们使用单个解码器生成当前用户商品对的评论,在每一步,我们先将和拼接, 然后再输入到decoder中。为了进行对抗性训练,我们还训练了一个评论判别器和评论生成器。评论判别器的目的是判断评论是不是用户是否给商品上编写的。

3. 评分预测的上下文-aware的矩阵分解

w我们有一个用户商品的评分矩阵, 和分别是用户和商品的个数。我们假设所有的评分带有噪音(均值为0,方差为的高斯噪音), 所以我们的评分为:

如果用户对商品进行评分,那么为1,否则为0.

为了解决稀疏性的问题,此处我们假设评论文档中抽取的文本特征可以用作隐特征的信息性指标,所以我们有:

通过在潜在变量的先验分布中引入文本特征,上下文感知矩阵分解模型可以有效地利用辅助信息,从而解决传统协同过滤方法的稀疏性问题。

4. 算法优化

此处我们采用EM算法对模型进行优化。

实验

1. 模型效果

  • MT模型比所有的baseline模型的效果都要很好多;

2. 解释质量

个性化的MT-P方法倾向于在所有测试数据集中执行所有MT方法中的最佳性能,并且在每种情况下,MT结果始终优于所有基线;

3.判别器效果

  • 判别器逐渐学习有助于区分敌方样本和真实样本的关键因素。
  • 在Amazon Electronics数据集上,用户判别器可以拿到79.4%的准确性,商品判别器可以拿到85.8…%的准确性, 这说明判别器确实了解了用户和物品的重要特征。

小结

本文提出了一种新的多任务学习框架,它可以同时学习进行评分预测和推荐解释。通过两个任务的联合训练还可以提升效果。与当前最新技术相比,所有测试数据集的评测效果都有所提高。与使用更传统的方法相比,所产生的解释性也更接近于实际情况。

参考文献

  1. Why I like it: Multi-task Learning for Recommendation and Explanation:https://dl.acm.org/doi/pdf/10.1145/3240323.3240365
  2. https://www.youtube.com/watch?v=2Oz43b3GaP8
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 炼丹笔记 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Adversarial Sequence-to-Sequence Learning
    • 1.1. Recurrent Review Generator 递归评论生成器
      • 1.2. 卷积评论判别器
        • 1.3. reinforce的评论生成对抗训练
        • 2. 生成个性化的解释
        • 3. 评分预测的上下文-aware的矩阵分解
        • 4. 算法优化
        • 1. 模型效果
        • 2. 解释质量
        • 3.判别器效果
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档