推荐算法设计综述

转载请在文首注明:本文转自微信公众号SIGAI

全文PDF见:

http://www.tensorinfinity.com/paper_178.html

SIGAI特约作者

李东胜 博士

IBM研究院高级研究员

研究方向:推荐系统算法

免责声明:本文所述内容全部为作者本人观点,与其工作单位无关

一、前言

推荐系统能够根据用户的兴趣推荐可能喜欢的条目,目前已经成为互联网中最常见的应用之一[1],被广泛应用于电商(亚马逊、淘宝、京东)、新闻媒体(今日头条)、内容提供商(豆瓣、微博、优酷)等各个领域。据统计,亚马逊约有30%的销售额、Netflix中约有60%的观看时长、谷歌新闻中约38%的新闻点击都来源于各自的推荐系统,由此可见推荐系统对于互联网来说是至关重要的应用之一。 在推荐系统设计中,最关键的一个环节就是设计其背后的推荐算法,然后根据算法的预测为用推荐相关的条目,如商品、电影、电影、音乐等等。本文针对推荐系统中的算法设计问题进行综述,介绍近二十年来主流的推荐算法所采用的基本方法和关键技术,同时分析推荐算法设计中常见的难题以及解决思路,最后简要总结当前国内外推荐算法研究中的热点方向。

二、推荐问题与评价

2.1 推荐问题

目前,推荐系统主要解决两个推荐的问题[1]:一、评分预测,即预测一个用户对于未知条目的评分,例如在豆瓣上用户对电影的评分;二、条目排序,即预测一个用户对未知条目的兴趣排名,例如在亚马逊网站中根据用户点击的商品推荐最相关的若干其他商品。

图1. 豆瓣电影评分

图2. 亚马逊商品推荐列表

2.2 准确性评价指标

对于这两个不同的推荐问题,衡量推荐质量的指标也各不相同。对于评分预测问题来说,常用的衡量算法准确性的指标有下述两个[2]:

其中,R表示用户对条目的评分矩阵,Rij表示第i个用户对于第j个条目的评分,

表示推荐算法预测的评分。Ω表示观测到的评分的集合,N是观测到的评分数量。对于MAE和RMSE来说,数值越小代表推荐的准确性越高。

对于条目排序推荐来说,常用的衡量算法准确性的指标类似于分类问题,需要首先定义推荐是否正确,如下表所示[1]:

然后,针对一个用户的推荐列表,我们可以定义条目排序的准确性指标,如下[2]:

其中#表示相应的数目,比如#TP表示推荐并且用户喜欢的条目数量。对于Precision和Recall来说,数值越大代表推荐的准确性越高。除了这两个指标之外,还有很多论文采用了其他的指标衡量,如AUC (Area Under ROC Curve),NDCG (Normalized discounted cumulative gain),AP (Average Precision),MAP (Mean Average Precision) 等等。由于篇幅有限,本文不对这些指标进行一一介绍,感兴趣的读者可以参考其他论文,如参考文献[3]。

2.3 其他评价指标

除了准确性以外,还有其他的衡量推荐系统性能的指标,如[1]: * 效率:包括模型的数据预处理时间、训练时间、预测时间等。 * 可扩展性:衡量系统是否可以处理大规模数据,如海量用户的训练是否可以并行等。 * 多样性(Diversity):衡量推荐的条目是否过于同质化,主要指标有基尼系数(Ginni Index)、信息熵等。 * 意外性(Serendipity):衡量推荐的条目是否能给用户带来惊喜,即是否能为用户带来从未知道的条目。 * 实用性(Utility):衡量推荐系统的收益,如销售额的提升、点击数量的提升等。 * 鲁棒性(Robustness):衡量推荐系统面临攻击时能否有效的抵御,比如消除虚假用户评分对推荐的影响等。 * 隐私(Privacy):推荐系统在训练模型的时候需要收集各类用户的信息,如个人信息、浏览历史、评分记录等等,这些可能会带来隐私的泄漏,如何在不收集这些信息的前提下进行推荐也是一个重要的研究问题。

2.4 评估方式

针对上述各种评价指标,我们可以对一个推荐系统进行全面的评估,具体的评价方式有下述三种[1]: * 离线评估:将历史数据集进行划分,分成训练集、验证集和测试集三部分,然后根据训练集训练模型,根据验证集上的效果确定模型的超参数,最后得到的模型在测试集上验证准确性等指标。数据集划分的方式有多种,比如随机划分、按照时间序列划分等。

* 在线评估:在线评估比离线评估更接近于真实的使用场景,是在系统运行时根据实际的用户行为与推荐列表进行比较,判断算法性能指标的好坏。一般的在线评估会采用A/B测试,即将用户分成两部分采用不同的推荐算法,然后通过两部分用户上评价指标的差异判断不同推荐算法的优劣。

* 用户调查:有些推荐算法需要用户与系统进行交互或者不同的上下文信息,这些真实场景难以通过离线数据模拟,而在线评估也难以对各个环节(如推荐展示位置、推荐列表长度是否合理等等)进行评测,就需要寻找真实用户做调查。例如,在用户与推荐系统交互的过程中,通过预先设计的问卷,获取用户真实的感受。

三、常用推荐算法介绍

从推荐算法所利用的信息来看,目前常用的推荐算法主要可以分为三类:1)基于内容的推荐算法,主要通过对条目特征的相似性比较来推荐条目,如根据网页文本的相似性为用户推荐与其过去浏览的网页内容相似的新网页;2)基于协同过滤的推荐算法,根据用户之间历史记录的相似性找到每个用户的邻居,然后利用邻居的兴趣来预测目标用户的兴趣;3)混合的推荐算法,将上述二者进行结合,解决单一算法面临的问题,如冷启动等等。

3.1 基于内容的推荐算法

基于内容的推荐算法根据用户过去喜欢的条目的特征来寻找具有类似特征的新条目。通常来说,基于内容的方法包含三个主要步骤: 1. 条目表示:即确定每个条目用哪些特征进行描述。例如,下面表格是一个餐厅推荐的条目表示,其中每行表示一个具有不同特征的餐厅[1]:

2. 用户描述:即通过下述两类信息了解用户的偏好: * 用户偏好。如,用户个人信息中包含对法国菜的偏好。 * 用户历史。如,用户在历史中所就餐的餐厅的历史,如102,103,105等。 3. 推荐计算:即根据用户和条目的特征,计算出每个条目的评分,具体的计算方法包含: * 分类算法,例如决策树、k近邻、朴素贝叶斯等,主要用于结构化数据。 * 其他机器学习方法,如PLSA、LDA等,可以用于文本等非结构化数据。 优点: * 用户之间不相互依赖,只要有目标用户的描述就可以进行推荐。 * 推荐的结果容易解释,可以通过特征的匹配来解释推荐结果。 * 不会受新条目的影响,新的条目的属性信息只要是历史数据中出现的,那么可以用训练好的分类模型而不需要重新训练。 缺点: * 特征的表达能力有限,很多复杂的信息无法建模,如电影的好坏、音乐的好坏等都难以用固定的特征去描述。 * 推荐结果的多样性差,推荐的结果往往更集中在用户过去感兴趣的条目上,而缺乏具有其他特征但是用户可能感兴趣的条目。 * 推荐的准确性较低,在很多应用场景下基于内容的推荐准确性都差于协同过滤方法。

3.2 协同过滤方法

协同过滤方法主要包含两类:1)基于记忆的协同过滤(memory-based collaborative filtering),通过历史上用户和相似邻居之间的行为计算出相似度,然后利用相似度为用户推荐新的条目。通常来说,这里的“记忆”是指对每个目标用户存储k个最相似的邻居,然后在推荐阶段仅依赖于这k个邻居的行为而不用考虑其他非邻居的用户;2)基于模型的协同过滤(model-based collaborative filtering),首先根据用户的历史数据学习一个模型,然后该模型就可以预测用户在未来的兴趣。 3.2.1 基于记忆的协同过滤方法 基于记忆的协同过滤方法主要有两种:1)基于用户的协同过滤方法(user-based collaborative filtering),即针对每个用户寻找最相似的k个用户,然后根据邻居喜欢的条目加权平均进行推荐;2)基于条目的协同过滤方法(item-based collaborative filtering),即针对每个条目寻找最相似的k个条目,然后根据用户喜欢的条目对最相似的条目加权平均进行推荐。 * 基于用户的协同过滤方法。主要包含下面四个步骤[4]: - 收集用户对条目的评分,对于每个用户u,得到评分向量Ru; - 计算用户与邻居之间的相似度,例如用户u和用户v之间的cosine similarity为:

- 根据最相似的k个邻居的评分,计算用户对某个条目的评分,如用户u对于条目i的评分可以按照如下公式计算(

表示用户u的平均评分,Nu表示用户u的k个最相似的邻居集合):

- 得到评分之后,可以将预测评分最高的条目推荐给用户 * 基于条目的协同过滤方法。与上述方法相似,具体步骤如下[5]: * 收集用户对条目的评分,对于每个条目i,得到评分向量Ri; * 计算每个条目与邻居之间的相似度,例如条目i和条目j之间的cosine similarity为:

* 根据用户喜欢的历史条目H_u,计算用户对某个条目的评分,如用户u对于条目i的评分可以按照如下公式计算(

表示条目i的平均评分,Nu表示用户u的k个最相似的邻居集合):

- 得到评分之后,可以将预测评分最高的条目推荐给用户 在上述两个方法中,最关键的步骤是计算用户-用户之间或条目-条目之间的相似度,除了最常用的cosine相似度之外,还有Pearson correlation,Spearman correlation,Jaccard相似度等等,感兴趣的读者可以参考其他论文,如参考文献[4], [5], [6]等。另外,对于邻居的选择也有一些常用的优化方法,如邻居数的选择可以是固定的k个或者是按照相似度大于某个设定的阈值来选取等[4]。此外,相似度的计算可能收到数据稀疏的影响,比如两个评分很少的用户或条目的相似度可能不可靠,需要进行一定的惩罚[4]。 优点: * 算法简单,易于实现 * 算法计算效率高 * 准确性优于基于内容的方法 缺点: * 易受稀疏数据的影响,即两个兴趣相似的用户可能共同评分的条目比较少,导致相似度很低 * 无法解决冷启动的问题,即新用户或新条目无法推荐的问题 3.2.2 基于模型的协同过滤方法 基于模型的协同过滤方法很多,这里主要介绍最常用的基于矩阵分解的协同过滤方法。矩阵分解算法在Netflix Prize竞赛[7]中表现出了卓越的准确性。在很多参赛团队的论文中,矩阵分解算法都是最准确的单模型[8]。假设用户-条目的评分矩阵为

(其中每行表示一个用户,每列表示一个条目),矩阵分解算法通常学习两个低秩的矩阵

,使得

其中

表示R的近似矩阵,U表示用户的特征矩阵(每行代表一个用户的特征向量),V表示条目的特征矩阵(每行代表一个条目的特征向量)。一般来说,两个特征矩阵U和V的秩k是远小于m和n的,因此上述矩阵分解也叫做低秩矩阵分解。学习到U和V之后,用户i对于条目j的评分可以按照如下公式预测:

为了学习到最优的

,通常可以优化下述目标函数:

其中,第一项为矩阵分解的近似误差,第二、三项为正则项可以防止模型过拟合,μ是正则项的系数。 上述优化目标是非凸的,一般采用随机梯度下降或交替最小二乘法来进行求解,迭代公式如下: * 随机梯度下降(Stochastic gradient descent, SGD):

* 交替最小二乘法(Alternating least squares, ALS):

经过若干次迭代后,训练误差的变化很小或者验证集的误差开始上升,表示模型已经收敛,这时需要停止训练,得到的模型(U和V)即是所求的最优模型。上述两个求解方法中,随机梯度下降的准确性较好,但是难以并行计算。交替最小二乘法准确性一般不如随机梯度下降,但是很容易并行求解,可扩展性较好。

3.3 混合推荐方法

实际上,很多推荐系统中并不采用单一的基于内容的方法或者协同过滤方法,而往往采用多种方法的结合,可以解决单一算法的缺陷,我们称这一类方法为混合推荐方法。混合推荐方法具有很多优势,如[9]: * 实现更高的准确性,比如利用集成学习来融合多种模型,提升算法的准确性。 * 解决单模型的缺陷,比如针对冷启动问题,协同过滤方法很难进行推荐,但是基于内容的方法可以解决。 * 能利用附加的信息,比如推荐中可能会获取到除评分以外的用户信息(如上下文信息、评论信息等),这些不同信息需要利用不同的方法来建模,然后进行融合以达到更优的效果。 常用的混合方法有以下集中[9]: * 加权平均:对每个算法设定一个权重,然后通过多个模型结果的加权平均作为最终的推荐结果。 * 分支或级联:对不同的情况采用不同的算法或者设计类似树形结构的级联进行模型混合。 * 元学习:将不同算法的输出作为特征,训练一个新的模型(如神经网络、逻辑回归等)作为最终的模型输出。

四 推荐算法设计中的挑战

4.1 数据稀疏性

在实际的推荐系统中,系统观测到的用户评分往往非常稀疏,例如在Netflix Prize竞赛的数据集中只有1.18%的用户电影对的评分是已知的。这种稀疏性对很多算法带来了挑战,如下面的例子:用户A对电影哈利波特1、2、3评了高分,用户B对电影哈利波特5、6、7评了高分,在基于记忆的方法中,用户A和B的相似度为0,但实际中我们很容易得知A和B的兴趣很相似。为了解决数据稀疏性的问题,相关研究主要集中在下述两类方法:数据降维和利用附加信息。 4.1.1 数据降维 数据降维的基本思想是将高维稀疏的用户评分向量降到稠密的低维度,这样在高维空间距离很远的点可能在低维空间中距离较近,前面提到的矩阵分解方法就是常用的降维手段之一。除了矩阵分解之外,还有很多常用的数据降维方法,如PCA等,这里介绍一个基于自编码器的数据降维方式(AutoRec[10])。

图3 AutoRec方法示意图[10]

如上图所示,自编码器的目标是重构一个用户或者一个条目的评分向量。我们以条目为例,假设

为条目i的评分向量,网络首先通过V将

映射到隐层(低维空间),然后通过W将隐层映射回到

,即确保输出层能够尽可能的重构输入层。模型训练好之后,未观测到的评分,也可以通过模型在输出层重构出来。

算法的重构目标为最小化输入层和输出层之间的误差,如下所示:

编解码函数的定义如下:

最终,通过引入二范数正则项,模型求解的优化目标如下:

4.1.2 利用附加信息 附加信息,如用户个人信息(性别、年龄、职业等)、条目属性信息(电影导演、演员、类别等)等,可以帮忙获得更多的用户兴趣信息,进而解决评分数据过于稀疏甚至缺失时的推荐问题。如何利用附件信息推荐是研究的热点之一,这里介绍其中的一个流行算法因子分解机(factorization machine)[11]。

图4 因子分解机数据组织方式[11]

上图以电影评分预测为例,展示了因子分解机的数据组织方式,其中蓝色部分表示用户的id,红色部分表示电影的id,黄色部分表示用户评分过的所有电影,绿色部分表示评分的时间,紫色部分表示当前评分前用户最后一次评分过的电影,除了这些信息之外,还有其他的信息也可以加入到特征向量x中,比如用户和电影相关的附加信息。右侧的目标y为用户对电影的实际评分。 针对上述的数据组织形式,因子分解机通过多项式的方式去建模特征向量x与目标y的关系,具体如下:

在上式中,w0为全局的bias,wi建模特征之间的一次线性关系,vivj建模第i个特征和第j个特征之间的二次关系。上面的公式还可以继续扩展,建模更高阶的特征交互,但是一般来说阶数越高越容易过拟合,所以二次是比较常用的一个选择。如果去掉附加信息,只有用户和电影之间的二次关系,那么上述函数与Biased Matrix Factorization方法[8]是等价的,这意味着因子分解机是矩阵分解方法的一个泛化。

4.2 冷启动

冷启动问题与数据稀疏问题类似,但是更加具有挑战。因为在冷启动场景中,我们没有用户或条目的任何评分,因此只能依赖其他信息,如基于流行度的推荐、基于各类附加信息的推荐或主动学习等办法来进行推荐。在利用附加信息方面,前文已经有过介绍。因此,这里着重介绍如何通过主动学习的办法解决冷启动的问题。主动学习的思想是通过选择一些能够获取最大信息的条目让用户去评分,通过尽可能少的评分获取更多的用户兴趣。这里主要介绍发表在SIGIR 2011上的Functional matrix factorization (fMF)方法[12]。

图5 fMF方法示意图[12].

如上图所示,fMF方法试图构建一个树模型来挖掘用户兴趣,通过用户不同答案来寻找不同的主动学习路径,优化主动学习的效果。fMF方法假设用户的兴趣未知,因此通过一个树模型T(ai)得到用户i的特征向量,假设条目j的特征向量为vj,那么算法的优化目标为:

上述优化目标为非凸的,因此作者选择了一个交替优化的策略: 1. 给定决策树T,求解item特征向量

2. 给定item特征向量,求解决策树T

经过多次迭代,模型收敛后即可得到一个决策树来挖掘用户兴趣并将用户兴趣映射为用户特征向量,同时得到条目的特征向量,然后用户特征向量与条目特征向量的点积做为推荐评分。

4.3 可解释性

可解释性是人工智能领域的一个通用概念,即通过黑盒模型预测的结果如何使得人类能够更好的理解和使用。由于推荐推荐系统需要与用户直接交互,可解释的推荐可以起到多种效果,比如帮助用户更快决策、说服用户购买商品、原谅不喜欢的推荐、建立用户对系统的信任、帮助用户理解推荐系统等等[13, 15]。在推荐系统领域,推荐结果的可解释性往往通过用户或条目本身或者用户或条目的附件信息来获得,如这部电影与您过去喜欢的另一部电影很相似等等。例如,下图展示了四种不同的生成解释的方式。

图6 四种生成解释的方式[14]

1. 通过用户之间的相似性,比如跟目标用户相似的另一个用户也喜欢某个条目 2. 通过条目属性之间的相似性,比如某个条目与用户过去常看的条目具有相同属性(相同电影类型、演员等) 3. 通过条目之间的相似性,比如跟用户喜欢的条目相似的条目 4. 根据用户需求产生解释,比如某些条目满足用户当前的某个需求(如最近上映的电影等)

4.4 上下文感知

很多推荐场景需要感知用户的上下文信息才能做出合理的推荐,如旅行路径推荐需要知道用户当前的地理位置、餐厅推荐要考虑时间信息等。上下文信息不同于前文提到的附加信息,因为上下文信息往往是动态的、可变的,而附加信息通常是静态的、不变的。上下文信息在不同的文献中的定义各不相同,相关文献总结发现上下文信息的定义超过了150种[15]。常见的上下文信息有时间、地理位置、天气、用户意图、用户情绪等。 在相关研究中,主要采用三种方式来引入上下文信息:1)预过滤[17],在推荐计算之前将数据进行过滤,去除不符合上下文的条目;2)后过滤[18],在推荐产生之后,根据上下文信息将推荐结果进行过滤;3)对上下文进行建模[19],即将上下文信息作为附加信息考虑到模型的学习中。前两种做法相对比较简单,这里着重介绍第三种做法,即如何在模型学习的过程中考虑上下文信息。

图7 基于因子分解机的上下文感知的推荐[19]

上图是一个基于因子分解机的上下文感知推荐方法,通过将上下文信息引入到特征向量中来学习不同上下文信息与用户和条目之间的关系。例如,上图中黄色部分表示用户的心情(通过one-hot编码方式),绿色部分表示与用户一起看电影的其他用户(为集合特征),此外数值型的特征如位置远近等也可以很容易的编入上述特征表达中。将上下文信息编入模型的特征后,即可以学习到不同上下文特征对于不同用户和条目的影响,在新的上下文出现后即可计算出相应的推荐评分。这里的模型训练方式与之前介绍的因子分解机类似,因此不再赘述。

4.5 用户隐私

由于推荐系统需要采集用户的信息,如用户的个人信息、用户评分历史、浏览记录等,这些会对用户的隐私带来一定的泄漏风险。目前,相关研究中的一个重要方向就是探索如何在推荐系统不获取用户隐私的前提下做出准确的推荐。相关方法主要可以分为三类:1)基于数据随机化的方法,即通过随机扰动改变用户的评分,使得服务器无法获得真实的用户评分;2)基于同态加密的方法,同态加密方法可以保证计算都在密文上进行,而最终结果只有用户可以解密;3)多方安全计算,通过多个用户之间计算协议确保计算能够得到预期的结果但是对每个用户的隐私都不造成泄漏。 * 基于数据噪声的方法[20]。通过将用户的评分添加一个均值为0的随机高斯噪声,然后将随机扰动后的评分发给服务器,用来计算推荐结果。添加了噪声之后,数据的加法和乘法与添加噪声之间相比得到的结果是近似相同的。 乘法:

加法:

这种随机扰动的方法会对推荐的准确性造成一定的影响,并且高斯噪声的方差越大,准确性损失也会更大。但由于加法和乘法的结果与扰动之前接近,因此对于推荐结果的准确性影响不会很大。 * 基于同态加密的方法[21]。该方法利用El-Gamal加密方式对用户数据进行加密,这种加密方式也叫做同态加密,因为其满足加法和乘法同态,即对于加密操作E满足:

由于采用了同态加密,用户可以将评分加密后与其他用户共同求解一个矩阵分解模型,得到模型后可以通过一个分布式密钥管理的办法进行分布式解密,保证只要超过一半的用户不与服务器合谋的前提下用户的隐私就不会被泄漏。由于同态加密算法对于原始推荐算法没有改变,所以最终并不会影响推荐的准确性。 * 基于多方安全计算的方法[22]。该方法通过将用户数据在多个用户之间进行交换的方式达到计算的目的,在计算之后只能得到聚合的结果而不能得到每个人的隐私。例如,三个用户A、B、C每人拥有一个实数,对三个数的求和可以采取下述方式。A将自己拥有的数随机分成三个实数,保证三个实数之和与原来的数相同,然后将其中的两个实数随机发送给B和C,然后B和C也做同样的操作,A、B、C各自将得到的数字相加,最后再把三个人的计算结果求和即得到真实的求和。通过这种做法,可以很容易的计算条目之间的相似度,然后利用条目之间的相似度,用户可以采用基于条目的协同过滤方法在本地得到推荐结果,而不泄漏自己的隐私。由于计算是分布式进行的,这种多方安全计算的方法比上述随机扰动的方法计算快14倍左右,比上述基于同态加密的方法快386倍左右。

五 研究热点:基于深度学习的推荐方法

近年来,随着深度学习方法的不断进步,推荐算法领域的研究人员也开始尝试利用深度学习技术更强的模型表达能力来解决推荐系统面临的各种问题。本章将简要介绍其中的一些方向,感兴趣的读者可以参考其他文献(如[23])来更深入的了解基于深度学习的推荐方法。神经网络比传统的矩阵分解等方法更擅长于处理复杂的数据,因此本文尝试从数据类型的角度来介绍基于深度学习的推荐方法。

5.1 基于序列信息的推荐

传统的推荐算法中,如矩阵分解,假设用户的兴趣是固定的,因此只需要用一个静态模型来预测用户的未来兴趣。但是在实际系统中,用户的兴趣可能会随着时间发生变化或者用户当前的兴趣与过去的某些行为有相关性,因此需要对用户的行为序列进行建模。针对这类与用户历史序列信息相关的问题,基于循环神经网络的方法可以很好的进行处理。相关研究较多,如[24, 25],本文主要介绍recurrent recommender network (RRN)方法[24]。

图8 循环推荐网络(recurrent recommender network, RRN)示意图[24]

RRN方法采用基于LSTM的循环神经网络来建模用户和电影特征的动态变化。对于用户i和电影j来说,假设ui是用户i的静态特征向量,mj是电影j的静态特征向量。在t时刻,假设uit是用户i的动态特征向量,mjt是电影j的动态特征向量。然后,动态的特征可以通过LSTM来序列化的求解,如下:

其中,g和h是需要学习的函数。有了用户的动态特征和静态特征,就可以预测用户当前的兴趣,具体如下:

其中,f也是需要学习的函数。 建模了序列信息之后,推荐的准确性可以得到显著的提升,例如下图是RRN方法的准确性(在模型参数数量相似的情况下能够比其他算法更准确)。

图9 RRN方法与PMF、SVD++、AutoRec方法的准确性对比[24]

5.2 基于文本信息的推荐

在推荐系统中,很多数据中包含丰富的文本信息,如电影的简介、商品的介绍、用户对商品的评价等等。这些信息对于提升推荐的准确性具有关键的作用[26, 27, 28, 29]。对于文本特征的提取,常用的方法是基于卷积神经网络(Convolutional Neural Network, CNN),比如[26, 27]。本文主要介绍发表在RecSys 2016上的基于卷积神经网络的矩阵分解方法(ConvMF)[26]。

图10 ConvMF方法示意图[26]

ConvMF方法基于传统的概率矩阵分解(PMF)方法[30]。对于条目特征向量vj,除了用评分来学习以外,还可以通过每个条目对应的文本信息xj来帮助学习更优的vj。对于问题信息的提取,ConvMF方法采用的是CNN的方法。首先,将通过word2vec方法(如GloVe方法[31])将条目对应的文本进行嵌入表达,每个词表示成一个向量,所有词合并为一个矩阵,然后通过卷积层提取特征,通过max pooling层获取最重要的信息,然后输出层将每个xj的特征映射到V对应的隐空间。方法所求解的优化目标如下:

对于上式的求解可以采用坐标下降法(Coordinate descent),即固定CNN的参数W和条目特征V,训练U,然后依次类推,直到模型收敛。

5.3 其他

除了上述序列信息和文本信息之外,基于深度学习的推荐方法还被广泛应用在各种新推荐问题。主要包括: * 基于会话的推荐(session-based recommendation)。在很多场景,如电商中,用户在不同的会话中会有不同的意图。如果不能识别用户当前的意图,会对推荐的准确性造成损失。比如,用户当前想购买电子产品,那么推荐用户可能喜欢的食品不会获得用户点击。当前的工作主要根据用户在会话开始时的第一次点击,推测用户的意图,然后基于循环神经网络进行条目的推荐。较早的工作为GRU4Rec[32],其他代表性的工作有p-RNN[33]、NARM[34]等。

* 多媒体推荐。传统的多媒体推荐场景主要考虑用户与条目的交互,不考虑多媒体条目本身,如图像、音频、视频等。这些多媒体条目包含丰富的特征,对于提升推荐的准确性有很重要的作用。由于深度学习的强大特征提取能力,因此很多工作采用深度学习技术来提取多媒体特征提升推荐准确性。比如,ACF [35]方法首先通过ResNet来提取图片或视频帧中间的特征,然后用注意力机制将图片或视频中重要的特征应用到推荐中。

* 多任务推荐。深度学习可以对不同任务学习不同的特征,同时从不同任务中学习到的特征可以共享来提升其他任务的学习效果。此外,多任务学习也可以看作是一种正则方法,通过使学到的特征适合多个任务而不过于偏向一个特定任务来防止过拟合。比如,Bansal等人[36]将用户推荐和标签推荐两个任务共同学习,通过多任务学习的做法来防止过拟合。 除此之外,还有一类工作尝试将传统的推荐方法用深度学习的方式来做改进,利用深度学习更强的建模能力来提升算法的准确性。比如,NCF[37]通过多层神经网络来建模用户特征向量与条目特征向量之间的关系,比传统的矩阵分解方法中点积方式的表达能力更强。DMF[38]采用了Deep Structured Semantic Models (DSSM)的思想,用深度神经网络来建模用户和条目间的关系。还有一些工作尝试对因子分解机进行改进,如Neural Factorization Machine (NFM) [39]、DeepFM[40]、xDeepFM[41]等。

六 总结与展望

随着推荐技术的不断发展,推荐系统的重要性也在逐步提高,并在特定场景下超过了搜索引擎的重要性。比如,在2018年的淘宝双十一活动后,淘宝总裁蒋凡提到:在今年双11我们也可以看到,基于个性化推荐的流量已经超过了搜索等方式带来的流量,这是一个非常非常大的变化,这在过去是完全不可想象的。因此,我们相信推荐系统在未来会有更广阔的的应用范围和发展前景。在推荐算法的研究中,尤其是应用推荐技术解决真实的推荐问题时,仍然存在着若干关键的技术难题亟待解决,总结如下: *表达能力。推荐系统的数据较为复杂,体现在:1)包含多种数据类型,如评分数据、数值特征、文本、图片、音频等等。针对这类问题,常见的解决思路是提升模型建模复杂数据的能力,比如因子分解机[11]。2)特征之间的关系复杂,如线性关系和非线性关系。针对特征见复杂的关系,可以采用神经网络的方式去进行建模,如NCF[37];3)数据中存在复杂的内部结构,例如电影评分矩阵通常不是一个单一的简单结构而是一个混合秩的结构[42]。针对数据中存在的复杂内部结构,可以采用混合模型的方式去抓出数据内部的隐含结构,如MRMA[42]。 *泛化能力。泛化能力是所有机器学习算法面临的通用问题。在推荐系统中,由于数据不完整或者数据噪声大等问题,很多算法的泛化能力较差,即算法在训练集表现较好但是在新的测试集上表现较差。解决算法泛化能力差的方法主要有下面三类:1)基于机器学习理论的方法,即设计理论上泛化能力更强的方法,如稳定矩阵分解(Stable Matrix Approximation) [43];2)多任务学习,通过多个任务互相约束来防止单个任务过拟合,如混合概率矩阵分解(mixture probabilistic matrix approximation) [44];3)集成学习,通过多个弱模型的结合降低预测的方差,达到提升泛化能力的目的,如WEMAREC [45]。 *可扩展性。面临着当前互联网中用户产生的大量数据,几乎每个推荐算法在实际应用中都会面临可扩展性的问题。一般来说,可扩展性主要体现在两个方面:数据的可扩展性和模型的可扩展性。在数据可扩展性方法,常见的解决思路是将数据分成若干片段,然后在片段上进行模型学习,比如GraphChi [46]。在模型可扩展性方面,常见的解决思路是在数据片段上进行建模,然后将子模型合并计算推荐结果(如DFC [47])或者单独使用进行推荐(如GLOMA [48])。

参考文献 [1] Ricci, F., Rokach, L., Shapira, B., Kantor, P.B. (Eds.). Recommender Systems Handbook. 2011. Springer. [2] Gunawardana, Asela, and Guy Shani. "A survey of accuracy evaluation metrics of recommendation tasks." *Journal of Machine Learning Research* 10.Dec (2009): 2935-2962. [3] Chen, Wei, et al. "Ranking measures and loss functions in learning to rank." *Advances in Neural Information Processing Systems*. 2009. [4] Herlocker, Jonathan L., et al. "An algorithmic framework for performing collaborative filtering." The *22nd Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, SIGIR 1999*. Association for Computing Machinery, Inc, 1999. [5] Sarwar, Badrul Munir, et al. "Item-based collaborative filtering recommendation algorithms." 10th International World Wide Web Conference (2001): 285-295. [6] Hyung Jun Ahn. 2008. A new similarity measure for collaborative filtering to alleviate the new user cold-starting problem. *Inf. Sci.* 178, 1 (January 2008), 37-51. [7] James Bennett, Stan Lanning, and Netflix Netflix. The Netflix Prize. In In KDD Cup and Workshop in conjunction with KDD, 2007. [8] Koren, Yehuda, Robert Bell, and Chris Volinsky. "Matrix factorization techniques for recommender systems." *Computer* 8 (2009): 30-37. [9] Burke, Robin. "Hybrid web recommender systems." *The adaptive web*. Springer, Berlin, Heidelberg, 2007. 377-408. [10] Sedhain, Suvash, et al. "Autorec: Autoencoders meet collaborative filtering." *Proceedings of the 24th International Conference on World Wide Web*. ACM, 2015. [11] Rendle, Steffen. "Factorization machines." *2010 IEEE International Conference on Data Mining*. IEEE, 2010. [12] Zhou, Ke, Shuang-Hong Yang, and Hongyuan Zha. "Functional matrix factorizations for cold-start recommendation." *Proceedings of the 34th international ACM SIGIR conference on Research and development in Information Retrieval*. ACM, 2011. [13] Zhang, Yongfeng, and Xu Chen. "Explainable recommendation: A survey and new perspectives." *arXiv preprint arXiv:1804.11192* (2018). [14] Friedrich, Gerhard, and Markus Zanker. "A taxonomy for generating explanations in recommender systems." *AI Magazine* 32.3 (2011): 90-98. [15] Herlocker, Jonathan L., Joseph A. Konstan, and John Riedl. "Explaining collaborative filtering recommendations." *Proceedings of the 2000 ACM conference on Computer supported cooperative work*. ACM, 2000. [16] Bazire, Mary, and Patrick Brézillon. "Understanding context before using it." *International and Interdisciplinary Conference on Modeling and Using Context*. Springer, Berlin, Heidelberg, 2005. [17] Adomavicius, G., Sankaranarayanan, R., Sen, S., and Tuzhilin, A., Incorporating contextual information in recommender systems using a multidimensional approach. ACM Transactions on Information Systems (TOIS), 23(1):103–145, 2005. [18] Panniello, U., Tuzhilin, A., Gorgoglione, M., Palmisano, C., and Pedone, A., Experimental comparison of pre-vs. post-filtering approaches in context-aware recommender systems. In Proceedings of the 3rd ACM conference on Recommender systems, pages 265–268. ACM, 2009. [19] Rendle, Steffen, et al. "Fast context-aware recommendations with factorization machines." *Proceedings of the 34th international ACM SIGIR conference on Research and development in Information Retrieval*. ACM, 2011. [20] Polat, Huseyin, and Wenliang Du. "Privacy-preserving collaborative filtering using randomized perturbation techniques." *Third IEEE International Conference on Data Mining*. IEEE, 2003. [21] Canny, John. "Collaborative filtering with privacy." *Proceedings 2002 IEEE Symposium on Security and Privacy*. IEEE, 2002. [22] Li, Dongsheng, et al. "An algorithm for efficient privacy-preserving item-based collaborative filtering." *Future Generation Computer Systems* 55 (2016): 311-320. [23] Zhang, Shuai, et al. "Deep learning based recommender system: A survey and new perspectives." *ACM Computing Surveys (CSUR)* 52.1 (2019): 5. [24] Wu, Chao-Yuan, et al. "Recurrent recommender networks." *Proceedings of the tenth ACM international conference on web search and data mining*. ACM, 2017. [25] Yin Zheng, Bangsheng Tang, Wenkui Ding, and Hanning Zhou. 2016. A neural autoregressive approach to collaborative filtering. In *Proceedings of the 33rd International Conference on International Conference on Machine Learning - Volume 48* (ICML'16), Vol. 48. JMLR.org 764-773. [26] Kim, Donghyun, et al. "Convolutional matrix factorization for document context-aware recommendation." *Proceedings of the 10th ACM Conference on Recommender Systems*. ACM, 2016. [27] Lei Zheng, Vahid Noroozi, and Philip S. Yu. 2017. Joint Deep Modeling of Users and Items Using Reviews for Recommendation. In WSDM ’17. 425–434. [28] Yi Tay, Anh Tuan Luu, and Siu Cheung Hui. 2018. Multi-Pointer Co-Attention Networks for Recommendation. In KDD ’18. 2309–2318. [29] Wang, Hao, Naiyan Wang, and Dit-Yan Yeung. "Collaborative deep learning for recommender systems." *Proceedings of the 21th ACM SIGKDD international conference on knowledge discovery and data mining*. ACM, 2015. [30] Mnih, Andriy, and Ruslan R. Salakhutdinov. "Probabilistic matrix factorization." *Advances in neural information processing systems*. 2008. [31] Pennington, Jeffrey, Richard Socher, and Christopher Manning. "Glove: Global vectors for word representation." *Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP)*. 2014. [32] Hidasi, Balázs, et al. "Session-based recommendations with recurrent neural networks." *arXiv preprint arXiv:1511.06939*(2015). [33] Hidasi, Balázs, et al. "Parallel recurrent neural network architectures for feature-rich session-based recommendations." *Proceedings of the 10th ACM Conference on Recommender Systems*. ACM, 2016. [34] Li, Jing, et al. "Neural attentive session-based recommendation." *Proceedings of the 2017 ACM on Conference on Information and Knowledge Management*. ACM, 2017. [35] Jingyuan Chen, Hanwang Zhang, Xiangnan He, Liqiang Nie, Wei Liu, and Tat-Seng Chua. 2017. Attentive Collaborative Filtering: Multimedia Recommendation with Item- and Component-Level Attention. (2017). [36] Trapit Bansal, David Belanger, and Andrew McCallum. 2016. *Ask the GRU*: Multi-task Learning for Deep Text Recommendations. In *Proceedings of the 10th ACM Conference on Recommender Systems* (RecSys '16). ACM, New York, NY, USA, 107-114. [37] He, Xiangnan, et al. "Neural collaborative filtering." *Proceedings of the 26th International Conference on World Wide Web*. International World Wide Web Conferences Steering Committee, 2017. [38] Xue, H. J., Dai, X., Zhang, J., Huang, S., & Chen, J. (2017, August). Deep Matrix Factorization Models for Recommender Systems. In *IJCAI* (pp. 3203-3209). [39] He, Xiangnan, and Tat-Seng Chua. "Neural factorization machines for sparse predictive analytics." *Proceedings of the 40th International ACM SIGIR conference on Research and Development in Information Retrieval*. ACM, 2017. [40] Guo, Huifeng, et al. "DeepFM: a factorization-machine based neural network for CTR prediction." *arXiv preprint arXiv:1703.04247* (2017). [41] Lian, Jianxun, et al. "xDeepFM: Combining explicit and implicit feature interactions for recommender systems." *Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining*. ACM, 2018. [42] Dongsheng Li, Chao Chen, Wei Liu, Tun Lu, Ning Gu, and Stephen M. Chu. 2017. Mixture-rank matrix approximation for collaborative filtering. In *Proceedings of the 31st International Conference on Neural Information Processing Systems* (NIPS'17). Curran Associates Inc., USA, 477-485. [43] Dongsheng Li, Chao Chen, Qin Lv, Junchi Yan, Li Shang, and Stephen M. Chu. 2016. Low-rank matrix approximation with stability. In *Proceedings of the 33rd International Conference on International Conference on Machine Learning - Volume 48* (ICML'16), Vol. 48. JMLR.org 295-303. [44] Chao Chen, Dongsheng Li, Qin Lv, Junchi Yan, Stephen M. Chu, and Li Shang. 2016. MPMA: mixture probabilistic matrix approximation for collaborative filtering. In *Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence* (IJCAI'16), Gerhard Brewka (Ed.). AAAI Press 1382-1388. [45] Chao Chen, Dongsheng Li, Yingying Zhao, Qin Lv, and Li Shang. 2015. WEMAREC: Accurate and Scalable Recommendation through Weighted and Ensemble Matrix Approximation. In *Proceedings of the 38th International ACM SIGIR Conference on Research and Development in Information Retrieval* (SIGIR '15). ACM, New York, NY, USA, 303-312. [46] Aapo Kyrola, Guy Blelloch, and Carlos Guestrin. 2012. GraphChi: large-scale graph computation on just a PC. In *Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation* (OSDI'12). USENIX Association, Berkeley, CA, USA, 31-46. [47] Mackey, Lester W., Michael I. Jordan, and Ameet Talwalkar. Divide-and-conquer matrix factorization. *Advances in neural information processing systems*. 2011. [48] Chao Chen , Dongsheng Li , Qin Lv , Junchi Yan , Li Shang , Stephen M. Chu, GLOMA: embedding global information in local matrix approximation models for collaborative filtering, Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence, February 04-09, 2017, San Francisco, California, USA.

本文为SIGAI原创

文章PDF见http://www.tensorinfinity.com/paper_178.html

原文发布于微信公众号 - SIGAI(SIGAICN)

原文发表时间:2019-06-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券