导读: 电商场景的搜索排序算法根据用户搜索请求,经过召回、粗排、精排、重排与混排等模块将最终的结果呈现给用户,算法的优化目标是提升用户转化。传统的有监督训练方式,每一步迭代的过程中优化当前排序结果的即时反馈收益。但是,实际上用户和搜索系统之间不断交互,用户状态也在不断变化,每一次交互后排序结果和用户反馈也会对后续排序产生影响。因此,我们通过强化学习来建模用户和搜索系统之间的交互过程,优化长期累积收益。目前这个工作已经在京东全量上线。
今天的介绍会围绕下面五点展开:
- 搜索排序场景及算法概述
- 强化学习在搜索排序中的建模过程
- 基于RNN用户状态转移建模
- 基于DDPG的长期价值建模
- 规划与展望
--
01 搜索排序场景及算法概述
首先和大家分享下搜索排序的典型场景以及常用的算法。
搜索排序场景下的主要优化目标是提升用户转化率,常用的算法分别从用户建模角度(DIN、DIEN、Memory Network等)和多目标建模角度(ESMM、MOE、MMOE等)进行设计。这些模型都采用了有监督的训练方式,在每一步迭代的过程中都是优化当前排序结果的即时奖励。而实际上用户和搜索系统之间存在交互,用户状态是不断改变的,这也使得每一步排序结果和反馈跟后续排序有相关性。为了提升搜索精排的效率,我们使用强化学习来建模用户和搜索系统之间的交互过程,并且考虑对后续排序结果影响带来的长期价值。
--
02 强化学习在搜索排序中的建模过程
我们的工作经过整理后发表在2021CIKM上,接下来介绍的算法也主要与这篇论文相关。
首先介绍强化学习在搜索排序中的建模。强化学习的优化目标是长期价值的期望最大化。如上图公式中所示,长期价值期望Q是在一个状态下,执行一个动作后,当前时刻的即时奖励和后续时刻带来的累积折损奖励之和。它和有监督学习的最主要区别在于后者通常优化当前决策带来的即时收益,而强化学习是去优化决策的长期价值。
在搜索场景下强化学习的建模过程如上图所示,当用户(即强化学习中的environment)发起一次搜索请求时,我们的排序引擎会基于当前用户的状态,选取一个排序动作(排序动作即为对候选商品进行打分)并将排序结果呈现给用户。用户在看到排序结果后会做出一系列反馈,如下单或者点击。此时,用户的状态会发生变化,排序模块会收到用户的反馈(即奖励)。排序模块收到奖励之后会对策略进行迭代优化,进而在收到下一次用户请求时会基于新的用户状态和排序策略进行下一步动作的执行。
基于上述完整算法流程,我们需要对用户状态进行建模,并且对排序策略建模优化长期价值。强化学习的建模思路主要依照其四要素:状态、动作、奖励的设计以及算法的选择。在业界对于强化学习在搜索排序的应用也有一些研究,我们主要参考了阿里巴巴的一篇论文以及2019年YouTube强化学习在推荐中的应用的论文。但是,经过一些实验后,我们最终的方案和业界还是存在比较大的差异。
首先,阿里的那篇文章是建模用户在单次搜索中多次翻页情况下的序列决策过程,即当用户在一次请求后,模型会考虑当前页的及时反馈以及后续翻页后反馈带来的影响&#