基于强化学习的自动出价论文阅读笔记(3)

书接上回《基于强化学习的自动出价论文阅读笔记(2)》。上一篇笔记介绍了带约束自动出价统一方案------USCB和个性化自动出价方案------PerBid。USCB对各种类型约束下的自动出价进行统一建模,推导出通用的出价计算公式,并使用无模型强化学习中同时学习价值函数和策略函数的Actor-Critic算法之一------DDPG算法,先离线与仿真竞价系统交互进行训练、再在线与真实竞价系统交互进行预测,输出出价计算公式中各参数最优值,从而计算出价并竞价,最终实现各种类型约束下广告流量价值的最大化。PerBid针对使用一个智能体为不同广告主进行自动出价所带来的公平性问题,在USCB的基础上,首先通过广告计划画像网络输出广告计划画像表征,以表征广告计划的静态属性特征和动态环境特征,然后将广告计划划分为多个类簇,为每个类簇构建一个自动出价智能体,并且每个自动出价智能体将广告计划画像表征作为状态输入之一、从而感知不同广告计划动态环境的上下文,通过为每个广告计划适配相应的智能体,在保障投放效果的同时,也提升广告投放的公平性。

之前两篇笔记所介绍的各自动出价方案,均先离线与仿真竞价系统交互进行训练、再在线与真实竞价系统交互进行预测,因此存在一个共性问题是如何保持仿真竞价系统和真实竞价系统的一致性,而真实竞价系统存在复杂的拍卖机制、激励的出价竞争,仿真竞价系统难以精确模拟真实竞价系统,而如果不能保持两个系统的一致性,则可能导致仿真竞价系统下所训练的自动出价方案在真实竞价系统中非最优。

为解决上述问题,一种方案是用真实竞价系统替代仿真竞价系统,让智能体通过与真实竞价系统的交互,进行策略学习,但直接替代并不可行,若直接替代,初始未训练的智能体与真实竞价系统交互会生成不安全的出价,影响广告投放效果。而另一种方案是使用离线强化学习,这里需要注意的是,离线强化学习中的"离线"和离线与仿真竞价系统交互进行训练的"离线"并不是一个概念,离线强化学习中的"离线"是指不与环境交互,使用预先已收集的轨迹数据进行训练,而在线强化学习则会与环境交互,收集交互后产生的轨迹数据进行训练,因此之前两篇笔记所介绍的各自动出价方案均属于在线强化学习,只是与智能体发生交互的是仿真竞价系统、非真实竞价系统,而离线强化学习因为不与环境交互,所以训练时也不需要仿真竞价系统,但同时也引入了另一个问题------分布偏移,因此,目前离线强化学习领域有较多的工作探索如何解决分布偏移问题,如CQL、IQL等。

本篇笔记主要介绍阿里妈妈在2023年发表的论文《Sustainable Online Reinforcement Learning for Auto-bidding》,其提出的SOLA框架,将离线强化学习和在线安全探索相结合,同时解决了训练依赖仿真竞价系统和在线探索出价安全性的问题。笔记如有不足之处,请指正。

离线强化学习背景介绍

在线和离线强化学习的区别

首先看一下离线强化学习和在线强化学习(进一步可分为在线策略和离线策略)的区别。

在线强化学习在线策略算法的示意图如图1所示。强化学习智能体使用当前策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> π k \pi_k </math>πk(作为行为策略),根据状态 <math xmlns="http://www.w3.org/1998/Math/MathML"> s s </math>s决策待执行动作 <math xmlns="http://www.w3.org/1998/Math/MathML"> a a </math>a,然后在环境中执行动作 <math xmlns="http://www.w3.org/1998/Math/MathML"> a a </math>a,得到奖励 <math xmlns="http://www.w3.org/1998/Math/MathML"> r r </math>r,并转移到下一个状态 <math xmlns="http://www.w3.org/1998/Math/MathML"> s ′ s' </math>s′,从而得到轨迹数据 <math xmlns="http://www.w3.org/1998/Math/MathML"> { ( s i , a i , s i ′ , r i ) } \{(s_i,a_i,s_i',r_i)\} </math>{(si,ai,si′,ri)},最后智能体直接使用上述由策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> π k \pi_k </math>πk采样得到的轨迹数据对策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> π k \pi_k </math>πk**(作为目标策略)的参数进行更新,从而得到新策略** <math xmlns="http://www.w3.org/1998/Math/MathML"> π k + 1 \pi_{k+1} </math>πk+1**,即行为策略和目标策略是同一个策略**。

图1 在线策略算法

在线强化学习离线策略算法的示意图如图2所示。强化学习智能体使用当前策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> π k \pi_k </math>πk(作为行为策略),根据状态 <math xmlns="http://www.w3.org/1998/Math/MathML"> s s </math>s决策待执行动作 <math xmlns="http://www.w3.org/1998/Math/MathML"> a a </math>a,然后在环境中执行动作 <math xmlns="http://www.w3.org/1998/Math/MathML"> a a </math>a,得到奖励 <math xmlns="http://www.w3.org/1998/Math/MathML"> r r </math>r,并转移到下一个状态 <math xmlns="http://www.w3.org/1998/Math/MathML"> s ′ s' </math>s′,从而得到轨迹数据 <math xmlns="http://www.w3.org/1998/Math/MathML"> { ( s i , a i , s i ′ , r i ) } \{(s_i,a_i,s_i',r_i)\} </math>{(si,ai,si′,ri)},但后续和在线策略不同,智能体并不直接使用上述由策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> π k \pi_k </math>πk采样得到的轨迹数据对策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> π k \pi_k </math>πk(作为目标策略)的参数进行更新,而是先将轨迹数据放入缓存池 <math xmlns="http://www.w3.org/1998/Math/MathML"> D \mathcal{D} </math>D,再从缓存池 <math xmlns="http://www.w3.org/1998/Math/MathML"> D \mathcal{D} </math>D采样轨迹数据对策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> π k \pi_k </math>πk的参数进行更新,从而得到新策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> π k + 1 \pi_{k+1} </math>πk+1,因为缓存池 <math xmlns="http://www.w3.org/1998/Math/MathML"> D \mathcal{D} </math>D包含由前序多个策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> π 0 , π 1 , ... , π k \pi_0,\pi_1,\dots,\pi_k </math>π0,π1,...,πk采样得到的轨迹数据,所以从缓存池 <math xmlns="http://www.w3.org/1998/Math/MathML"> D \mathcal{D} </math>D采样并进行策略更新的轨迹数据不一定是由策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> π k \pi_k </math>πk采样得到的,即行为策略和目标策略不是同一个策略

图2 离线策略算法

在线策略和离线策略算法均属于在线强化学习,即训练时智能体与环境发生交互、产生新的轨迹数据用于策略训练,而离线强化学习(offline reinforcement learning),如图3所示,其训练所需的轨迹数据提前由另一个行为策略与环境发生交互而产生,训练时智能体与环境不发生交互,不产生新的轨迹数据

图3 离线强化学习

离线强化学习中的分布偏移问题

强化学习中状态动作价值网络 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q θ ( s , a ) Q_\theta(s,a) </math>Qθ(s,a)可通过以下贝尔曼最优迭代求解:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> Q θ ( s , a ) ← r ( s , a ) + max ⁡ a ′ Q ( s ′ , a ′ ) Q_\theta(s,a)\leftarrow r(s,a)+\max_{a'}{Q(s',a')} </math>Qθ(s,a)←r(s,a)+a′maxQ(s′,a′)

其中, <math xmlns="http://www.w3.org/1998/Math/MathML"> s s </math>s表示状态, <math xmlns="http://www.w3.org/1998/Math/MathML"> a a </math>a表示状态 <math xmlns="http://www.w3.org/1998/Math/MathML"> s s </math>s下的动作, <math xmlns="http://www.w3.org/1998/Math/MathML"> s ′ s' </math>s′表示状态 <math xmlns="http://www.w3.org/1998/Math/MathML"> s s </math>s下进行动作 <math xmlns="http://www.w3.org/1998/Math/MathML"> a a </math>a后转移的下一个状态, <math xmlns="http://www.w3.org/1998/Math/MathML"> Q θ ( s , a ) Q_\theta(s,a) </math>Qθ(s,a)表示由状态动作价值网络预测状态 <math xmlns="http://www.w3.org/1998/Math/MathML"> s s </math>s下进行动作 <math xmlns="http://www.w3.org/1998/Math/MathML"> a a </math>a的状态动作价值,该值可由 <math xmlns="http://www.w3.org/1998/Math/MathML"> r ( s , a ) + max ⁡ a ′ Q ( s ′ , a ′ ) r(s,a)+\max_{a'}{Q(s',a')} </math>r(s,a)+maxa′Q(s′,a′)逼近,其中 <math xmlns="http://www.w3.org/1998/Math/MathML"> r ( s , a ) r(s,a) </math>r(s,a)表示状态 <math xmlns="http://www.w3.org/1998/Math/MathML"> s s </math>s下进行动作 <math xmlns="http://www.w3.org/1998/Math/MathML"> a a </math>a获得的奖励, <math xmlns="http://www.w3.org/1998/Math/MathML"> max ⁡ a ′ Q ( s ′ , a ′ ) \max_{a'}{Q(s',a')} </math>maxa′Q(s′,a′)表示状态 <math xmlns="http://www.w3.org/1998/Math/MathML"> s ′ s' </math>s′下进行任一动作所能取得的状态动作价值的最大值,该值也可由状态动作价值网络 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q θ ( s ′ , a ′ ) Q_\theta(s',a') </math>Qθ(s′,a′)预测,且 <math xmlns="http://www.w3.org/1998/Math/MathML"> a ′ a' </math>a′为 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q θ ( s ′ , a ) Q_\theta(s',a) </math>Qθ(s′,a)取得最大值时动作的取值,即 <math xmlns="http://www.w3.org/1998/Math/MathML"> a ′ = arg ⁡ max ⁡ a Q θ ( s ′ , a ) a'=\arg\max_{a}{Q_\theta(s',a)} </math>a′=argmaxaQθ(s′,a)。

而离线强化学习的轨迹数据集提前由另一个行为策略与环境发生交互而产生,训练时智能体与环境不发生交互,不产生新的轨迹数据,因此, <math xmlns="http://www.w3.org/1998/Math/MathML"> ( s ′ , a ′ ) (s',a') </math>(s′,a′)可能并不在已有的轨迹数据集中,从而导致分布偏差(OOD)问题。若 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( s ′ , a ′ ) (s',a') </math>(s′,a′)不在已有的轨迹数据集中,则由于没有数据支撑,导致状态动作价值网络 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q θ ( s ′ , a ′ ) Q_\theta(s',a') </math>Qθ(s′,a′)的预测值可能与真实值有偏,进一步导致 <math xmlns="http://www.w3.org/1998/Math/MathML"> max ⁡ a ′ Q θ ( s ′ , a ′ ) \max_{a'}{Q_\theta(s',a')} </math>maxa′Qθ(s′,a′)被高估的问题,这一问题也被称为外推误差(Extrapolation Error)问题

离线强化学习和在线安全探索相结合的方案-SOLA

阿里妈妈在2023年发表的论文《Sustainable Online Reinforcement Learning for Auto-bidding》提出了SOLA算法,将离线强化学习和在线安全探索相结合,同时解决了训练依赖仿真竞价系统和在线探索出价安全性的问题。

问题建模

论文使用带约束的马尔科夫决策过程(Constrained Markov Decision Process,CMDP)对自动出价问题进行建模。

在强化学习背景知识中,笔者已介绍马尔可夫决策过程由元组 <math xmlns="http://www.w3.org/1998/Math/MathML"> ⟨ S , A , P , r , γ ⟩ ⟨\mathcal{S},\mathcal{A},P,r,\gamma⟩ </math>⟨S,A,P,r,γ⟩构成、以及元组中各元素的含义。对于上述自动出价场景下的带约束的马尔可夫决策过程,其相应的各元素具体含义如下:

  • 状态集合 <math xmlns="http://www.w3.org/1998/Math/MathML"> S \mathcal{S} </math>S,自动出价智能体第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t步的状态 <math xmlns="http://www.w3.org/1998/Math/MathML"> s t s_t </math>st包含以下属性:当前步数 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t;第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t步的剩余预算 <math xmlns="http://www.w3.org/1998/Math/MathML"> B t B_t </math>Bt;第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t步往后剩余可调整出价调控系数的次数 <math xmlns="http://www.w3.org/1998/Math/MathML"> R O L t ROL_t </math>ROLt;第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t − 1 t-1 </math>t−1步和第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t步之间的预算消耗速率 <math xmlns="http://www.w3.org/1998/Math/MathML"> B C R t = ( B t − B t − 1 ) / B t − 1 BCR_t=(B_t-B_{t-1})/B_{t-1} </math>BCRt=(Bt−Bt−1)/Bt−1;第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t − 1 t-1 </math>t−1步和第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t步之间的千次广告展现费用 <math xmlns="http://www.w3.org/1998/Math/MathML"> C P M t CPM_t </math>CPMt;竞胜率 <math xmlns="http://www.w3.org/1998/Math/MathML"> W R t WR_t </math>WRt;上一步动作 <math xmlns="http://www.w3.org/1998/Math/MathML"> a t − 1 a_{t-1} </math>at−1所获得的奖励 <math xmlns="http://www.w3.org/1998/Math/MathML"> r t − 1 r_{t-1} </math>rt−1(即第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t − 1 t-1 </math>t−1步和第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t步之间的广告流量为广告主带来的点击或转化之和)。
  • 动作集合 <math xmlns="http://www.w3.org/1998/Math/MathML"> A \mathcal{A} </math>A,动作 <math xmlns="http://www.w3.org/1998/Math/MathML"> a a </math>a以比例的方式对出价调控系数进行调整,即 <math xmlns="http://www.w3.org/1998/Math/MathML"> λ t = λ t − 1 × ( 1 + β a ) \lambda_t=\lambda_{t-1}\times(1+\beta_a) </math>λt=λt−1×(1+βa)。
  • 状态转移函数 <math xmlns="http://www.w3.org/1998/Math/MathML"> T \mathcal{T} </math>T(或 <math xmlns="http://www.w3.org/1998/Math/MathML"> P P </math>P),论文基于无模型的强化学习算法,因此无需对环境进行建模,不求解状态转移函数。
  • 奖励 <math xmlns="http://www.w3.org/1998/Math/MathML"> r r </math>r,第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t步的奖励 <math xmlns="http://www.w3.org/1998/Math/MathML"> r t r_t </math>rt为第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t步和第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t + 1 t+1 </math>t+1步之间竞得的广告流量价值之和。
  • 费用约束 <math xmlns="http://www.w3.org/1998/Math/MathML"> c c </math>c,第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t步的费用 <math xmlns="http://www.w3.org/1998/Math/MathML"> c t c_t </math>ct为第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t t </math>t步和第 <math xmlns="http://www.w3.org/1998/Math/MathML"> t + 1 t+1 </math>t+1步之间竞得的广告流量费用之和。
  • 折扣因子 <math xmlns="http://www.w3.org/1998/Math/MathML"> γ \gamma </math>γ,因为各时段的奖励对于最大化当天累积奖励的目标来说有相等的权重,不会按时间衰减,所以折扣因子被固定为1。

自动出价问题的目标可表示为:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> max ⁡ μ ∈ Π V ( μ ) ≜ E s t + 1 ∼ P , a t ∼ μ [ ∑ t = 1 T γ t r t ( s t , a t ) ] , subject to ∑ t = 1 T c t ( s t , a t ) ≤ B \max_{\mu\in\Pi}{V(\mu)}\triangleq\mathbb{E}{s{t+1}\sim\mathbb{P},a_t\sim\mu}\left[\sum_{t=1}^T{\gamma^tr_t(s_t,a_t)}\right],\space\text{subject to}\space\sum_{t=1}^T{c_t(s_t,a_t)}\le B </math>μ∈ΠmaxV(μ)≜Est+1∼P,at∼μ[t=1∑Tγtrt(st,at)], subject to t=1∑Tct(st,at)≤B

即在满足预算约束下,最大化累计奖励。

之前两篇笔记所介绍的各自动出价方案,均先离线与仿真竞价系统交互进行训练、再在线与真实竞价系统交互进行预测,因此存在一个共性问题是仿真竞价系统和真实竞价系统并不完全一致,即IBOO(inconsistency between online and offline)问题。

论文介绍了真实竞价系统(Real-world Advertising System,RAS)和仿真竞价系统(Virtual Advertising System,VAS)的不同(仿真竞价系统被称为虚拟竞价系统更合适,为了和前两篇笔记保持一致,这里暂仍称为仿真系统系统),如图4所示,真实竞价系统采用两阶段竞价,第一阶段为粗排,从数十万广告中筛选出数百个广告,第二阶段为精排,从数百个广告中筛选出最终竞胜的广告,而仿真竞价系统采用一阶段竞价,只使用线上精排日志模拟竞价环境;真实竞价系统存在多种拍卖机制,而仿真竞价系统只采用GSP拍卖机制;真实竞价系统除当前广告主外、其余广告主也会不断调整出价,而仿真竞价系统中,其余广告主的出价以市场价的形式被固定,不会变化。

图4 真实竞价系统和仿真竞价系统的不同

解决方案

基于上述问题,论文提出了SOLA框架,将离线强化学习和在线安全探索相结合,通过离线强化学习解决训练依赖仿真竞价系统的问题,通过在线安全探索解决在线探索出价安全性的问题。

在线安全探索

论文首先设计在线安全探索策略。令 <math xmlns="http://www.w3.org/1998/Math/MathML"> μ s \mu_s </math>μs表示自动出价策略, <math xmlns="http://www.w3.org/1998/Math/MathML"> π e \pi_e </math>πe表示探索策略,则安全探索的要求可表示为:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> V ( μ s ) − V ( π e ) ≤ ϵ s V(\mu_s)-V(\pi_e)\le\epsilon_s </math>V(μs)−V(πe)≤ϵs

即因探索导致的广告价值的下降应小于阈值 <math xmlns="http://www.w3.org/1998/Math/MathML"> ϵ s \epsilon_s </math>ϵs。而动作价值函数的贝尔曼迭代方程如下:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> Q μ ( s t , a t ) = r t ( s t , a t ) + γ E s t + 1 ∼ P ( ⋅ ∣ s t , a t ) [ Q μ ( s t + 1 , μ ( s t + 1 ) ) ] Q^\mu(s_t,a_t)=r_t(s_t,a_t)+\gamma\mathbb{E}{s{t+1}\sim\mathbb{P}(\cdot|s_t,a_t)}[Q^\mu(s_{t+1},\mu(s_{t+1}))] </math>Qμ(st,at)=rt(st,at)+γEst+1∼P(⋅∣st,at)[Qμ(st+1,μ(st+1))]

论文证明,给定状态 <math xmlns="http://www.w3.org/1998/Math/MathML"> s t s_t </math>st时,动作价值函数 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ^ \widehat{Q} </math>Q 随 <math xmlns="http://www.w3.org/1998/Math/MathML"> a t a_t </math>at的变化满足Lipschitz平滑,即动作价值函数随 <math xmlns="http://www.w3.org/1998/Math/MathML"> a t a_t </math>at变化的斜率小于常数 <math xmlns="http://www.w3.org/1998/Math/MathML"> L Q L_Q </math>LQ,如图5所示,其中,若保证广告价值下降值小于阈值 <math xmlns="http://www.w3.org/1998/Math/MathML"> ϵ s \epsilon_s </math>ϵs,则探索的安全区间(即动作的取值区间)应在 <math xmlns="http://www.w3.org/1998/Math/MathML"> μ s ( s t ) − ξ \mu_s(s_t)-\xi </math>μs(st)−ξ和 <math xmlns="http://www.w3.org/1998/Math/MathML"> μ s ( s t ) + ξ \mu_s(s_t)+\xi </math>μs(st)+ξ之间,且 <math xmlns="http://www.w3.org/1998/Math/MathML"> ξ ≤ ϵ s L Q γ t 1 Δ T \xi\le\frac{\epsilon_s}{L_{Q}\gamma^{t_1}\Delta T} </math>ξ≤LQγt1ΔTϵs。

图5 给定状态时,动作价值函数随动作的变化满足Lipschitz平滑

则探索策略可表示为:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> π e ( s t ) = { sampling from [ μ s ( s t ) − ξ , μ s ( s t ) + ξ ] , t 1 ≤ t ≤ t 2 ; μ s ( s t ) otherwise . ∀ t \pi_e(s_t) = \begin{cases} \text{sampling from} [\mu_s(s_t)-\xi,\mu_s(s_t)+\xi],&t_1\le t\le t2; \\ \mu_s(s_t) &\text{otherwise}. \end{cases}\space\forall t </math>πe(st)={sampling from[μs(st)−ξ,μs(st)+ξ],μs(st)t1≤t≤t2;otherwise. ∀t

其中, <math xmlns="http://www.w3.org/1998/Math/MathML"> 0 ≤ t 1 ≤ t 2 ≤ T − 1 0\le t_1\le t_2\le T-1 </math>0≤t1≤t2≤T−1,且 <math xmlns="http://www.w3.org/1998/Math/MathML"> Δ T = t 2 − t 1 + 1 \Delta T=t_2-t_1+1 </math>ΔT=t2−t1+1,即在一段时间内,在安全区间内采样动作进行探索,在其他时间内,直接使用出价策略的最优动作。

而对于上式中的采样方法,在安全性保证下,论文进一步设计采样方法以提升探索效率。一般采样方法可采用高斯分布,如下所示:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> π ~ e , N = N ( μ s ( s t ) , σ 2 ) \tilde{\pi}_{e,\mathcal{N}}=\mathcal{N}(\mu_s(s_t),\sigma^2) </math>π~e,N=N(μs(st),σ2)

论文希望新采样方法的分布 <math xmlns="http://www.w3.org/1998/Math/MathML"> π ~ e \tilde{\pi}e </math>π~e满足以下目标:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> max ⁡ π ~ e , ∀ s t E a t ∼ π ~ e ( ⋅ ∣ s t ) Q ^ ( s t , a t ) s.t. D KL ( π ~ e , π ~ e , N ) ≤ ϵ e \max
{\tilde{\pi}e,\forall s_t}\space\mathbb{E}{a_t\sim\tilde{\pi}e(\cdot|s_t)}\widehat{Q}(s_t,a_t)\space\text{s.t.}\space D{\text{KL}}(\tilde{\pi}e,\tilde{\pi}{e,\mathcal{N}})\le\epsilon_e </math>π~e,∀stmax Eat∼π~e(⋅∣st)Q (st,at) s.t. DKL(π~e,π~e,N)≤ϵe

即 <math xmlns="http://www.w3.org/1998/Math/MathML"> π ~ e \tilde{\pi}e </math>π~e在高斯分布的基础上向动作价值期望最大的方向偏移,以提升探索效率,同时新分布和原高斯分布的差异在一定范围内,保证安全性。最后可求得 <math xmlns="http://www.w3.org/1998/Math/MathML"> π ~ e \tilde{\pi}e </math>π~e:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> π ~ e = π ~ e , N C ( s t ) exp ⁡ { 1 λ Q ^ ( s t , a t ) } = 1 C ( s t ) exp ⁡ { − ( a t − μ s ( s t ) ) 2 2 σ 2 ⏟ safety + 1 λ Q ^ ( s t , a t ) ⏟ efficiency } C ( s t ) = ∫ a t exp ⁡ { − ( a t − μ s ( s t ) ) 2 2 σ 2 + 1 λ Q ^ ( s t , a t ) } d a t \begin{align} &\tilde{\pi}e=\frac{\tilde{\pi}{e,\mathcal{N}}}{C(s_t)}\exp\left\{\frac{1}{\lambda}\widehat{Q}(s_t,a_t)\right\}=\frac{1}{C(s_t)}\exp\left\{\underbrace{-\frac{(a_t-\mu_s(s_t))^2}{2\sigma^2}}
{\text{safety}}+\underbrace{\frac{1}{\lambda}\widehat{Q}(s_t,a_t)}
{\text{efficiency}}\right\}\\ &C(s_t)=\int_{a_t}{\exp\{-\frac{(a_t-\mu_s(s_t))^2}{2\sigma^2}+\frac{1}{\lambda}\widehat{Q}(s_t,a_t)\}\text{d}a_t} \end{align} </math>π~e=C(st)π~e,Nexp{λ1Q (st,at)}=C(st)1exp⎩ ⎨ ⎧safety −2σ2(at−μs(st))2+efficiency λ1Q (st,at)⎭ ⎬ ⎫C(st)=∫atexp{−2σ2(at−μs(st))2+λ1Q (st,at)}dat

新分布 <math xmlns="http://www.w3.org/1998/Math/MathML"> π ~ e \tilde{\pi}_e </math>π~e和高斯分布的曲线如图6所示。

图6 新分布和高斯分布的曲线

综上,论文提出的在线安全探索策略可表示为:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> π e ( s t ) = { sampling from [ μ s ( s t ) − ξ , μ s ( s t ) + ξ ] with π ~ e , t 1 ≤ t ≤ t 2 ; μ s ( s t ) otherwise . ∀ t \pi_e(s_t) = \begin{cases} \text{sampling from} [\mu_s(s_t)-\xi,\mu_s(s_t)+\xi]\text{ with }\tilde{\pi}_e,&t_1\le t\le t2; \\ \mu_s(s_t) &\text{otherwise}. \end{cases}\space\forall t </math>πe(st)={sampling from[μs(st)−ξ,μs(st)+ξ] with π~e,μs(st)t1≤t≤t2;otherwise. ∀t

即在一段时间内,在安全区间内使用分布 <math xmlns="http://www.w3.org/1998/Math/MathML"> π ~ e \tilde{\pi}_e </math>π~e采样动作进行探索,在其他时间内,直接使用出价策略的最优动作。

离线强化学习

因为在线安全探索策略只在安全区域探索,所以无法收集安全区域外的状态、动作对数据,因此,在离线强化学习时,需要解决分布偏差问题。目前解决分布偏差的离线强化学习算法有CQL、BCQ等,其中CQL的思想是在已有强化学习算法的基础上,对已有数据集区域外的动作价值增加惩罚,避免高估。

第一篇笔记中已介绍,强化学习的动作价值网络可通过以下贝尔曼最优迭代求解:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> Q ( s , a ) ← Q ( s , a ) + α [ r + γ max ⁡ a ′ ∈ A Q ( s ′ , a ′ ) − Q ( s , a ) ] Q(s,a)\leftarrow Q(s,a)+\alpha\left[r+\gamma\max_{a'\in\mathcal{A}}Q(s',a')-Q(s,a)\right] </math>Q(s,a)←Q(s,a)+α[r+γa′∈AmaxQ(s′,a′)−Q(s,a)]

其中,使用 <math xmlns="http://www.w3.org/1998/Math/MathML"> r + γ max ⁡ a ′ ∈ A Q ( s ′ , a ′ ) r+\gamma\max_{a'\in\mathcal{A}}Q(s',a') </math>r+γmaxa′∈AQ(s′,a′)和 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ( s , a ) Q(s,a) </math>Q(s,a)的差值迭代更新 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ( s , a ) Q(s,a) </math>Q(s,a),也就是说,使 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ( s , a ) Q(s,a) </math>Q(s,a)逼近 <math xmlns="http://www.w3.org/1998/Math/MathML"> r + γ max ⁡ a ′ ∈ A Q ( s ′ , a ′ ) r+\gamma\max_{a'\in\mathcal{A}}Q(s',a') </math>r+γmaxa′∈AQ(s′,a′),因此,对于一组轨迹数据 <math xmlns="http://www.w3.org/1998/Math/MathML"> { ( s i , a i , r i , s i ′ ) } \{(s_i,a_i,r_i,s_i')\} </math>{(si,ai,ri,si′)},动作价值网络的损失函数可以表示为以下均方误差:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> w ∗ = arg ⁡ min ⁡ w 1 2 N ∑ i = 1 N [ Q w ( s i , a i ) − ( r i + γ max ⁡ a ′ Q w ( s i ′ , a ′ ) ) ] 2 w^*=\arg\min_w\frac{1}{2N}\sum_{i=1}^N{\left[Q_w(s_i,a_i)-\left(r_i+\gamma\max_{a'}Q_w(s_i',a')\right)\right]^2} </math>w∗=argwmin2N1i=1∑N[Qw(si,ai)−(ri+γa′maxQw(si′,a′))]2

SOLA这篇论文将上式表示为:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> L TD = 1 2 E s k , a k , s k ′ ∼ D [ ( Q ^ ( s k , a k ) − B ˉ Q ˉ ( s k , a k ) ) 2 ] \mathcal{L}{\text{TD}}=\frac{1}{2}\mathbb{E}{s_k,a_k,s'_k\sim\mathcal{D}}\left[\left(\widehat{Q}(s_k,a_k)-\bar{\mathcal{B}}\bar{Q}(s_k,a_k)\right)^2\right] </math>LTD=21Esk,ak,sk′∼D[(Q (sk,ak)−BˉQˉ(sk,ak))2]

其中, <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ^ ( s k , a k ) \widehat{Q}(s_k,a_k) </math>Q (sk,ak)表示动作价值网络, <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ˉ ( s k , a k ) \bar{Q}(s_k,a_k) </math>Qˉ(sk,ak)表示动作价值网络的目标网络, <math xmlns="http://www.w3.org/1998/Math/MathML"> B ˉ \bar{\mathcal{B}} </math>Bˉ表示贝尔曼算子,即 <math xmlns="http://www.w3.org/1998/Math/MathML"> B ˉ Q ˉ ( s k , a k ) = r k + γ max ⁡ a k ′ Q ˉ ( s k ′ , a k ′ ) \bar{\mathcal{B}}\bar{Q}(s_k,a_k)=r_k+\gamma\max_{a'_k}\bar{Q}(s'_k,a'_k) </math>BˉQˉ(sk,ak)=rk+γmaxak′Qˉ(sk′,ak′)。

论文借鉴了离线强化学习领域已有的CQL(Conservative Q-Learning)算法,在原动作价值网络损失函数的基础上,增加以下约束项,以解决离线强化学习的分布偏差和外推误差问题:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> L C Q L = α 1 E s k ∼ D [ log ⁡ ∑ a ∼ Unif ( A ) exp ⁡ ( Q ^ ( s k , a ) ) ] ⏟ conservative penalty: punishing all actions − α 2 E s k ∼ D [ Q ^ ( s k , μ b ( s k ) ) ] ⏟ Reward the in-distribution actions \mathcal{L}{CQL}=\alpha_1\underbrace{\mathbb{E}{s_k\sim\mathcal{D}}\left[\log\sum_{a\sim\text{Unif}(\mathcal{A})}{\exp(\widehat{Q}(s_k,a))}\right]}{\text{conservative penalty: punishing all actions}}-\alpha_2\underbrace{\mathbb{E}{s_k\sim\mathcal{D}}\left[\widehat{Q}(s_k,\mu_b(s_k))\right]}_{\text{Reward the in-distribution actions}} </math>LCQL=α1conservative penalty: punishing all actions Esk∼D loga∼Unif(A)∑exp(Q (sk,a)) −α2Reward the in-distribution actions Esk∼D[Q (sk,μb(sk))]

其中,第一部分为惩罚项,即对满足均匀分布的所有动作的动作价值进行惩罚,防止动作价值的过高估计,第一部分值越小越好,第二部分为奖励项,即对数据集中已有动作的动作价值进行奖励,因为可认为动作价值网络对数据集中已有动作的动作价值预估比较准确,可以不进行惩罚,所以通过上述奖励项对数据集中已有动作在第一部分的惩罚进行补偿,第二部分值越大越好。 <math xmlns="http://www.w3.org/1998/Math/MathML"> α 1 \alpha_1 </math>α1和 <math xmlns="http://www.w3.org/1998/Math/MathML"> α 2 \alpha_2 </math>α2为控制上述两项权重的超参, <math xmlns="http://www.w3.org/1998/Math/MathML"> D \mathcal{D} </math>D为数据集, <math xmlns="http://www.w3.org/1998/Math/MathML"> μ b \mu_b </math>μb为在真实竞价系统进行出价并采集数据的行为策略。

下一节会介绍SOLA算法整体框架是一个迭代的过程,启动阶段使用已有安全策略在真实竞价系统进行出价并采集数据后,开始迭代阶段,每次迭代中,先使用已有数据集进行离线强化学习训练,训练得到新策略后,再在真实竞价系统进行出价并采集数据,新采集的数据扩充原有数据集,因此 <math xmlns="http://www.w3.org/1998/Math/MathML"> μ b \mu_b </math>μb可表示为:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> μ b = { μ s , for data in D s π e , τ , for data in D o n , τ \mu_b=\begin{cases} \mu_s, &\text{for data in } \mathcal{D}s \\ \pi{e,\tau}, &\text{for data in } \mathcal{D}_{on,\tau} \end{cases} </math>μb={μs,πe,τ,for data in Dsfor data in Don,τ

即启动阶段,行为策略为已有安全策略,后续第 <math xmlns="http://www.w3.org/1998/Math/MathML"> τ \tau </math>τ次迭代,行为策略为当前迭代的在线安全探索策略。

论文还指出离线强化学习的另一个问题------离线评估(Off-Policy Evaluation,OPE)的不准确问题。离线强化学习的训练阶段虽然不再与仿真竞价系统(VAS)交互,但是评估阶段还是通过仿真竞价系统的交互,取得各步交互的奖励,并与理论最优奖励对比,作为评估指标,这一评估方式被称为离线评估。而仿真竞价系统(VAS)和真实竞价系统(RAS)的不一致,会导致离线评估的不准确,即离线评估指标值高的策略在真实竞价系统中取得的效果不一定好。

为了解决上述离线评估不准确的问题、以及离线强化学习训练不稳定的问题,论文首先发现由USCB算法在仿真竞价系统中交互训练所得的动作价值网络(之前的SOTA),以及在模拟的真实竞价系统中进行交互训练所得的动作价值网络,其在不同状态下,动作价值随动作的变化满足二次型(Quadratic Form),分别如图7和图8所示。因此,论文认为通过离线强化学习训练所得的动作价值网络,其在不同状态下,动作价值随动作的变化也应该满足二次型(Quadratic Form),从而在损失函数中进一步增加以下正则项:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> L V = β E s k ∼ D [ D KL ( exp ⁡ ( Q ^ ( s k , ⋅ ) ) ∑ a ∼ Unif ( A ) exp ⁡ ( Q ^ ( s k , a ) ) , exp ⁡ ( Q ^ qua ( s k , ⋅ ) ) ∑ a ∼ Unif ( A ) exp ⁡ ( Q ^ qua ( s k , a ) ) ) ] \mathcal{L}{\text{V}}=\beta\mathbb{E}{s_k\sim\mathcal{D}}\left[D_{\text{KL}}\left(\frac{\exp(\widehat{Q}(s_k,\cdot))}{\sum_{a\sim\text{Unif}(\mathcal{A})}{\exp(\widehat{Q}(s_k,a))}},\frac{\exp(\widehat{Q}{\text{qua}}(s_k,\cdot))}{\sum{a\sim\text{Unif}(\mathcal{A})}{\exp(\widehat{Q}_{\text{qua}}(s_k,a))}}\right)\right] </math>LV=βEsk∼D[DKL(∑a∼Unif(A)exp(Q (sk,a))exp(Q (sk,⋅)),∑a∼Unif(A)exp(Q qua(sk,a))exp(Q qua(sk,⋅)))]

即通过KL散度,使得当前训练的动作价值网络 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ^ \widehat{Q} </math>Q 尽量拟合之前训练的满足二次型的动作价值网络 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ^ qua \widehat{Q}{\text{qua}} </math>Q qua。其中, <math xmlns="http://www.w3.org/1998/Math/MathML"> β \beta </math>β为控制该损失项权重的超参, <math xmlns="http://www.w3.org/1998/Math/MathML"> D KL D{\text{KL}} </math>DKL表示KL散度算子, <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ^ \widehat{Q} </math>Q 表示动作价值网络, <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ^ qua \widehat{Q}{\text{qua}} </math>Q qua表示满足二次型的动作价值网络。令动作满足均匀分布,然后使用Softmax函数将动作价值随动作的变化转化为一种概率密度函数,然后使用KL散度计算两种概率密度函数的相似性,通过最小化上述KL散度,使得 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ^ \widehat{Q} </math>Q 的形态接近 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ^ qua \widehat{Q}{\text{qua}} </math>Q qua。论文中,每次迭代中的 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ^ qua \widehat{Q}{\text{qua}} </math>Q qua取上次迭代中的 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ^ \widehat{Q} </math>Q ,第一次迭代中的 <math xmlns="http://www.w3.org/1998/Math/MathML"> Q ^ qua \widehat{Q}{\text{qua}} </math>Q qua则取USCB算法在仿真竞价系统中交互训练所得的动作价值网络。

图7 由USCB算法训练所得动作价值网络其动作价值随动作的变化
图8 在模拟的真实竞价系统训练所得的动作价值网络其动作价值随动作的变化

因此,论文最终动作价值网络的损失函数可表示为:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> L V-CQL = L TD + L CQL + L V \mathcal{L}{\text{V-CQL}}=\mathcal{L}{\text{TD}}+\mathcal{L}{\text{CQL}}+\mathcal{L}{\text{V}} </math>LV-CQL=LTD+LCQL+LV

整体框架

图9 SOLA的整体框架

最终的SOLA框架如图9所示,伪代码如图10所示,其整体分为两个阶段,在启动阶段(Warm Booting),SOLA使用由USCB算法训练所得的出价策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> μ s \mu_s </math>μs在真实竞价系统中进行出价、获取轨迹数据集 <math xmlns="http://www.w3.org/1998/Math/MathML"> D s = { ( s k , a k , r k , s k ′ ) } k \mathcal{D}s=\{(s_k,a_k,r_k,s'k)\}k </math>Ds={(sk,ak,rk,sk′)}k,并基于 <math xmlns="http://www.w3.org/1998/Math/MathML"> D s \mathcal{D}s </math>Ds使用V-CQL算法训练得到初始出价策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> μ 0 \mu_0 </math>μ0;在迭代阶段(Iteration Process),SOLA会迭代多次,令第 <math xmlns="http://www.w3.org/1998/Math/MathML"> τ \tau </math>τ次迭代的出价策略为 <math xmlns="http://www.w3.org/1998/Math/MathML"> μ τ \mu\tau </math>μτ,在线安全探索策略为 <math xmlns="http://www.w3.org/1998/Math/MathML"> π e , τ \pi{e,\tau} </math>πe,τ,该次迭代在真实竞价系统中使用在线安全探索策略进行出价、获取的轨迹数据集为 <math xmlns="http://www.w3.org/1998/Math/MathML"> D o n , τ \mathcal{D}{on,\tau} </math>Don,τ,然后基于已有累积的数据集使用V-CQL算法训练出价策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> μ τ \mu\tau </math>μτ,如次迭代,直至最终算法收敛。

图10 SOLA的整体框架伪代码

实验评估

实验评估时,论文构建了真实竞价系统(RAS)的模拟环境,论文称之为(s-RAS),s-RAS与仿真竞价系统(VAS)不同,仿真竞价系统中,其他广告主的出价根据历史精排日志固定,真实竞价系统的模拟环境中,其他广告主也会根据已有策略进行自动出价。

实验评估指标包括已消耗预算(Consumed Budget, ConBdg)、投资回报率(Return on Investment,ROI)、单次转化成本(Cost Per Acquisition,CPA),ConBdg、ROI越高越好,CPA越低越好。

实验评估所对比的模型包括:整体框架上,SOLA和USCB比较,离线强化学习上,V-CQL和BCQ、CQL比较,在线安全探索上,论文设计的采样分布(SER)和高斯分布比较。

图11 论文设计的采样分布(SER)和高斯分布比较

如图11所示,使用论文设计的采样分布(SER)和高斯分布进行探索,累积价值的下降在5%以内,并且论文设计的采样分布相比高斯分布,累积价值随迭代的提升更快,说明使用论文设计的采样分布进行探索的安全性和有效性。

图12 V-CQL和BCQ、CQL比较

如图12所示,V-CQL和BCQ、CQL比较,V-CQL在第五次迭代时,已收敛到最优出价策略。

论文在真实竞价系统上进行AB实验,SOLA在各次迭代中的效果优于USCB。

图13 SOLA和USCB比较

参考文献

相关推荐
ziwu2 小时前
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
人工智能·深度学习·图像识别
大耳朵爱学习6 小时前
掌握Transformer之注意力为什么有效
人工智能·深度学习·自然语言处理·大模型·llm·transformer·大语言模型
qq_15321452646 小时前
【2023工业异常检测文献】SimpleNet
图像处理·人工智能·深度学习·神经网络·机器学习·计算机视觉·视觉检测
B站计算机毕业设计超人9 小时前
计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
爬虫·python·深度学习·算法·机器学习·自然语言处理·数据可视化
羊小猪~~9 小时前
深度学习基础案例5--VGG16人脸识别(体验学习的痛苦与乐趣)
人工智能·python·深度学习·学习·算法·机器学习·cnn
AI大模型知识分享12 小时前
Prompt最佳实践|如何用参考文本让ChatGPT答案更精准?
人工智能·深度学习·机器学习·chatgpt·prompt·gpt-3
小言从不摸鱼14 小时前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt
酱香编程,风雨兼程18 小时前
深度学习——基础知识
人工智能·深度学习
#include<菜鸡>19 小时前
动手学深度学习(pytorch土堆)-04torchvision中数据集的使用
人工智能·pytorch·深度学习
拓端研究室TRL19 小时前
TensorFlow深度学习框架改进K-means聚类、SOM自组织映射算法及上海招生政策影响分析研究...
深度学习·算法·tensorflow·kmeans·聚类