您的位置:首页 > 其它

【双11背后的技术】基于深度强化学习与自适应在线学习的搜索和推荐算法研究

2017-02-03 14:23 841 查看
1. 搜索算法研究与实践
1.1 背景
淘宝的搜索引擎涉及对上亿商品的毫秒级处理响应,而淘宝的用户不仅数量巨大,其行为特点以及对商品的偏好也具有丰富性和多样性。因此,要让搜索引擎对不同特点的用户作出针对性的排序,并以此带动搜索引导的成交提升,是一个极具挑战性的问题。传统的Learning to Rank(LTR)方法主要是在商品维度进行学习,根据商品的点击、成交数据构造学习样本,回归出排序权重。LTR学习的是当前线上已经展示出来商品排序的现象,对已出现的结果集合最好的排序效果,受到了本身排序策略的影响,我们有大量的样本是不可见的,所以LTR模型从某种意义上说是解释了过去现象,并不一定真正全局最优的。针对这个问题,有两类的方法,其中一类尝试在离线训练中解决online和offline不一致的问题,衍生出Counterfactural
Machine Learning的领域。另外一类就是在线trial-and-error进行学习,如Bandit Learning和Reinforcement Learning。
在之前我们尝试了用多臂老虎机模型(Multi-Armed Bandit,MAB)来根据用户反馈学习排序策略,结合exploration与exploitation,收到了较好的效果。

后来更进一步,在原来的基础上引入状态的概念,用马尔可夫决策过程对商品搜索排序问题进行建模,并尝试用深度强化学习的方法来对搜索引擎的排序策略进行实时调控。
实际上,如果把搜索引擎看作智能体(Agent)、把用户看做环境(Environment),则商品的搜索问题可以被视为典型的顺序决策问题。Agent每一次排序策略的选择可以看成一次试错(Trial-and-Error),把用户的反馈,点击成交等作为从环境获得的奖赏。在这种反复不断地试错过程中,Agent将逐步学习到最优的排序策略,最大化累计奖赏。而这种在与环境交互的过程中进行试错的学习,正是强化学习(Reinforcement Learning,RL)的根本思想。
本文接下来的内容将对具体的方案进行详细介绍。
 
1.2 问题建模
马尔可夫决策过程(Markov Decision Process,MDP)是强化学习的最基本理论模型。一般地,MDP可以由一个四元组<S, A,R, T>表示:(1)S为状态空间(State Space);(2)A为动作空间(Action Space);(3)为奖赏函数;(4)为环境状态转移函数(State Transition Function)。
我们的最终目标是用强化学习进行商品搜索排序策略的学习,在实现的过程中,我们一步一步完成了从简单问题到复杂问题的过渡,包括:
基于值表(Tabular)强化学习方法的商品价格档T变换控制(离散状态、离散动作问题);
基于值表(Tabular)强化学习方法的商品展示比例控制(离散状态、离散动作问题);
基于强化学习值函数估计(Value Function Approximation)的商品排序策略调控(连续状态、离散动作问题);
基于强化学习策略估计(Policy Approximation)的商品排序策略调控(连续状态、连续动作问题)。
 
1.2.1 状态定义
假设用户在搜索的过程中倾向于点击他感兴趣的商品,并且较少点击他不感兴趣的商品。基于这个假设,我们将用户的历史点击行为作为抽取状态特征的数据来源。具体地,在每一个PV请求发生时,我们把用户在最近一段时间内点击的商品的特征作为当前Agent感知到的状态。当然,在不同的问题中,状态的表示方法会有所不同。例如,在值表强化学习方法中,状态为可枚举的离散变量;在值函数估计和策略估计方法中,状态则表示为特征向量。

 
1.2.2 奖赏函数定义
Agent给出商品排序,用户根据排序的结果进行的浏览、商品点击或购买等行为都可以看成对Agent的排序策略的直接反馈。在第四章中,我们将利用奖赏塑形(Reward Shaping)方法对奖赏函数的表达进行丰富,提高不同排序策略在反馈信号上的区分度。
 
1.3 算法设计
由于篇幅有限,我们仅对强化学习在搜索中的使用给出2个实例。
 
(1)Tabular方法
我们在排序中要引入价格的因素来影响最终展示的价格,若以GMV为目标,则简单可以表示为cvr*price,同时我们又想控制价格的作用程度,所以目标稍作修改:,加入一个变量t来控制价格的影响。这个t值的范围很有限,可以用MAB或CMAB来找到最优解。
我们用强化学习的视角来对这个问题进行抽象,把用户前2次点击的商品价格档位(0~7,从低到高)作为状态。这个状态表示的是用户之前点击商品的价格偏好,如果两次都点击1档商品,说明用户偏好低价商品,很有可能接下来用户只对低价商品感兴趣,如果这个状态转移分布是稳定的(stationary),那么一个统计模型可以就可以描述这种规律。而实际上,用户的行为是受我们排序模型的影响的,用户点击1档商品也可能是因为当前的排序策略只给用户展示了1档商品,并不一定是用户的本质需求。在接下来用户的搜索过程中,我们可以有的选择1是只出1档商品让用户的需求快速收敛,选择2是投放一些附近档位的商品供用户选择,如果用户选择了其他档位的商品,进行了状态的转移,就可能找到一个更好的路径,最终的收益和我们所有的过程中的投放策略都相关。从每个时间点上看,策略可能不是最优的,但全局上可能是最优的。
具体地,当用户进行了搜索后,根据用户的状态s,和Q表(下图)进行一个epsilon-greedy的投放,选择一个动作a(上文中的价格指数t),执行这个a的排序结果展示给用户,并记录下这次的状态s与动作a,以及用户对这次搜索结果的反馈r,从用户的点击与否的反馈,再对Q表进行更新。
 

详情点击:http://click.aliyun.com/m/9834/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐