推荐系统遇上深度学习(三十七)--基于多任务学习的可解释性推荐系统

论文名称:《Why I like it: Multi-task Learning for Recommendation and Explanation》
论文地址:https://dl.acm.org/citation.cfm?id=3240365

本文提出了一种通过结合概率矩阵分解PMF和对抗式Seq2Seq模型的多任务学习框架,可以通过矩阵分解模型得到用户对物品的评分,通过Seq2Seq模型可以生成用户对于物品的评论,在提升推荐预测准确性的同时,能够在一定程度上解决推荐系统中难以提供可解释性推荐结果的难题。我们来一探究竟。

1、整体框架

该模型的整体框架如下图所示:

可以看到,该模型架构可以分为两个部分:

对抗式Seq2Seq模型(Adversarial Sequence-to-Sequence Learning):这一部分学习生成用户对于物品的评论,并作为推荐结果的可解释性依据。

上下文感知的PMF模型(Context-aware Matrix Factorization):这一部分主要得到用户对于目标物品的评分。

接下来,我们分别介绍上面两部分的结构。

2、对抗式Seq2Seq模型

关于该部分的模型,文章首先介绍了单独生成用户u的评论和单独生成物品j评论的过程,最后简单介绍了生成用户u对物品j个性化评论的过程。注意在上面的框架图中,对抗式Seq2Seq模型包含了单独生成用户评论和单独生成物品评论两个部分的结构。

这里我们以单独生成用户的评论为例,介绍模型的结构。单独生成物品的评论,是同样的原理。

首先定义用户文档du,i代表用户i的所有历史评论的集合,而物品文档dv,j代表物品j的所有历史评论集合。

经典的Seq2Seq模型,Decoder阶段输入的是已知的正确数据,但是这种方式会导致exposure bias,即一步错,步步错。所以,文章首创一种对抗式 Seq2Seq 模型,与常见的 GAN 方式一样包括判别网络和生成网络。

2.1 Recurrent Review Generator

生成器G的目的是尽可能生成像用户i所写的评论。包含两个主要的部分:用户文档encoder和用户评论生成decoder。

用户文档encoder

该部分的详细流程如下:
1、对于用户文档du,i中的每一条评论,将其进行分词,得到(w1,w2,...,wT)单词序列。
2、单词序列通过embedding 表得到对应的k维embedding,这里的embedding通过首先通过word2vec预训练得到,随后经由反向传播的过程不断更新。
3、将单词序列对应的embedding输入到双向的GRU循环神经网络中,得到两部分的输出:

两部分的输出分别代表正向输入和反向输入的最后时刻的输出,然后将两部分的输出进行拼接,得到每个评论的对应向量hT
4、将每个评论的的对应向量hT进行求平均操作,得到用户的文本特征向量,用U~i表示。

用户评论生成decoder
在得到用户的文本特征向量之后,decoder生成用户评论的过程可以用如下的条件概率表示:

这里的decoder的初始隐状态是全0的向量,而非encoder最后时刻的隐藏层状态。encoder和decoder通过用户文本特征向量相联系。decoder在t-1时刻得到选择的单词yi,t-1时,得到该单词对应的向量xi,t-1,并与用户文本特征向量进行拼接,作为decoder的t时刻的输入:

decoder的初始输入是开始标记SOS,在得到结束标记EOS时终止。在训练初期,使用用户真正的评论进行参数预训练,随后通过蒙特卡洛搜索的方式生成评论。

2.2 Convolutional Review Discriminator

对于判别模型,其目的不仅仅是区分评论是否是人写的,还要区分生成的评论是否是用户i所写的,所以需要在结构中加入用户特征向量,该特征向量不是上文所说的用户文本特征向量,应该是对用户ID所对应的Embedding。该部分借鉴经典的textCNN结构进行判别,将评论词汇向量与用户特征向量进行 Concat 处理后作为输入,模型结构如下所示:

2.3 Adversarial Training for Review Generation with REINFORCE

对判别器来说,其目标是尽可能将人写的和生成器生成的区分开来,其目标是最大化下面的式子:

而对生成器来说,采用强化学习中策略梯度的方式进行训练,其梯度为:

而最终生成网络的损失函数定义如下:

其中,U是经由矩阵分解模型得到的用户向量矩阵,如何得到我们将在后面介绍。这还不同于textCNN中输入的用户特征向量。所以我们缕一缕,现在每个用户有三组不同的向量:用户文本特征向量、经由矩阵分解得到的用户向量、textCNN中输入的用户向量。

在生成器加入后面的正则项的原因是为了使用户文本特征向量不仅仅经由用户的评论生成,同时还考虑用户在评分矩阵中所体现出的偏好。

2.4 扩展

上面介绍了用户评论生成器,物品评论生成器和用户-物品评论生成器都是同样的过程,只是将输入做了一定的替换。这里我们就不再做过多的解释了。

3、上下文感知的PMF模型

这里评分预测问题所选用的模型是概率矩阵分解PMF模型(Probabilistic Matrix Factorization)。

我们这里简单介绍一下该模型的原理。该模型基于如下两个假设:
使用如下两个假设:观测噪声(观测评分矩阵R和近似评分矩阵之差)为高斯分布,同时用户属性向量和物品属性向量矩阵均为多元高斯分布(即向量中的每一维服从不同的高斯分布),即:

上面第一个式子可以改写成:

我们的目标是基于目前的评分矩阵,找到最有可能的用户向量和物品向量,即最大化下面的后验概率:

这里所有的方差都是超参数,所以可以认为是常量,所以可以对上面的式子进行化简(这里用户和物品向量是独立的):

两边取对数得到:

将多元高斯分布的公式带入最终化简可得到:

上面第二行的数都是常数,所以我们只需要关心第一行的式子,最大化上面的式子,最终可化简为最小化下面的式子:

有关详细的推导过程,可以参考文章:https://blog.csdn.net/df19900725/article/details/78222076?locationNum=4&fps=1

本文对上面的过程进行了一定的改进,主要是用户属性向量和物品属性向量所服从的分布变为:

而最终经由化简得到的损失函数为:

通过求导数为0,可以计算得到最终的结果为:

感兴趣的同学可以自己推导一下上面的过程。

4、模型训练流程

一种常见的训练方式是将两部分的损失函数加起来得到一个全局的损失函数进行联合训练。但是,无论是生成模型还是评分预测模型,两部分都同时依赖用户向量U和用户文本特征向量U~,以及物品向量V和物品文本特征向量V~。如果想要生成好的评论,模型会期望所得到的用户向量U和物品向量V是准确的,如果想要得到较为精确的评分,模型会期望用户文本特征向量U~和物品文本特征向量V~是准确的,但是在训练初期,二者都不是特别精确,因此会导致两个任务之间相互误导。
所以实际中采用类似于EM方法的训练方式,即当训练其中一个任务时,固定另一个任务的参数,反复交叉训练,其流程如下图:

5、实验结论

论文使用均方误差(MSE)作为对预测评分的评价指标。对 Yelp 2013、Yelp 2014 等 5 个国际通用数据集进行试验,结果如下所示。

MT 为本论文所提出的的多任务学习的推荐算法模型,由实验结果所示,该算法模型的 MSE 的结果最多个数据集的结果中都表现最优。

对于推荐系统的算法解释效果如何,最佳的评价方式就是线上与用户进行互动调研。但目前论文还没有这样做,论文采用了一种妥协的方式评价生成的评论质量如何。

利用 Perplexity的评价指标对比其他生成模型的生成效果以及 tf-idf 的相似性计算方式评价生成的评论与真实评论的近似性,结果如下所示,本论文模型生成的评论效果最佳。

6、总结

论文尝试用生成评论的方式解决推荐算法的解释合理性难题,并将预测评分率的效果达到了 state-of-the-art。评论生成的方式作为推荐解释的方式虽然存在争议,但不失为一条路径。

论文中涵盖了多种前沿领域的研究热点,包括对抗式网络、AutoEncoder、强化学习、多任务学习等等,是值得一看的优质应用论文。

参考文献

1、原文:https://dl.acm.org/citation.cfm?id=3240365
2、http://www.mingriqingbao.com/web/detail/forword/P/36267
3、https://blog.csdn.net/df19900725/article/details/78222076?locationNum=4&fps=1

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容