• 第七章 人工智能,7.5 探索基于强化学习的智能推荐之路(作者:朱仙)


    7.5 探索基于强化学习的智能推荐之路

    1. 背景

    随着千人千面个性化推荐技术在手机淘宝的全面应用,推荐场景日均引导成交在整个手淘平台占据着非常重要的比例。用户越来越习惯于逛淘宝来满足日常的休闲或者购物的需求。然而很多时候,用户购买的目的性并不是很明确。一个宝贝的成交,可能会跨越多天,经历较长的决策周期。与此同时,在整个用户的购买决策过程中,他们经常在多个异构的推荐场景间进行跳转,进而影响自身后续的行为序列。

    因此,推荐的优化需要从单一场景的直接优化,逐步进阶到多场景的联动优化,这就需要我们将用户的长期行为序列纳入建模,从而实现整个手淘推荐链路的累积收益最大化。在这样的背景目标下,我们先后探索落地了两项阶段性的优化工作:

    1)基于监督学习的购买决策建模;

    2)基于强化学习的全链路场景优化;

    通过这两个阶段的工作,我们初步实现了手淘推荐引擎的合理化与智能化,它能根据用户-系统的联动交互,结合用户当前的状态,给出最优的推荐决策,从而获得长期累积受益的最大化。

    2. 基于监督学习的购买决策

    我们首先对已有的单一场景推荐过程进行深入地思考和分析:常见的成交模型仅仅通过用户短期行为对用户当天的成交进行预估,实际上是局部贪心的算法。导致的结果是无法引导高质量的成交,在优化cvr时往往会引起笔单价的下降(笔单价低的商品存在cvr高的天然属性),即使最终gmv提升,也是建立在降低成交质量的代价之上。

    2.1 建模背景

    以首页导购场景猜你喜欢为例,我们对用户的行为与成交日志进行分析。可以发现用户在某一类目或商品上的购买行为存在一个决策的过程,并且这一过程的长度与成交单价强相关,如下图所示:

    购买决策过程是一个解释消费者行为的成熟理论,除去购买价格低决策风险小或品牌忠实用户导致快速决策的情况,大部分购买决策过程包括以下几个阶段:

    1. 需求产生:用户通过内部以及外部刺激发现现状与理想状态存在的差距,从而激发了购买需求。
    2. 信息搜集:用户通过各种渠道(广告、亲友、互联网搜索引擎)学习到相关的行业知识。
    3. 候选比较:用户在这一阶段,将根据学到的行业知识聚焦到契合用户需求的几款候选商品并进行评估。
    4. 购买决策:完成评估后,用户将会进入最后的决策阶段,根据自身购买力与偏好等信息进行选择,这一环节仍然会受到其他因素(亲友反馈、预算不符等)影响而被打断。
    5. 购后反馈:用户购后对商品的体验环节会修正用户对行业的认知。

    我们借鉴这样的思路,将用户的购买行为看作多个阶段组成的过程,并结合场景日志对购买决策过程进行建模。我们暂不讨论用户成交后的行为(即购后反馈),只将购买决策阶段作为整个购买决策过程的终点。

    2.2 决策建模

    如上图所示,以CF(协同过滤)方式召回的商品会通过小时级曝光日志进行曝光过滤。这一策略在整体上对ctr指标有提升,向用户曝光更为丰富多样性的商品,提升用户购买初期信息搜集的体验,但也会过滤用户行为收敛后真正中意的商品,打断用户的购买过程。

    因此,我们在CF之外增加购买决策阶段商品的召回,不对决策商品进行强制曝光过滤,只是将曝光作为特征加入模型。我们为购买决策阶段进行建模,用户反馈点击通过购买决策模型判别为决策商品或非决策商品:决策商品被重新召回,而非决策商品将会在排序中被降权。

    我们收集用户在详情页的行为作为判断用户是否处在购买决策阶段的主要特征,结合全网以及场景的用户偏好,以场景GMV为目标进行建模。

    page_(u,i)为用户u在商品i详情页的行为,描述了用户对商品的决策行为。prefer_(u,i)表示用户u对商品i的偏好向量。g(.)与h(.)是我们结合场景样本与模型拟合得到的ctr与cvr预估函数。

    与常规gmv优化任务所不同的是,我们的<u, i>是全部来自于场景点击召回再次曝光的样本。我们使用gbdt作为ctr与cvr的拟合函数g(.)、h(.)。

    根据训练的模型,我们可以以预估的gmv进行排序,并设置阈值将回归模型转化为二分类模型,从而判断用户是否处在购买决策的阶段。决策商品会被重新召回,而非决策商品会被降权。在此基础上结合商品降价、售罄等利益点在推荐场景中向用户展示,从而促使用户做下最终的购买决定,减少用户的决策时间。

    我们的策略在日常进行小流量实验,对比效果在客单价与总成交上都有非常显著的提升;双11当天大促全量上线,更是以极少的pv占比引导了很大比例的成交。

    3. 基于强化学习的全链路优化

    在第一阶段的工作中,我们基于传统监督学习建模的方式,在一定程度上提升了单一场景的引导成交和客单价。但总体上来讲,模型上仍然不够优雅智能,用户在成交链路上的行为序列特性并没有在模型上体现。

    事实上,在电商的个性化推荐中,存在一条典型的交易链路,它能基本刻画一个用户完成一次购买行为所经历的路径环节。比如用户在首页闲逛时可能会对某个商品发生兴趣,然后点击进去查看商品的详情,或加购、或收藏;当用户下定决心购买后,会到达付款完成页,之后又可能会查看订单详情、物流信息等,直到最后确认收货。

    这些页面都有相应的推荐场景,在购买前通过推荐辅助促进用户的决策过程;用户完成某个宝贝购买后,全力捕捉用户的购物热情,继续通过合理的推荐让用户继续购买更多的宝贝。整个交易链路的核心就是最大力度的引导用户成交,实现全链路成交的累积最大化。

    所以我们就继续考虑能否采用类MDP的方式,进行更为合理智能的全链路优化建模,即在用户每一个当前的链路状态,推荐引擎可以依据一定的策略,输出相应的推荐行为,然后根据用户的反馈交互,对策略进行迭代更新,从而最终逐步学习到最优的推荐策略。换句话讲,也就是强化学习的建模优化思想。

    然而与搜索等场景不同的是,商品的个性化推荐对用户来讲是一个“Soft Need”,很多时候购物的目的性并不是非常的明确。一个宝贝的成交,可能会跨多天,决策周期较长。并且在购买决策的过程中,用户会经常性的在多个异构的推荐页面场景中进行跳转,情况也较搜索更为复杂。

    3.1 算法背景

    结合推荐场景的语义环境,首先明确强化学习几个核心元素的基本含义。我们将推荐引擎视为Agent,

    S:引擎能感知的当前用户状态空间;

    A:商品推荐空间;

    R:奖赏函数;一次状态跳转Agent能获得的奖赏;

    强化学习学到的是一个从环境状态到动作的映射,即行为策略 π:S →A ,而学习的目标,就是通过与环境的交互过程中,寻找到一个最优策略π^*,在任意状态s下,获得的长期累积奖赏最大化,即:

    V^π (s)为策略对应的状态值函数,表示状态s下的折算累积回报:

    对应的状态-动作值函数为:

    即在状态s下,采用动作a,Agent能获得累积奖赏期望。显然,对于最优的策略π^*对应的状态值函数和动作值函数,有:

    对于经典的强化学习,可以通过寻找最优的状态值函数或动作值函数,学习最优策略π^*。

    3.2 算法估计

    基于值函数估计的核心思想就是,将状态-动作值函数进行参数化,将大规模的状态动作空间转化为参数空间,在降维的同时增加函数本身的泛化能力。即:


    我们通过更新参数w来使得Q函数逼近最优的Q值。

    其中,ϕ(s)为状态s的特征向量,包含:用户自身维度的一系列特征、当前所处链路场景的特征信息、以及上一跳的trigger特征信息等;ψ(a)为商品维度的一系列特征。

    而f本身是一个回归模型,典型的包括:线性回归,树回归(e.g., rf或gbrt等),以及神经网络的方式。

    我们通过Q-Learning的方式进行估值的迭代,即:

    其中,α 能够减减少估计误差造成的影响,类似随机梯度下降,从而最终收敛到最优的Q值。

    在电商的个性化推荐中,用户的购物目的性并不是很明确。一个宝贝的成交,可能会跨多天,决策周期较长。并且在购买决策的过程中,用户经常会在多个异构的推荐页面场景中进行跳转。为了应对这一状况,我们对交易链路多个关键场景中,一定周期内的用户真实曝光、点击、成交等行为,在类目限制的基础上按照时序进行关联,从而可以构建出一个行为决策序列,如下图所示:

    说明: D:DRLATA文章seee.png

    我们结合实际的业务需求,对行为序列中单步的奖赏收益可以进行具体的定义。

    当我们找到最优的估值函数,就可以依据当前的Q值计算出最优的动作输出给用户。这种方式称之为Greedy Policy,即:

    这里可以进一步使用e-greedy policy的方式,增加一定的exploration,会有利于更新Q值从而获得更好的Policy。

    强化学习的全链路优化策略最终在多个场景取得了非常大的业务指标提升。策略本身具有很好的智能迭代成长能力,同时可以优雅地建模用户长周期的购买决策行为,有效促进了高客单价格商品的决策成交。

    结语

    每年的双11都是对我们日常算法优化的一次大考,也是我们实验前沿技术的最佳阵地。我们在去年千人千面全面触达终端用户的基础上,进一步探索了更为复杂的多场景全链路联动优化,使推荐本身更加的合理化和智能化。从基于监督学习的购买决策,到基于强化学习的全链路优化,我们稳扎稳打,初步开启了智能推荐的新篇章。

  • 相关阅读:
    火狐firefox进行post提交测试
    spring cloud:config-eureka-refresh
    spring cloud:config
    使用Docker部署Gitlab
    Docker配置加速器
    spring cloud:eureka
    Sql Server 出现此数据库没有有效所有者问题
    将VS2012的项目转化成VS2010
    SQL Server 2008将数据库数据导出到脚本
    Sql Server 显示插入Identity字段
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/6236852.html
Copyright © 2020-2023  润新知