基于列表级排序的深度生成推荐方法
【原文:孙肖依,刘华锋, 景丽萍,于剑 《基于列表级排序的深度生成推荐方法》-载于2020年4月出版的“计算机研究与发展”第57卷第8期】
1.背景
推荐系统的主要目的就是帮助用户在大量的物品中选择出他们可能感兴趣的物品。在已有的研究当中,协同过滤方法由于只依赖于用户过去的行为数据而在推荐系统中得到了广泛的应用。近些年来,越来越多的方法提出将深度神经网络应用到协同过滤中。与一般的深度模型相比,基于深度生成概率模型具有更强的灵活性,在推荐上取得了更好的效果,如变分自编码器(variational autoencoder, VAE)。但VAE目前还存在一些缺点,如无法针对隐式反馈的推荐数据为用户生成个性化的推荐排序列表。
2.论文的创新之处
针对VAE上述的缺点,论文进行以下的创新:
1)借助多项式似然对VAE实施基于列表的排序策略,提出了一种深度生成推荐模型;
2)模型具有同时生成点级隐式反馈数据并为每个用户创建列表式偏好排序的能力;
3)利用了一个平滑函数来近似NDCG(normalized discounted cumulative again,归一化累计损失增益)评价指标,解决了NDCG评价指标是非平滑函数不能直接求导的问题。
3.模型结构
基于列表级排序的深度生成推荐方法主要包括点级隐式反馈数据生成和列表级排序列表构建两部分。模型结果如图1所示:
图1 论文所提出的模型结构图(该图选自原文)
1)点级隐式反馈数据生成
这个部分主要由VAE组成,包括编码器和解码器。每个VAE都利用编码器将输入压缩为变分分布,然后通过解码器从后验概率分布中采样的隐变量来获得生成分布进行预测。
2)列表级排序列表构建
多项式分布中的概率分布值可以看作是用户u对所有物品的喜好程度,因此它可以被用于为每个用户构建所有物品的列表级排序列表。
在列表级排序列表构建部分,为了将排序损失与变分自编码器损失结合起来,论文采取归一化累计损失增益(normalized discounted cumulative again, NDCG)作为排名损失,并通过最大化排序评价指标NDCG来构建列表级排序。但由于NDCG不可导,不能直接使用评价指标作为损失函数进行优化求解,所以论文用连续可导的损失函数对评价指标进行近似。
4.实验与结果
论文通过在3个不同领域的真实数据集:MovieLens-100k(ML-100k)、XuetangX、Jester上进行了实验, 实验结果如下:
表1 在ML-100k数据集上基线模型与论文模型的对比(该表选自原文)
表2 在XuetangX数据集上基线模型与论文模型的对比(该表选自原文)
表3 在Jester数据集上基线模型与论文模型的对比(该表选自原文)
从3张表的实验数据可以看出,论文所提出的基于列表级排序的深度生成推荐方法在3个数据集上均获得了最好的效果。
5.总结
1)论文提出了一种将列表级排序学习方法应用到了深度生成推荐模型中,生成隐式反馈数据的个性化排序推荐列表的方法;
2)论文模型可以作为联合深度方法,采用多项式分布对隐式反馈数据进行特征描述,利用列表级排序模型对排序列表进行学习;
3)论文模型在一些场景下具有为用户生成个性化排名列表的能力,例如课程、电影推荐等。
撰稿:池俊龙
审稿:丁美荣