百度推出新型“智能”推荐技术
2014-11-18
众所周知,ACM RecSys是推荐系统顶级国际会议,每年邀请该领域的著名学者及互联网知名专家担任主讲嘉宾,议题涵盖推荐算法、社会化推荐、用户建模、机器学习和人机交互等前沿技术。
RecSys评委们对文章的筛选一向以“苛刻”著称,每年只接受300篇左右,接受率约为20%。2012年,百度成为第一家参加RecSys的国内公司;2013年,发表了题为“计算广告和推荐系统”的主题演讲;2014年,又有多篇论文发布,不断向世界展示推荐技术的最新发展。
本文基于在RecSys 2014上百度大数据实验室发布的题为《智能因子分解机》的论文,深入解析了一种新型的智能因子分解机。它将因子自动学习算法纳入因子模型,以智能学习特征,替代人工特征工程,极大提升了因子分解机的应用效率。经过真实数据和人造数据验证,其有效性和效率皆优于现阶段其他方法,是百度在推荐技术上的又一突破。
推荐系统技术综述
推荐技术在过去十几年中取得了巨大发展,当前业界的主流技术有两种:传统文本不感知方法和文本感知方法。
传统的文本不感知方法,是在用户物品评分矩阵基础上建立模型,例如只考虑用户与物品交互。其中,矩阵因子分解方法因其在处理相对较大数据集中的良好表现和有效性大受欢迎。这些方法利用低秩矩阵分解逼近用户物品评分矩阵,并用它们来做更进一步的预测。
而在真实情境中,许多辅助信息是可获取的,并被证明在大数据集中特别有效。举例来说,对于微博中的名人推荐问题,用户与名人元数据(包括年龄、性别等)、名人的受欢迎程度、最近的用户表现,都能帮助系统做出更好的推荐。我们将辅助信息特征称为文本感知推荐。文本感知因子分解机是目前最成功的文本感知推荐模型之一。因子分解机与所有特征两两互动,这样,一个特定的特征隐向量被共享用来计算因式分解参数。
现有方法费时费力
至于利用辅助信息,目前的技术主流是因子分解机(FM)。FM是一个泛化的模型,一般采用双向特征交互。在实际应用中,有几十个文本特征不足为奇,并且不是所有的交互都对评分预测有效。需要注意的是,因子分解机对所有文本特征变量的两两交互建立模型,交互特征权重计算时所有变量的隐向量被共享。
因为并非所有交互都有效,所以在实际使用时通常通过人工指定交互的特征和特征交互的阶数。也就是说,人工制定配置,指定特征的交互和阶数,然后在给定的数据集上测试效果,必须通过尝试大量的人工配置比较才能获得较优的效果。
但可选配置的数量是特征数的指数量级,并且评估每次配置时需要花费大量时间训练并测试模型,费时又费力。此外,对于不同应用,每次都需要重复这个过程,严重制约了使用FM的效率。
百度的“智能”在哪里
百度大数据实验室提出了一种新型智能因子分解机(GBFM),有效地解决了传统人工特征选择过程中费时费力的难题。智能因子分解机去除了因子在每个被加项共享一个参数的约束,使得模型具有更强的拟合数据能力,并通过控制特征选择过程避免模型的过拟合。
相对于因子分解机,它将因子的选择过程嵌入算法求解过程中。算法每轮迭代,会自动根据当前模型,从所有特征中贪婪选择一个最优的作为因子加入并更新模型。
解构智能因子分解机
在智能因子分解机中,特征因子的加入方式有两种,一种是作为起始因子加项,另一种是作为加项中的一个乘积项,具体方式取决于模型对于交叉项的控制方式。
添加方式:因子添加方式不同,通过控制添加过程即可生成不同的因子分解机。
按照深度优先的方式,优先将加项的阶数添加到指定最高阶,然后生成一个新的加项,直到满足一定事先指定的条件(拟合精度或者最大加项条件)。
按照宽度优先的方式,先生成初始(K=1)的加项,然后生成高一阶(K=2)的加项,直到满足一定事先指定的条件。
按照宽度和深度竞争的方式,每次添加特征尝试深度和宽度方向,比较两个方向添加的效果再决定。
穷举选取最优特征:对于每个特征,通过计算其加入模型后带来的增益来选择,例如增益为训练数据的拟合程度。通常,为了简化计算,可固定已有模型,将特征加入后对其参数求解,获得更新模型。在这种情况下,参数求解往往非常方便,在一些拟合目标下甚至有闭式解。
尽管每次选择需要计算所有特征,但可通过一次扫描所有训练数据来同时估算所有特征的相关统计量,根据这些统计量计算选择最优特征。
可并行实现:智能因子分解机可以很容易地通过多线程和多个集群分布式来并行实现,从而大幅提升速度。由于特征的统计量可以并行计算,这样就能通过多线程分布到一个集群计算机上便于计算。
FM和智能因子分解机
技术对比
智能因子分解机与FM的最大区别在于,前者只考虑其中部分交互特征,而FM则对文本特征间的所有交互特征建模。举例来说,假设现在有三个文本特征:用户、物品、心情。在智能因子分解机中,只考虑(用户,物品)和(用户,心情)交互。如果(物品,心情)交互特征无效,那么在FM中,(物品,心情)对应的隐向量的预估将会不准确,对预测函数来说就是引入噪音。
另一个区别在于,智能因子分解机是逐步地学习隐特征矩阵,不被共享以计算其他因子分解的权重。例如,在第一步中选取(用户,物品),第二步选取(用户,心情),两次用户对应的隐特征矩阵不一样。相较FM它可能失去推广性的优势,可将智能因子分解机当作一个特征选择算法,只对选取的特征建模。GBFM-Opt是GBFM的变体,经过S步后训练程序停止,得到S交互特征并充分优化。
最重要的区别是急剧降低了计算复杂度。传统的FM每选一次特征的复杂度都为O(N),而特征选择次数通常为指数级。智能因子分解机使用贪心特征筛选算法,计算复杂度为O(n · N),N为训练数据大小,n是层数。在每一层中,增益函数可通过扫描训练数据集来计算。按照增益计算方法,最优特征筛选也可通过训练数据集一次运行得到。通常,这里n≪N,在双向因子分解机中,n=2。因此计算成本为O(N)。
实验结果对比
我们将两种模型在两个数据集中展开实验:一个是人造数据集,另一个是真实数据集,来自腾讯微博。
人造数据集:由于只有很小的公共数据集包含多种文本特征,我们创建了一个人造数据集进行比较。数据产生过程为:假设有m个文本特征,从中选取部分两两交互特征,其隐向量服从均值为0方差为0.5的高斯分布,然后按类似FM的预测函数生成评分值,评分值被映射到1~5。
腾讯微博数据集:腾讯微博是中国最大的社交网络之一,该数据集是为2012年KDD Cup而设计的。其中包含了两个月内230万用户的名人推荐记录。系统在特定时间向用户推荐一位名人,用户的反馈为接受或拒绝。此数据集包含丰富文本信息,如用户年龄、性别、物品属性、时间信息等。此外,还能提取到会话信息,例如在此条推荐前的推荐记录数量。将此数据集根据时间分成训练数据和测试数据。测试数据再进一步被分为公开和非公开集合用来独立评估。此数据集非常稀疏,平均每个用户只有两个正向记录(接受推荐)。除此之外,测试数据中近70%的用户在训练数据中没有出现过。
对人造数据集,我们使用两个指标MAE和RMSE来衡量不同方法的预测质量,值越小说明效果越好。对于腾讯微博数据, MAP@k被用作指标,值越大说明效果越好。
在实验中,我们比较了FM、PMF(只用“用户,物品”矩阵做出推荐)和百度提出的GBFM和GBFM-Opt四种方法。
根据实验结果,可得出以下结论。
运用附加信息的重要性。FM、GBFM和GBFM-Opt的表现大大优于PMF并不奇怪。它揭示了在文本感知推荐中运用附加信息的重要性。在腾讯微博数据中更为重要,因为测试数据集中的大部分用户在训练数据中并不存在,这意味着PMF根本无法处理它们。
GBFM能学习优质的交互特征,GBFM和GBFM-Opt模型均表现良好。在人造数据集中,就RMSE这个指标来说,FM相比PMF减法降低了0.066,GBFM相比FM进一步降低了0.026。由于人造数据是从部分双向交互特征中产生的,这些结果表现了GBFM能学习优质的交互特征。
选取优质交互特征更好。对于腾讯微博的数据,就 MAP@3来说,相较PMF,FM提高了2.25%。GBFM还能进一步提高0.4%。此结果证实了选取优质交互特征比考虑所有双向交互特征更好。
验证被选取的交互特征对推荐是否有效。GBFM-Opt的表现可用来证明被选取的交互特征对推荐是否有效。在两个数据集中,都比GBFM表现更好。相较GBFM-Opt,GBFM优化不充分,这可能是GBFM-Opt表现更优的原因。腾讯微博数据更稀疏,特征学习更重要,这也解释了GBFM-Opt为什么只比GBFM稍有改善。
总结
智能因子分解机提出了一种高效的交互特征筛选算法,相较于因子分解机算法,它将特征选择算法与因子分解机融合在统一的框架中, 可自动学习特征,替代人工特征工程,极大提升了因子分解机的应用效率。在人造数据和真实数据上的实验结果都证明,此方法的有效性优于FM和现阶段其他方法。
在今后的研究中,我们还有以下几个有趣的方向值得讨论:
- 在更多的数据集上尝试智能分解机算法;
- 如何改进特征学习算法;
- 如何有效处理除了离散特征外的其他特征。
夏粉:百度科学家,就职于百度大数据实验室(bdl.baidu.com),十年以上机器学习研究经验,曾在机器学习顶级会议ICML、NIPS 等发表多篇论文。