了解携程个性化推荐算法原理,让旅行更实惠( 二 )


  • Real-timeIntention
我们的实时意图系统可以根据用户最近浏览下单等行为,基于马尔科夫预测模型推荐或者交叉推荐出的产品 。这些候选产品可以比较精准的反应出用户最近最新的意愿 。
  • BusinessRules
业务规则是认为设定的规则,用来限定推荐的内容范围等 。例如机票推酒店的场景,需要通过业务规则来限定推荐的产品只能是酒店,而不会推荐其他旅游产品 。
  • Context-Based
基于Context的推荐场景和Context本身密切相关,例如与季候相关的旅游产品(冬季滑雪、元旦跨年等) 。
了解携程个性化推荐算法原理,让旅行更实惠

文章插图
 
  • LBS
基于用户的当前位置信息,筛选出的周边酒店,景点,美食等等,比较适用于行中场景的推荐 。地理位置距离通过GeoHash算法计算,将区域递归划分为规则矩形,并对每个矩形进行编码,筛选GeoHash编码相似的POI,然后进行实际距离计算 。
  • CollaborativeFiltering
协同过滤算法是推荐系统广泛使用的一种解决实际问题的方法 。携程个性化团队在深度学习与推荐系统结合的领域进行了相关的研究与应用,通过改进现有的深度模型,提出了一种深度模型aSDAE 。该混合协同过滤模型是SDAE的一种变体,通过将附加的side information集成到输入中,可以改善数据稀疏和冷启动问题,详情可以参见文献[4] 。
  • SequentialModel
现有的矩阵分解(Matrix Factorization)方法基于历史的user-item交互学习用户的长期兴趣偏好,Markov chain通过学习item间的transition graph对用户的序列行为建模[3] 。事实上,在旅游场景下,加入用户行为的先后顺序,从而能更好的反映用户的决策过程 。我们结合Matrix Factorization和Markov chain为每个用户构建个性化转移矩阵,从而基于用户的历史行为来预测用户的下一行为 。在旅游场景中,可以用来预测用户下一个目的地或者POI 。
除此之外,也可以使用RNN来进行序列推荐,比如基于Session的推荐[5],使用考虑时间间隔信息的LSTM来做下一个item的推荐等[6] 。
此外,一些常见的深度模型(DNN, AE,CNN等)[7][8][9][10]都可以应用于推荐系统中,但是针对不同领域的推荐,需要更多的高效的模型 。随着深度学习技术的发展,相信深度学习将会成为推荐系统领域中一项非常重要的技术手段 。以上几种类型的召回方法各有优势,在实践中,针对不同场景,结合使用多种方法,提供给用户最佳的推荐,以此提升用户体验,增加用户粘性 。
三、排序以工业界在广告、搜索、推荐等领域的实践经验,在数据给定的条件下,经历了从简单线性模型+大量人工特征工程到复杂非线性模型+自动特征学习的演变 。在构建携程个性化推荐系统的实践过程中,对于推荐排序这个特定问题有一些自己的思考和总结,并将从特征和模型这两方面展开 。
  • Model
个性化排序模型旨在利用每个用户的历史行为数据集建立其各自的排序模型,本质上可以看作多任务学习(multi-task learning) 。事实上,通过加入conjunctionfeatures,也就是加入user和product的交叉特征,可以将特定的multi-task任务简化为单任务模型 。
梳理工业界应用的排序模型,大致经历三个阶段,如下图所示:
了解携程个性化推荐算法原理,让旅行更实惠

文章插图
 
本文并不准备详细介绍上图中的算法细节,感兴趣的读者可以查看相关论文,以下几点是我们的一些实践经验和体会 。
  • 在实践中选用以LR为主的模型,通过对数据离散化、分布转换等非线性处理后使用LR 。一般的,采用L1正则保证模型权重的稀疏性 。在优化算法的选择上,使用OWL-QN做batch learning,FTRL做online learning 。
  • 实践中利用因子分解机(FactorizationMachine)得到的特征交叉系数来选择喂入LR模型的交叉特征组合,从而避免了繁杂的特征选择工作 。一般的受限于模型复杂度只进行二阶展开 。对于三阶以上的特征组合可以利用基于mutual information等方法处理 。已有针对高阶因子分解机(HighOrder FM)的研究,参见文献[24] 。
  • 对于Wide and Deep Learning,将wide部分替换gbdt组合特征,在实验中取得了较好的效果,并将在近期上线 。后续的工作将针对如何进行wide部分和deep部分的alternatingtraining展开 。
  • Feature Engineering
事实上,虽然深度学习等方法一定程度上减少了繁杂的特征工程工作,但我们认为精心设计的特征工程仍旧是不可或缺的, 其中如何进行特征组合是我们在实践中着重考虑的问题 。一般的,可以分为显式特征组合和半显式特征组合 。


推荐阅读