基于监督学习时代的搜索和推荐,缺少有效的探索能力,系统倾向于给消费者推送曾经发生过行为的商品或店铺;这类问题。真正的智能化搜索和推荐,需要作为投放引擎的 agent(笔者注:智能体)有决策能力,这个决策不是基于单一节点的直接收益来确定,而是当作一个人机交互的过程,消费者与平台的互动看成是一个马尔可夫决策过程,运用强化学习框架,建立一个消费者与系统互动的回路系统,而系统的决策是建立在最大化过程收益,来达到一个系统与用户的动态平衡。 3. 在 2016 年双 11,搜索技术和算法团队通力合作,首次大规模实现在线深度学习和强化学习等前沿技术,经过不断的尝试与改进,找到适合在搜索场景下可有效大规模应用的方案,对搜索排序在策略选择上做出了重大的升级,并取得了非常显著的成果。在搜索排序的 gmv 分桶总共提升高到 20+%。 机器之心:能否详细讲解一下,在 Reward 函数中加入先验知识势函数的原因和作用,以及和不加入势函数的比较结果? 徐盈辉:首先需要理解奖赏函数 R 的本质是什么? 奖赏函数的本质是一个状态和动作之间的数值关系。奖赏塑性函数的引入,其本质是在原有的奖赏函数中引入一些先验知识,加速强化学习算法的收敛,势函数相当于定义了学习任务的 subgoal(笔者注:子目标),引导学习算法完成 subgoal,进而完成整个学习任务的 goal。加入先验知识主要是为了加速学习过程。比方说,如果用强化学习求解迷宫问题,可以将每个状态所在位置与出口位置的 Manhattan Distance(笔者注:曼哈顿距离,几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和)作为该状态上的势函数,引导 agent 往更靠近出口的方向走。 机器之心:训练 DQN 的一个问题是收敛较慢甚至不收敛,在训练强化学习模型时,阿里是如何克服这个难点的? 徐盈辉:如何把深度强化学习在业务场景中调通并达到要求,在某种程度上讲是个手艺活。相比于监督学习,需要分析的变量相对复杂,要考虑状态变量、策略空间、奖赏函数等多个环节。强化学习是一个机器学习领域的重要分支,随着 DeepMind 的 AlphaGo 的一炮打响,业界兴起了强化学习研究热潮,任何问题都希望用强化学习这把个利刃砍一刀,不管问题是不是适用,自己实现的强化学习逻辑是不是正确,强化学习在整个算法逻辑层中的作用是不是显著,学习到的策略是不是到最优,有没有收敛,对于这一系列核心的问题鲜有关注。只关注最终的一个效果,实际上是有违严谨的科学精神的。在 2016 年 NIPS 大会上,j2直播,John Schulman 给出一系列技巧,首先通过问题简化来验证强化学习实现逻辑的正确性,将训练过程中的关键变量可视化出来加以观察,包括状态的分布、状态转移分布、值函数变化。 另外强化学习训练过程中超参数的设置也是至关重要的,比方说 Actor-Critic 方法,如何设置合理 actor 网络和 critic 网络的学习率,一般原则是 actor 网络学习率相比于 critic 网络的学习率来的小。奖赏函数的初始化对最后的收敛速度也会有不小的影响。状态空间的归约、Reward 函数的 scale 化、策略迭代过程中,也需要有效控制策略漂移问题等等。另外就是,合理的利用基于 Replay Buffer 的 Sampling 策略和迭代训练的方式。Sampling 策略的主要目的是打破由于样本的关联性导致的策略寻优方向陷入 Local Minima(笔者注:局部极小)。另外通过几个改进的 DQN 算法,比方说,DDQN 方法通过引入两个 Q-network,一个用于选择动作,一个用于评估动作,交替执行,解决 upward-bias(笔者注:向上偏误)问题,这样犯错的概率就能大幅下降。 机器之心:用户的哪些行为与数据会被用于模型的训练?这些行为是如何被抽象成训练集的? 徐盈辉:用户在整个进入淘宝平台后的主动行为,输入、Query、点击、收藏、加购、购买、评论等都会作为基本的 feedback signal(笔者注:反馈信号),通过分析这些不同类型的 feedback 与平台长期优化目标的关系来刻画 Reward 函数(笔者注:奖励函数),而行为对象的 attributes(用户最近点击的商品所携带的特征(品牌、店铺、类目、价格等)和用户长期的偏好特征)作为状态会成为表征强化学习中状态的元特征,通过深度学习实现状态空间的参数化表示,对于智能体策略空间则通过日志埋点系统回流至实时数据分析和训练引擎,训练数据组织则按照马尔科夫决策过程的数据结构来组织,对于 off policy(笔者注:离策略)的强化学习模式,算法模块通过将数据组织成【s,a,r,s】】(当前状态,策略,奖赏信号,下一个状态)四元组形式,即可作为强化学习的训练数据,输入给训练模块;对于 on policy(笔者注:在策略),比方说 SASAR 的学习模式,算法模块将数据组织成【s,a,r,s】,a】】(当前状态,策略,奖赏信号,下一个状态,下一个策略)五元组形式,输入 DQN 训练模块。 机器之心:阿里用于训练强化学习系统的硬件资源、训练时间等情况是怎么样的? (责任编辑:本港台直播) |