E&E算法在汽车之家推荐系统中的应用

总篇99篇 2020年 第23篇

1.简介

推荐系统(Recommender System)是帮助用户发现内容,克服信息过载的重要工具,它主要通过分析用户的行为,对用户进行兴趣建模,从而预测用户的兴趣并给用户提供推荐服务。

当我们提到推荐引擎的时候,也总能想到搜索引擎,两者都是为了解决信息过载而提出的不同的技术。搜索引擎更倾向于人们有明确的目的,可以将人们对于信息的寻求转换为精确的关键词,然后通过搜索引擎返回给用户一系列item列表,用户可以对这些返回结果进行反馈,但是这种用户有主动意识的行为很容易产生马太效应问题,即会造成越流行的东西随着搜索过程的迭代会越流行,使得那些越不流行的东西石沉大海。而推荐引擎更倾向于人们没有明确的目的,或者说他们的目的是模糊的,通俗来讲,用户连自己都不知道自己想要什么,这正是推荐引擎的用武之地。

推荐系统通过搜集用户的历史行为、用户的兴趣偏好以及用户的人口统计学等特征,运用推荐算法来生成用户可能感兴趣的item列表,长尾理论(人们只关注曝光率高的item,而忽略曝光率低的item)可以很好的解释推荐系统存在的必要性,且实验表明位于长尾的曝光率低的item也能产生一定的收益,推荐系统正好可以给所有item提供曝光的机会,以此来挖掘长尾item的潜在收益。如果说搜索引擎体现着马太效应的话,那么长尾理论则阐述了推荐引擎所具有的价值。

个性化推荐中,我们通常需要同时运用多种策略。如果仅仅通过某种精细化的推荐策略(如:标签推荐,协同过滤等)进行推荐的话,用户往往会在初期表现得很感兴趣,而随着用户浏览次数增多,用户兴趣会逐渐削弱,毕竟用户的兴趣倾向往往是多元的,特别是在资讯推荐领域。因此,我们通常是组合多种策略进行内容获取,这个过程一般称作召回。本文主要介绍一些常用E&E算法在推荐召回中的应用。

2.推荐系统的E&E问题

推荐场景经常会面临以下几种问题:

  • 由于用户的兴趣多样性,那么推荐系统初次新用户时,如何快速地知道该用户的兴趣倾向性?

  • 当推荐系统面对许多的新的item时,该给用户展示哪个item,才能获得最高的收益呢?

  • 如果只推荐已知用户感兴趣的item,缺少多样性,收益将会逐步降低。因此,需要补充一定的新颖性。

E&E(Exploitation& Exploration)算法,可以很好地解决此类问题。其中,Exploitation—— 利用 已知的比较确定的用户的兴趣,推荐与之相关的内容,Exploration——随机选择策略从而深入 挖掘 用户喜好的内容。

3.常用E&E算法

3.1 ε-Greedy

ε-greedy是一种最简单的随机方法,原理很简单:选一个(0,1)之间较小的数ε(比如:0.05),每次决策时,以概率ε去Exploration,1-ε的概率来Exploitation。

3.2 Upper-Confidence-Bound(UCB)算法

UCB算法是一种完全不考虑随机性的算法,它除了要考虑收益回报外,还要考虑这个收益回报的置信度有多高。考虑置信后定义的收益回报为:


其中 
为在s时刻观察到的收益; 
为当当前t时刻臂i被选中的次数。用一句话来描述这个新的收益就是,臂被选中的总次数中,有收益的占比。或者也可以说是收益的一个平均值。

然后,给每个臂赋予一个最终的取值:

其中t为摇臂次数; 
为i臂到t次时摇了多少次。公式的后一项衡量的就是置信度,也就是我们对于第一项的回报的估计的有多确信。

3.3 汤普森采样

常用的汤普森采样主要考虑的是Beta-Bernoulli Bandit,假设有K个臂(arm),对应的参数 
的先验分布是Beta分布,且每个arm(k)的reward是以 

为参数的Bernoulli分布,此时容易知道 
的后验分布仍然是Beta分布。在t=1的时候,算法会选择一个action( 
),然后会观察到reward  
,这是一个从Bernoulli分布抽取出来的sample,即 

,然后t=2的时候也是类似的,算法根据历史数据选择action( 
),然后观察到跟 
、 
所决定的reward  
,以此类推,一直持续到t=T的时候算法停止。我们假设一开始对 
的prior belief符合Beta分布(参数为 
),具体来说对每个arm(k)的reward对应的先验分布为: 
,根据Bayes rule后验分布也是Beta分布,对于步骤t我们可以更新 
的后验分布如下:

也就是说,如果我们选择了arm(k),那么如果得到reward(1)就将相应的 
加1( 
不变),不然reward(0)就将相应的 
加1( 
不变)。这种简单的更新规则也让Beta-Bernoulli bandit也成为推荐召回中常用的经典方法。

4.汽车之家推荐系统E&E算法的应用

4.1 汤普森采样应用

4.1.1兴趣点退场

兴趣点退场的大体思想为:在召回过程中,遍历每一个兴趣点,获取该路召回兴趣点对应的浏览点击序列,以80%的概率退场3次未点击的召回兴趣点;以95%的概率退场5次未点击的兴趣点;以99%的概率退场8次未点击的兴趣点。如图1所示:

图1 兴趣点隐式负反馈退场机制

该方法的优点主要有:

1、设计方案简单,有利于快速实现;

2、对用户点击作用不大的兴趣点能启到一定的减少召回的作用。

不足之处有:

1、退场机制不够精致;

2、实际应用中兴趣点的点击和浏览难以追踪和记录。

4.1.2兴趣点选择

针对兴趣点退场过程中的主要缺点,开发了基于汤普森采样的兴趣点选择。实现的原理及过程主要为:以曝光item的标签(包括车系,nlp,品牌…)作为兴趣点,离线实时记录某用户对该标签的浏览、点击次数。以点击次数作为汤普森采样的第一个参数win,以浏览次数作为汤普森采样的第二个参数Loss,在召回过程中对每个兴趣点进行汤普森采样得到概率值P,根据P的大小排序,截取前n个兴趣点进行召回。

该方法的优点主要有:

1、退场过程更加精细,应用汤普森采样能够得到相对准确且带有探索机制的退场概率;

2、捕捉的主要是用户当天的点击浏览次数,对于浏览点击行为越丰富的活跃用户,退场效果越好。

不足之处:

不论是兴趣点退场还是兴趣点选择都是退场的兴趣点即召回的索引,由于召回路数很多,在某一退场机制作用下无法召回的item在其他路召回中还有被召回的可能,这种情况下兴趣点退场会大打折扣。

4.2 UCB自适应应用

4.2.1召回数量自适应

在采取多种策略召回item的过程中,由于后续排序模型计算资源及响应时间的限制,必须对各路召回的召回总数加以限制,因此产生了召回数量分配问题。为解决手动调参周期长、耗费精力大、参数较多的条件下难以寻到最优解等问题,提出了针对推荐系统召回策略的一种设计简单的自动化快速寻优方案。

实时计算近一分钟,实验及对照实验下内容的曝光次数(个数)pv及用户的点击次数(个数)clk。用实验组的(clk/pv)-对照组的(clk/pv),作为本次召回数量配置参数下的reward。通过如下公式(UCB算法)更新收益函数Q(a),并选择召回数量,作为下一分钟实验召回参数写入redis。

其中a为redis中设置的每路召回的召回个数, a , g 为常数,N为实验配置修改的总次数, 
为召回个数配置为a的实验次数。算法方案流程如图2所示:

图2 召回个数自适应方案流程图

该方案的优点主要为:

1.通过把召回数量参数写入redis,实现了推荐系统内部召回参数设置和外部推荐环境的交互。

2.召回数量寻优过程放在推荐系统的外部,组成独立的参数寻优系统,简化了推荐系统代码,保障了推荐系统响应速度。

3.通过采集分钟级的实验ctr作为实验参数的reward,而不是实时采集每次实验参数下用户点击不点击作为reward,降低了参数优化系统对数据实时性的要求。

4.实际应用过程中,用实验组ctr减去对照组ctr作为reward,消除了时间因素对ctr的影响,使得算法效果更好、收敛的更快。

5.总结和未来计划

通过汤普森采样和UCB自适应的方式在推荐召回系统中进行兴趣点退场和召回数量自适应选择方面的应用使我们对E&E在推荐场景中的落地有了初步的认识。兴趣点退场避免了一些无效兴趣点的召回,召回数量的只适应选择充分考虑了用户兴趣,尽可能多的召回用户真正感兴趣的内容。

E&E算法本身是一种基础强化学习的体现,在后续工作中,我们将会探索强化学习的推荐召回和排序中的应用,引入D Q-learning学习框架,通过神经网络的方式对某一时刻的状态(s),采取某种行动(a)来拟合最优的Q值,从而获得最大的收益。

方矩

2018年6月加入汽车之家,目前主要从事推荐排序算法相关工作。

陈积飞

2018年加入汽车之家智能数据中心人工智能团队,从事推荐系统算法研发相关工作。