主搜索与店铺内搜索联合优化的初步探索与尝试
背景与简介
在淘宝平台上有非常多的子场景,例如搜索、推荐、广告。每个子场景又有非常多细分,例如搜索包括默认排序、店铺内搜索、店铺搜索等;推荐内有猜你喜欢、今日推荐、每日好店等。基于数据驱动的机器学习和优化技术目前大量的应用于这些场景中,并已经取得了不错的效果——在单场景内的A/B测试上,点击率、转化率、成交额、单价都能看到显著提升。 然而,目前各个场景之间是完全独立优化的,这样会带来几点比较严重的问题:
a. 用户在淘宝上购物会经常在多个场景之间切换,例如:从主搜索到猜你喜欢,从猜你喜欢到店铺内。不同场景的商品排序仅考虑自身,会导致用户的购物体验是不连贯或者雷同的。例如:从冰箱的详情页进入店铺,却展示手机;各个场景都展现趋同,都包含太多的U2I(点击或成交过的商品)。
b. 多场景之间是博弈(竞争)关系,期望每个场景的提升带来整体提升这一点是无法保证的。很有可能一个场景的提升会导致其他场景的下降,更可怕的是某个场景带来的提升甚至小于其他场景更大的下降。这并非是不可能的,那么这种情况下,单场景的A/B测试就显得没那么有意义,单场景的优化也会存在明显的问题。因为这一点尤为重要,因此我们举一个更简单易懂的例子,如下图。
一个1000米长的沙滩上有2个饮料摊A和B,沙滩上均分分布者很多游客,他们一般会找更近的饮料摊去买饮料。最开始A和B分别在沙滩250米和750米的位置,此时沙滩左边的人会去A买,右边的人去B买。然后A发现,自己往右边移动的时候,会有更多的用户(A/B测试的结论),因此A会右移,同样B会左移。A和B各自‘优化’下去,最后会都在沙滩中间的位置,从博弈论的角度,到了一个均衡点。然而,最后‘优化’得到的位置是不如初始位置的,因为会有很多游客会因为太远而放弃买饮料。这种情况下,2个饮料摊各自优化的结果反而是不如不优化的。
多场景问题实际并不止存在于淘宝上,目前比较大型的平台或者无线APP都不止一个场景。即使不谈Yahoo,Sina等综合性网站,像Baidu、Google等功能比较单一、集中的应用,也会有若干场景(如网页、咨询、地图等)。那么这些平台或应用都会面临类似的问题。 综上,研究大型在线平台上的多子场景联合优化,无论从淘宝平台的应用上,还是从科研的角度,都具有重要意义。
为了解决上述的问题,本文提出一个多场景联合排序算法,旨在提升整体指标。我们将多场景的排序问题看成一个完全合作的、部分可观测的多智能体序列决策问题,利用Multi-Agent Reinforcement Learning的方法来尝试着对问题进行建模。
该模型以各个场景为Agent,让各个场景不同的排序策略共享同一个目标,同时在一个场景的排序结果会考虑该用户在其他场景的行为和反馈。这样使得各个场景的排序策略由独立转变为合作与共赢。由于我们想要使用用户在所有场景的行为,而DRQN中的RNN网络可以记住历史信息,同时利用DPG对连续状态与连续动作空间进行探索,因此我们算法取名MA-RDPG(Multi-Agent Recurrent Deterministic Policy Gradient)。
系统总览
传统的单场景优化
目前,单场景排序策略的大体结构如下,每个商品用一组特征来表示<人气分,ctr分……>,排序策略通过给出一组特征权重来决定排序的结果,商品的分数即为各个特征的加权相加。主搜索和店铺内搜索都有自己的排序策略,独立优化,互不影响。
多场景联合优化
目前,单场景排序策略的大体结构如下,每个商品用一组特征来表示<人气分,ctr分……>,排序策略通过给出一组特征权重来决定排序的结果,商品的分数即为各个特征的加权相加。主搜索和店铺内搜索都有自己的排序策略,独立优化,互不影响。