业界动态

百度推出新型“智能”推荐技术

日期:2014-11-28

|  来源:【字号:

  本文基于在RecSys 2014上百度大数据实验室发布的题为《智能因子分解机》的论文,深入解析了一种新型的智能因子分解机。它将因子自动学习算法纳入因子模型,以智能学习特征,替代人工特征工程,极大提升了因子分解机的应用效率。经过真实数据和人造数据验证,其有效性和效率皆优于现阶段其他方法,是百度在推荐技术上的又一突破。

推荐系统技术综述

  推荐技术在过去十几年中取得了巨大发展,当前业界的主流技术有两种:传统文本不感知方法和文本感知方法。

  传统的文本不感知方法,是在用户物品评分矩阵基础上建立模型,例如只考虑用户与物品交互。其中,矩阵因子分解方法因其在处理相对较大数据集中的良好表现和有效性大受欢迎。这些方法利用低秩矩阵分解逼近用户物品评分矩阵,并用它们来做更进一步的预测。

  而在真实情境中,许多辅助信息是可获取的,并被证明在大数据集中特别有效。举例来说,对于微博中的名人推荐问题,用户与名人元数据(包括年龄、性别等)、名人的受欢迎程度、最近的用户表现,都能帮助系统做出更好的推荐。我们将辅助信息特征称为文本感知推荐。文本感知因子分解机是目前最成功的文本感知推荐模型之一。因子分解机与所有特征两两互动,这样,一个特定的特征隐向量被共享用来计算因式分解参数。

现有方法费时费力

  至于利用辅助信息,目前的技术主流是因子分解机(FM)。FM是一个泛化的模型,一般采用双向特征交互。在实际应用中,有几十个文本特征不足为奇,并且不是所有的交互都对评分预测有效。需要注意的是,因子分解机对所有文本特征变量的两两交互建立模型,交互特征权重计算时所有变量的隐向量被共享。

  因为并非所有交互都有效,所以在实际使用时通常通过人工指定交互的特征和特征交互的阶数。也就是说,人工制定配置,指定特征的交互和阶数,然后在给定的数据集上测试效果,必须通过尝试大量的人工配置比较才能获得较优的效果。

  但可选配置的数量是特征数的指数量级,并且评估每次配置时需要花费大量时间训练并测试模型,费时又费力。此外,对于不同应用,每次都需要重复这个过程,严重制约了使用FM的效率。

百度的“智能”在哪里

  百度大数据实验室提出了一种新型智能因子分解机(GBFM),有效地解决了传统人工特征选择过程中费时费力的难题。智能因子分解机去除了因子在每个被加项共享一个参数的约束,使得模型具有更强的拟合数据能力,并通过控制特征选择过程避免模型的过拟合。

  相对于因子分解机,它将因子的选择过程嵌入算法求解过程中。算法每轮迭代,会自动根据当前模型,从所有特征中贪婪选择一个最优的作为因子加入并更新模型。

解构智能因子分解机

  在智能因子分解机中,特征因子的加入方式有两种,一种是作为起始因子加项,另一种是作为加项中的一个乘积项,具体方式取决于模型对于交叉项的控制方式。

  添加方式:因子添加方式不同,通过控制添加过程即可生成不同的因子分解机。

  按照深度优先的方式,优先将加项的阶数添加到指定最高阶,然后生成一个新的加项,直到满足一定事先指定的条件(拟合精度或者最大加项条件)。

  按照宽度优先的方式,先生成初始(K=1)的加项,然后生成高一阶(K=2)的加项,直到满足一定事先指定的条件。

  按照宽度和深度竞争的方式,每次添加特征尝试深度和宽度方向,比较两个方向添加的效果再决定。

  穷举选取最优特征:对于每个特征,通过计算其加入模型后带来的增益来选择,例如增益为训练数据的拟合程度。通常,为了简化计算,可固定已有模型,将特征加入后对其参数求解,获得更新模型。在这种情况下,参数求解往往非常方便,在一些拟合目标下甚至有闭式解。

  尽管每次选择需要计算所有特征,但可通过一次扫描所有训练数据来同时估算所有特征的相关统计量,根据这些统计量计算选择最优特征。

  可并行实现:智能因子分解机可以很容易地通过多线程和多个集群分布式来并行实现,从而大幅提升速度。由于特征的统计量可以并行计算,这样就能通过多线程分布到一个集群计算机上便于计算。

附件: