admin管理员组

文章数量:1547451

作者简介

 

Yorkey,携程高级算法专家,主要从事大规模分布式推荐系统设计和算法研发工作。

一、背景


当用户在线上浏览酒店时,作为旅行平台,如何挑选更合适的酒店推荐给用户,降低其选择的费力度,是需要考虑的一个问题。在携程APP中,一般会触发多种场景。在Figure 1中,我们列举了几种典型的场景:欢迎度排序,智能排序和搜索补偿推荐。

Figure1:用户触发的场景

 

欢迎度排序:在异地场景下,当用户没有明确表达自己需求的情况下,默认按照欢迎度排序展示酒店;

 

智能排序:在同城或者当用户在浏览上述排序结果的过程中,发现自己的兴趣并没有得到满足的时候,往往会添加筛选条件。比如添加地标选项,从而获得该地标附近的相关酒店。相比欢迎度排序,用户表达了更多的个性化需求。

 

搜索补偿推荐排序:如果用户在当前搜索的展示结果中,还是没有找到满足自己需要的酒店,就会不断往下翻页查看更多的搜索结果。而当满足搜索限制条件的酒店数目不足时,会触底。这个时候就会触发搜索补偿推荐。前面两个场景都没有满足用户需求,所以在搜索补偿场景中,我们需要深入挖掘用户历史行为,提供更加个性化的推荐内容。

 

本文将主要介绍我们在补偿推荐场景中所做的算法优化工作。包含模型迭代、模型迭代过程中遇到的技术需求以及针对技术需求所做的一些基建等。

 

二、推荐模型的迭代


在酒店推荐的场景中,我们需要把满足用户需求的产品优先曝光给用户,减少其使用产品的费力度。我们以用户在酒店的TOP点击(编者注:可以简单理解为用户点击排在TOP位置酒店的概率,TOP点击命中率越高,用户体验越好)和转化命中率(CR)作为费力度指标;CR优化问题被建模成二分类问题,离线采取AUC和NDCG作为模型效果评估标准。

分类问题的本质就是要找到一条决策边界函数f(x),来把正样本(比如成单)和负样本(比如没有成单)数据分开。这里,x就是模型特征,好的特征能更好地表征正负样本的差异,让函数学习事半功倍;学习函数f(x)的过程就是建模过程。在本节中,我们分别介绍下我们在特征和建模方面所尝试的工作。

 

2.1 特征

推荐特征使用的特征可以分为:用户侧特征、物品侧特征以及用户和物品的交互特征。从特征的数值特性上,又可以分成:连续值特征和离散值特征。算法刚开始接入的时候,我们的模型只有连续值特征。后经历了从完全连续值特征,到离散特征比重越来越重的过程。

连续值特征既有静态的(比如用户的性别,酒店价格等),也有基于用户行为的动态的(比如用户点击某个酒店的次数)。连续值特征的优点是具备良好的泛化能力。一个用户对一个商圈的偏好可以泛化到另外一个对这个商圈有相同统计特性的用户身上。连续值特征的缺点是缺乏记忆能力导致区分度不高。比如:在同一个商圈酒店列表中,一个用户点击了(A,B,C,D),而另外一个用户点击了(W,X,Y,Z)。虽然两个用户的行为序列不同,但是统计值特征忘记了用户具体点击了哪些酒店,认为两个用户都是点击了4家酒店。

离散值特征是细粒度的特征:设备ID,用户ID,用户点击的item ID都可以做特征。这样一来不同的人,有不同的行为就可以在特征上有很好的区分度,因此离散值特征是模型可以把千人千面做得更进一步的基础。

离散特征的优点就是记忆力强区分度高。我们还可以让离散特征通过特征组合的方式,挖掘用户对于酒店更深层次的兴趣偏好:比如点击item A的人也喜欢item B,我们可以直接基于(A,B)生成一个组合离散特征,来学习A

本文标签: 干货携程模型酒店