An End-to-End Deep RL Framework for Task Arrangement in Crowdsourcing Platforms
前言
一篇来自ICDE 2020的工作,关于深度强化学习方法如何更好应用在众包平台以实现平台利益的最大化,文章在解决问题上的思路很值得借鉴,但是方法还是过于简单,有很多的提升空间,此外实验部分也有待商榷的地方。
Paper:https://arxiv.org/pdf/1911.01030.pdf
Code: 未开源,可参考https://github.com/JasonZhujp/RL-Crowdsourcing
Abstract
本文提出了一种面向任务安排的深度强化学习框架,之前的工作基于监督学习的方法,但是只是单独考虑workers或requests,无法处理动态环境。而本文设计的DQN网络,可以估计推荐任务的预期长期收益,同时考虑了当前和未来的奖励,并且能够实时更新。此外,还设计了两个DQN网络同时捕捉workers和requesters的收益,以最大化平台的利益。
I. INTRODUCTION
众包任务中,请求者首先发布任务,并给出奖励,worker到达时平台会给他显示可选的任务列表,任务按照一定的标准排序。最后worker只能选择一个任务。
上图是任务的简单排序,由于可用任务众多,人工挑选任务繁琐,因此一些监督学习任务被提出,比如KNN分类或者概率矩阵分解,来实现个性化推荐。但是这些方法只是单独考虑工人或请求者,这会导致部分任务没人做,或者任务分配不公平,需要在二者之间进行权衡。此外,环境是动态变化的,工人的偏好和任务的质量也是不断变化的,但是监督学习无法更新这种变化,并且会忽略推荐任务的长期奖励,产生次优的结果。
为了解决上述问题,作者提出深度强化学习架构用于任务分配,将环境(工人和请求者)与代理(平台)之间的交互建模为MDP。作者应用DQN来训练神经网络来估计推荐每个任务的奖励,并且可以根据每个工作人员的反馈进行实时的更新。
但是DQN只对用户和商品的关系进行建模,在本文的任务中,还需要考虑所有可用任务之间的关系。为了捕获环境的信息,作者设计一个全新的表征方法将工人的特征和当前的任务结合在一起,以及一个特定的Q网络来处理一组具有不确定大小和置换不变性特征的可用任务。
此外,还需要为workers和requesters设计两个单独的MDP,因为它们有着不同的获利目标,也正因为这个原因,作者设计了两个DQN网络为二者的利益分别建模,最后将二者结合(相当于对二者的利益进行了一次妥协)。
DNQ网络在本项目中还要面临状态转移矩阵稀疏的问题,这会导致不确定的转移概率和缓慢的收敛。为了解决这个问题,作者获得工人的反馈后修改Q值方程,并明确预测转移矩阵和未来状态。
本文的贡献如下:
- 本文是第一个提出在众包平台应用深度强化学习的文章。
- 应用DQN处理即时和未来的奖励,从长远角度为工人和请求者优化目标。
- 设计了一个新颖的状态表征,修改了计算 Q 值的方程并明确预测转移概率和未来状态。
II. PROBLEM STATEMENT
A. Problem Definition
任务的目标是为到来的工人提供推荐任务列表并分配任务。
B. Problem Formulation as MDPs
定义两个MDPs。
MDP(w)
工人的MDP考虑如下,在每个时间戳 { 1 , 2 , . . . , i } \{1,2,...,i\} { 1,2,...,i},一个工人 w i w_i wi到来,会有一组请求者发布的可用的任务 { T i } \{T_i\} { Ti}。
- 状态 s i s_i si被定义为 w i w_i wi最近的完成历史,即状态的表征是工人 w i w_i wi的特征, f s i = f w i f_{s_i}=f_{w_i} fsi=fwi。
- 一个动作 a i a_i ai即向 w i w_i wi提供可用的任务。有推荐一个任务和推荐一组排序任务之分。
- 奖励 r i r_i ri由状态动作对决定, r i = 1 r_i=1 ri=1说明 w i w_i wi完成任务,否则 w i = 0 w_i=0 wi=0。
- 当同一个工人 w i w_i wi到来,未来状态 s i + 1 s_{i+1} si+1发生。如果 r i = 1 r_i=1 ri=1,工人特征 f w i f_{w_i} fwi更新为 f s i + 1 f_{s_{i+1}} fsi+1。
- 转移 P r ( s i + 1 ∣ s i , a i , r i ) Pr(s_{i+1}|s_i,a_i,r_i) Pr(si+1∣si,ai,ri)是从 s i s_i si转移到 s i + 1 s_{i+1} si+1的概率,这取决于 w i w_i wi完成任务 a i a_i ai的奖励。
- 折扣因子 γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1]决定了未来奖励对于即时奖励的重要性。
全局目标是最大化工人的累积完成率。
MDP®
请求者的MDP有所不同:
- f s i = [ f w i , f T i , q w i , q T i ] f_{s_i}=[f_{w_i},f_{T_i},q_{w_i},q_{T_i}] fsi=[fwi,fTi,qwi,qTi]。
- a i a_i ai和MDP(w)相同。
- 奖励 r i r_i ri由 ( s i , a i ) (s_i, a_i) (si,ai)决定。 r i r_i ri是工人 w i w_i wi完成任务的质量增益。
- 转移 P r ( s i + 1 ∣ s i , a i , r i ) Pr(s_{i+1}|s_i,a_i,r_i) Pr(si+1∣si,ai,ri)取决于 w i w_i wi完成某项任务的成功率和质量增益。
- 折扣因子和MDP(w)相同。
全局目标是最大化任务的累积质量增益。
Remark
为了最大化工人的利益,需要探索工人和任务之间的关系以及所有可用的任务,因此MDP®中的状态由工人和当前可用的任务组成。为了统一两个MDP的状态定义,使用MDP®代替MDP(w),因为二者具有包含关系。
C. RL and Deep Q-Network
1) Q-Learning
Q-Learing是基于值函数、model-free的强化学习算法,定义两组值函数获取最优的策略。 V π ( s ) V^{\pi}(s) Vπ(s)是状态值函数,其中 V π ( s ) = E [ ∑ i = 0 i n f γ i r i ∣ s 0 = s , π ] V^{\pi}(s)=\mathbb{E}\left [ \sum_{i=0}^{\mathrm{inf}} \gamma ^ir_i | s_0 = s, \pi\right ] Vπ(s)=E[∑i=0infγiri∣s0=s,π],是在给定状态和策略下的期望奖励。类似的,Q值函数 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a)是在给定状态和动作下的期望奖励,其中 Q π ( s , a ) = E [ ∑ i = 0 i n f γ i r i ∣ s 0 = s , a 0 = a , π ] Q^{\pi}(s,a)=\mathbb{E}\left [ \sum_{i=0}^{\mathrm{inf}} \gamma ^ir_i | s_0 = s, a_0=a,\pi\right ] Qπ(s,a)=E[∑i=0infγiri∣s0=s,a0=a,π]。
基于贝尔曼等式,最优的Q值函数 Q ∗ ( s , a ) Q^{*}(s,a) Q∗(s,a)在最优的策略下满足:
Q ∗ ( s i , a i ) = E i + 1 [ r i + γ m a x a ′ Q ∗ ( s i + 1 , a ′ ) ∣ s i , a i ] Q^{*}(s_i,a_i)=\mathbb{E}_{i+1}\left [ r_i+ \gamma \mathrm{max}_{a'} Q^{*}(s_{i+1},a')| s_i,a_i\right ] Q∗(si,ai)=Ei+1[ri+γmaxa′Q∗(si+1,a′)∣si,ai]
它通过选择每个状态下具有最大的 Q ( s , a ) Q(s,a) Q(s,a)的动作 a i a_i ai来迭代学习 Q ( s i , a i ) Q(s_i,a_i) Q(si,ai)。接着更新:
Q ( s i , a i ) ← ( 1 − α ) Q ( s i , a i ) + α ( r i + γ m a x a ′ Q ( s i + 1 , a ′ ) ) Q(s_i,a_i)\gets(1-\alpha)Q(s_i,a_i)+\alpha(r_i+\gamma \mathrm{max}_{a'} Q(s_{i+1},a')) Q(si,ai)←(1−α)Q(si,ai)+α(ri+γmaxa′Q(si+1,a′))
其中 α ∈ [ 0 , 1 ] \alpha \in [0,1] α∈[0,1]是学习率。
2) Deep Q-Network
由于状态和行为空间巨大,无法存储,典型的做法是使用高度非线性函数进行拟合,即 Q ∗ ( s i , a i ) ≈ Q ( s , a ; θ ) Q^{*}(s_i,a_i)\approx Q(s,a;\theta) Q∗(si,ai)≈Q(s,a;θ),因此DQN提出,使用参数为 θ \theta θ的神经网络作为Q网络。通过最小化均方损失函数来学习,如下所示:
L ( θ ) = E { ( s i , a i , r i , s i + 1 ) } [ ( y i − Q ( s i , a i ; θ ) ) 2 ] y i = r i + γ max a i + 1 Q ( s i + 1 , a i + 1 ; θ ) \begin{aligned} L(\theta) & =\mathbb{E}_{\left\{\left(s_i, a_i, r_i, s_{i+1}\right)\right\}}\left[\left(y_i-Q\left(s_i, a_i ; \theta\right)\right)^2\right] \\ y_i & =r_i+\gamma \max _{a_{i+1}} Q\left(s_{i+1}, a_{i+1} ; \theta\right) \end{aligned} L(θ)yi=E{
(si,ai,ri,si+1)}[(yi−Q(si,ai;θ))2]=ri+γai+1maxQ(si+1,ai+1;θ)
其中 { ( s i , a i , r i , s i + 1 ) } \{(s_i, a_i, r_i, s_{i+1})\} {(si,ai,ri,si+1)}是历史数据,存储在时间排序的大内存缓冲区中,通过对损失函数求导,梯度更新可以写为:
∇ θ L ( θ ) = E { ( s i , a i , r i , s i + 1 ) } [ ( r i + γ max a i + 1 Q ( s i + 1 , a i + 1 ; θ ) − Q ( s i , a i ∣ θ ) ) ∇ θ Q ( s i , a i ∣ θ ) ] \begin{aligned} \nabla_\theta L(\theta)= & \mathbb{E}_{\left\{\left(s_i, a_i, r_i, s_{i+1}\right)\right\}}\left[\left(r_i+\gamma \max _{a_{i+1}} Q\left(s_{i+1}, a_{i+1} ; \theta\right)-Q\left(s_i, a_i \mid \theta\right)\right) \nabla_\theta Q\left(s_i, a_i \mid \theta\right)\right] \end{aligned} ∇θL(θ)=E{
(si,ai,ri,si+1)}[(ri+γai+1maxQ(si+1,ai+1;θ)−Q(si,ai∣θ))∇θQ(si,ai∣θ)]
III. OVERVIEW
上图展示了整个框架,一个状态的表征包括工人 w i w_i wi和可用的任务集合,输入到状态Transformer中得到,即 f s i = S t a t e T r a n s f o r m e r [ f w i , f T i ] f_{s_i}=StateTransformer[f_{w_i}, f_{T_i}] fsi=StateTransformer[fwi,fTi]。
接着把 f s i f_{s_i} fsi输入到两个深度Q网络中,Q-network(w)和Q-network®,分别考虑工人和请求者的收益。作者使用聚合器和平衡器将两个收益结合起来生成最终的动作赋予 w i w_i wi。
工人被分配一项任务时,可以选择完成或者跳过。如果工人看到一系列任务,我们假设他遵循级联模型浏览任务列表,并完成第一个感兴趣的任务。反馈是已经完成的任务和未完成的推荐任务。
由于MDP(w)和MDP®的奖励定义不同,我们使用两个反馈Transformer来量化工人的反馈。基于历史数据统计,两个未来状态预测器分别用于Q-Network(w)和Q-Network®。
如果动作是分配任务,保存转移 ( s i , a i , r i , s i + 1 ) (s_i,a_i,r_i,s_{i+1}) (si,ai,ri,si+1)到存储空间中。如果动作是推荐任务列表,反馈包括已完成的任务和未完成的建议任务。此时存储成功的转移 ( s i , a i , r i , s i + 1 ) (s_i,a_i,r_i,s_{i+1}) (si,ai,ri,si+1)以及失败的转移 ( s i , a i , 0 , s i + 1 ) (s_i,a_i,0,s_{i+1}) (si,ai,0,si+1),二者的 a i a_i ai不同。每次存储转移时都会更新两个Q网络,获得最优的策略。
IV. MODULES FOR MDP(W)
A. Feature Construction
任务 t j t_j tj**的特征:**众包场景下前三动机是报酬、任务自主性和技能多样性,因此特征采用奖励、类别和领域。使用one-hot编码来转换类别和域。然后将这三者连接到一起获得任务的特征向量。
工人 w j w_j wj**的特征:**由工人最近完成的任务所决定。
B. State Transformer and Q Network
1) Challenges
可用任务难以表征,因为任务是动态的,数量难以确定,并且建模的模型应该是排列不变的(permutation invariant),即不受任务顺序的影响。
一些基于DQN的方法单独为任务和工人进行建模,但是忽略了所有可用任务之间的关系。事实上任务之间是会相互竞争产生影响的。因此需要为可用的任务设计新颖的表示。
2) Design
作者设计的状态Transformer和Q网络如上所示。首先将所有可用任务和工人的特征concatenate起来,并设置最大长度,不足用zero padding填充。 接着输入到线性层和多头注意力机制中将表征 f s i f_{s_i} fsi映射为Q值,这可以保证排列不变性。线性层计算如下:
r F F ( X ) = r e l u ( X W + b ) \mathrm{rFF}(X)=\mathrm{relu}(XW+b) rFF(X)=relu(XW+b)
注意力层的结构如图四所示,它的输入是三个矩阵 X 1 , X 2 , X 3 X_1,X_2,X_3 X1,X2,X3,计算:
A t t ( X 1 , X 2 , X 3 ) = s o f t m a x ( X 1 X 2 T d X 3 ) \mathrm{Att}(X_1,X_2,X_3)=\mathrm{softmax}(\frac{X_1X_2^{T}}{\sqrt{d}}X_3) Att(X1,X2,X3)=softmax(dX1X2TX3)
多头注意力层将三个矩阵投影到 h h h个不同的矩阵中。输出是所有注意力输出串联的线性变换。
MultiHead ( X 1 , X 2 , X 3 ) = Concat ( head 1 , … , head h ) W O where head i = Att ( X 1 W i X 1 , X 2 W i X 2 , X 3 W i X 3 ) \begin{aligned} & \operatorname{MultiHead}\left(X_1, X_2, X_3\right)=\operatorname{Concat}\left(\text { head }_1, \ldots, \text { head }_h\right) W^O \\ & \text { where head }_i=\operatorname{Att}\left(X_1 W_i^{X_1}, X_2 W_i^{X_2}, X_3 W_i^{X_3}\right) \\ & \end{aligned} MultiHead(X1,X2,X3)=Concat( head 1,…, head h)WO where head i=Att(X1WiX1,X2WiX2,X3WiX3)
附录有对线性层和多头自注意力层的排列不变的证明。
接下来是Q网路的设计。输入 f s i f_{s_i} fsi是任务 t j t_j tj和工人 w i w_i wi的特征,前两个rFF层用于将任务-工人特征转换为高维特征,接着使用多头注意力机制来计算不同任务工作者特征的成对交互,再加上rFF层有助于保持网络稳定,接着又是一层自注意力层,最后的rFF层将每个元素的特征简化为一个值,用于表示 Q ( s i , t j ) Q(s_i,t_j) Q(si,tj)。由于排列不变性,无论 t i t_i ti顺序如何, Q ( s i , t j ) Q(s_i,t_j) Q(si,tj)都不会改变。
C. Action A, Feedback and Reward R
报酬驱动的工人目标是找到单位时间任务的高奖励,而兴趣驱动的工人则希望完成符合自己兴趣的任务。本文的任务是让不同类型的工人各取所需,最大化推荐任务的完成率。
如果平台分配一个任务,选择 a i = t i a_i=t_i ai=ti满足 Q ( s i , t i ) Q(s_i,t_i) Q(si,ti)。作者假设工人遵循级联模型查看任务列表,因此平台推荐的任务应该是按照 Q ( s i , t i ) Q(s_i,t_i) Q(si,ti)降序排列的任务列表。
对于反馈和奖励,当动作是单任务时,选择为1,拒绝为0.如果动作是k个任务的列表时,对于完成的那一项任务,奖励为1,其余为0。
D. Future State, Memory Storer, and Learner
1) Challenges
下一个状态 s i + 1 s_{i+1} si+1是同一个工人 w i w_{i} wi再次来到的时间戳。因此接收 r i r_{i} ri和未来状态 s i + 1 s_{i+1} si+1的时间戳是不同的,并且一个工人再次来到可能隔了很长时间,但是Q网络中的参数被所有工人共享,因此新的更新可能会降低性能。
因此作者设计了predicor(w),通过获取 ( s i , a i ) (s_i,a_i) (si,ai)反馈和奖励来预测转移概率 P r ( s i + 1 ∣ s i , a i , r i ) Pr(s_{i+1}|s_i,a_i,r_i) Pr(si+1∣si,ai,ri)和未来状态 f s i + 1 f_{s_{i+1}} fsi+1。这让框架满足在线更改和实时交互的要求。
2) Design
首先,所有工人的特征需要由 r i r_i ri更新。
其次, T i T_i Ti和 T i + 1 T_{i+1} Ti+1的改变主要来自于完成过的任务。
T i m e i + 1 \mathrm{Time}_{i+1} Timei+1是随机的,需要从环境中学习其分布。根据历史数据可以发现,同一个工人的到来存在一个规律,如下图所示:
可以看到,工人要不很短时间再次到来,要不就是一两天后。为了捕获这个模式,作者维护一个函数 ϕ ( g ) \phi(g) ϕ(g),其中 g g g是时间间隙,而 ϕ ( g = C u r r e n t T i m e − T i m e O f L a s t A r r i v a l w ) \phi(g=\mathrm{CurrentTime-TimeOfLastArrival}_w) ϕ(g=CurrentTime−TimeOfLastArrivalw)是工人 w w w当前是否再次到来的概率。其中对g设置了范围, g ∈ [ 1 , 10080 ] g \in [1, 10080] g∈[1,10080],超过范围的忽略不计。 ϕ ( g ) \phi(g) ϕ(g)通过历史数据初始化,并根据新样本迭代更新。
最终 T i m e i + 1 \mathrm{Time}_{i+1} Timei+1的分布为 T i m e i + ϕ ( g ) \mathrm{Time}_{i}+\phi(g) Timei+ϕ(g)。
学习器通过内存中存储的转移更新Q网络的参数,损失函数可以写为:
L ( θ ) = E { ( s i , a i , r i ) } [ ( y i − Q ( s i , a i ; θ ) ) 2 ] y i = r i + γ ∑ g Pr ( s i + 1 ∣ g ) max a i + 1 Q ( s i + 1 , a i + 1 ; θ ) \begin{aligned} L(\theta) & =\mathbb{E}_{\left\{\left(s_i, a_i, r_i\right)\right\}}\left[\left(y_i-Q\left(s_i, a_i ; \theta\right)\right)^2\right] \\ y_i & =r_i+\gamma \sum_g \operatorname{Pr}\left(s_{i+1} \mid g\right) \max _{a_{i+1}} Q\left(s_{i+1}, a_{i+1} ; \theta\right) \end{aligned} L(θ)yi=E{
(si,ai,ri)}[(yi−Q(si,ai;θ))2]=ri+γg∑Pr(si+1∣g)ai+1maxQ(si+1,ai+1;θ)
其中 Pr ( s i + 1 ∣ g ) = ϕ ( g ) \operatorname{Pr}\left(s_{i+1} \mid g\right) =\phi(g) Pr(si+1∣g)=ϕ(g)。事实上, max a i + 1 Q ( s i + 1 , a i + 1 ; θ ) \max _{a_{i+1}} Q\left(s_{i+1}, a_{i+1} ; \theta\right) maxai+1Q(si+1,ai+1;θ)不需要对每个g都要计算,因为这个值会随着任务过期而改变,因此最多计算 m a x T max_T maxT次。
这里作者还使用DDQN算法防止Q值过高估计。即两个相同结构的Q网络 Q Q Q和 Q ~ \tilde{Q} Q~,评估动作的式子如下:
y i = r i + γ ∑ g Pr ( s i + 1 ∣ g ) Q ~ ( s i + 1 , arg max a i + 1 Q ( s i + 1 , a i + 1 ∣ θ ) ∣ θ ~ ) y_i=r_i+\gamma \sum_g \operatorname{Pr}\left(s_{i+1} \mid g\right) \widetilde{Q}\left(s_{i+1}, \arg \max _{a_{i+1}} Q\left(s_{i+1}, a_{i+1} \mid \theta\right) \mid \widetilde{\theta}\right) yi=ri+γ∑gPr(si+1∣g)Q
(si+1,argmaxai+1Q(si+1,ai+1∣θ)∣θ
)
梯度下降可写为:
∇ θ L ( θ ) = E { ( s i , a i , r i ) } [ r i + γ ∑ g Pr ( s i + 1 ∣ g ) Q ~ ( s i + 1 , arg max a i + 1 Q ( s i + 1 , a i + 1 ∣ θ ) ∣ θ ~ ) − Q ( s i , a i ) ] ∇ θ Q ( s i , a i ) \begin{aligned} & \nabla_\theta L(\theta)=\mathbb{E}_{\left\{\left(s_i, a_i, r_i\right)\right\}}\left[r_i+\gamma \sum_g \operatorname{Pr}\left(s_{i+1} \mid g\right)\right. \\ & \left.\quad \widetilde{Q}\left(s_{i+1}, \arg \max _{a_{i+1}} Q\left(s_{i+1}, a_{i+1} \mid \theta\right) \mid \widetilde{\theta}\right)-Q\left(s_i, a_i\right)\right] \nabla_\theta Q\left(s_i, a_i\right) \end{aligned} ∇θL(θ)=E{
(si,ai,ri)}[ri+γg∑Pr(si+1∣g)Q
(si+1,argai+1maxQ(si+1,ai+1∣θ)∣θ
)−Q(si,ai)]∇θQ(si,ai)
V. MODULES FOR MDP®
A. Feature Construction
作者还使用工人和任务的质量预测请求者的收益。采用Dixit-Stiglitz偏好模型根据边效应计算任务的质量 q t j q_{t_j} qtj,即任务的质量会随着完成数量的增加,其质量的变动幅度会越来越小:
q t j = ( ∑ i ∈ I t j ( q w i ) p ) 1 / p , p ≥ 1. q_{t_j}=(\sum_{i \in I_{t_j}}(q_{w_i})^p)^{1/p}, p \ge1. qtj=(∑i∈Itj(qwi)p)1/p,p≥1.
其中p控制增加的边际效用。
B. State Transformer and Q Network
状态Transformer和Q网络和W模块相同,只需要将两个维度( q w i q_{w_i} qwi和 q t j q_{t_j} qtj)添加到输入中。
C. Action A, Feedback and Reward R
动作也是和之前相同,如果分配一个任务,选取最大化 Q r ( s i , t i ) Q_r(s_i,t_i) Qr(si,ti)的那个动作,如果是推荐一个列表,列表按照 Q r ( s i , t i ) Q_r(s_i,t_i) Qr(si,ti)大小排序。从请求者角度来看,目标是在任务截止日期之前尽可能获得高质量的结果。
D. Future State, Memory Storer and Learner
1) Challenges
和MDP(w)不同,MDP®中下一个到来的工人会更快。但是作者发现当使用真正的工人 w i + 1 w_{i+1} wi+1和 T i + 1 T_{i+1} Ti+1去结合状态 s i + 1 s_{i+1} si+1时,DQN很难收敛。变化的下一个工人让不同的状态和转移矩阵变得稀疏,导致转换概率和收敛的不确定性。因此采用下一个工人的期望而不是真正的下一个工人来训练Q-network®。
2) Design
得到 ( s i , a i ) (s_i,a_i) (si,ai)的反馈和奖励后,首先更新工人的特征 f w i f_{w_i} fwi,此外还需要更新已经完成任务特征中的质量,任务的质量受到所有工人的影响。未来状态预测器不但需要估计下一个时间戳并检查过期任务,同时必须预测下一个工人。
首先解释如何预测 T i m e i + 1 Time_{i+1} Timei+1。
上图展示了两个连续到达之间的时间间隔分布,满足长尾分布,意味着工人到达平台完成任务还是很频繁的。此外作者还维护了一个函数 φ ( g ) \varphi(g) φ(g),g和Q-network(w)中的一样,代表时间间隔, φ ( g ) \varphi(g) φ(g)表示在时间间隔g下下一个工人到达的概率。 φ ( g ) \varphi(g) φ(g)也是根据历史数据进行构建,并且在随着新样本的到来迭代更新。
知晓 T i m e i + 1 Time_{i+1} Timei+1后,可以计算到来工人的分布。当前知道了工人的特征 f w f_w fw,当前工人的时间gap ϕ ( g w ) \phi(g_w) ϕ(gw),作者使用老工人的特征来表征新工人。最后对即将到来的工人进行归一化、积分获得概率:
Pr ( w i + 1 = w ) = { ( 1 − p new ) ϕ ( g w ) ∑ w ′ ∈ W old ϕ ( g w ′ ) when w ∈ W old p new when w is new \operatorname{Pr}\left(w_{i+1}=w\right)= \begin{cases}\left(1-p_{\text {new }}\right) \frac{\phi\left(g_w\right)}{\sum_{w^{\prime} \in W^{\text {old }}} \phi\left(g_{w^{\prime}}\right)} & \text { when } w \in W^{\text {old }} \\ p_{\text {new }} & \text { when } w \text { is new }\end{cases} Pr(wi+1=w)={
(1−pnew )∑w′∈Wold ϕ(gw′)ϕ(gw)pnew when w∈Wold when w is new
给定 g g g和 w i + 1 w_{i+1} wi+1,计算 T i + 1 T_{i+1} Ti+1和 s i + 1 s_{i+1} si+1,对于 l e a r n e r ( r ) learner(r) learner(r),我们的损失函数写为:
L ( θ ) = E { ( s i , a i , r i ) } [ ( y i − Q ( s i , a i ; θ ) ) 2 ] y i = r i + γ ∑ g ∑ w i + 1 Pr ( s i + 1 ∣ g , w i + 1 ) Q ~ ( s i + 1 , arg max a i + 1 Q ( s i + 1 , a i + 1 ∣ θ ) ∣ θ ~ ) \begin{aligned} L(\theta) & =\mathbb{E}_{\left\{\left(s_{i}, a_{i}, r_{i}\right)\right\}}\left[\left(y_{i}-Q\left(s_{i}, a_{i} ; \theta\right)\right)^{2}\right] \\ y_{i} & =r_{i}+\gamma \sum_{g} \sum_{w_{i+1}} \operatorname{Pr}\left(s_{i+1} \mid g, w_{i+1}\right) \widetilde{Q}\left(s_{i+1}, \arg \max _{a_{i+1}} Q\left(s_{i+1}, a_{i+1} \mid \theta\right) \mid \widetilde{\theta}\right) \end{aligned} L(θ)yi=E{
(si,ai,ri)}[(yi−Q(si,ai;θ))2]=ri+γg∑wi+1∑Pr(si+1∣g,wi+1)Q
(si+1,argai+1maxQ(si+1,ai+1∣θ)∣θ
)
其中 P r ( s i + 1 ∣ g , w i + 1 ) = φ ( g ) P r ( w i + 1 ∣ g ) Pr\left(s_{i+1} \mid g, w_{i+1}\right)=\varphi(g)Pr(w_{i+1}|g) Pr(si+1∣g,wi+1)=φ(g)Pr(wi+1∣g),相应的,梯度下降为:
∇ θ L ( θ ) = E { ( s i , a i , r i ) } [ r i + γ ∑ g ∑ w i + 1 Pr ( s i + 1 ∣ g , w i + 1 ) Q ~ ( s i + 1 , arg max a i + 1 Q ( s i + 1 , a i + 1 ∣ θ ) ∣ θ ~ ) − Q ( s i , a i ) ] ∇ θ Q ( s i , a i ) \begin{aligned} & \nabla_\theta L(\theta)=\mathbb{E}_{\left\{\left(s_i, a_i, r_i\right)\right\}}\left[r_i+\gamma \sum_g\sum_{w_{i+1}} \operatorname{Pr}\left(s_{i+1} \mid g, w_{i+1}\right)\right. \\ & \left.\quad \widetilde{Q}\left(s_{i+1}, \arg \max _{a_{i+1}} Q\left(s_{i+1}, a_{i+1} \mid \theta\right) \mid \widetilde{\theta}\right)-Q\left(s_i, a_i\right)\right] \nabla_\theta Q\left(s_i, a_i\right) \end{aligned} ∇θL(θ)=E{
(si,ai,ri)}[ri+γg∑wi+1∑Pr(si+1∣g,wi+1)Q
(si+1,argai+1maxQ(si+1,ai+1∣θ)∣θ
)−Q(si,ai)]∇θQ(si,ai)
但是计算所有 g g g和 w i + 1 w_{i+1} wi+1可能的Q值需要耗费大量的时间,有两种加速方法。一种方法是限制可能的工人个数,剔除出现概率较低的工人。另一种方法是使用所有可能工人的特征期望而不是计算出它们。下一个工人的特征期望为 f ˉ w i + 1 = ∑ w i + 1 P r ( w i + 1 ∣ g ) f w i + 1 \bar{f}_{w_{i+1}}=\sum_{w_{i+1}}Pr(w_{i+1}|g)f_{w_{i+1}} fˉwi+1=∑wi+1Pr(wi+1∣g)fwi+1,未来状态特征的期望为 f ˉ s i + 1 = [ f ˉ w i + 1 , f T i + 1 ] \bar{f}_{s_{i+1}}=[\bar{f}_{w_{i+1}},f_{T_{i+1}}] fˉsi+1=[fˉwi+1,fTi+1]。
VI. INTEGRATION OF MDP(W) AND MDP®
A. Aggregator and Balancer
基于Q-network(w)和Q-network®,我们获得了每个可用任务的 Q w ( s i , t j ) Q_w(s_i,t_j) Qw(si,tj)和 Q r ( s i , t j ) Q_r(s_i,t_j) Qr(si,tj),对二者进行加权得到 Q ( s i , t j ) = w Q w ( s i , t j ) + ( 1 − w ) ( s i , t j ) Q(s_i,t_j)=wQ_w(s_i,t_j)+(1-w)(s_i,t_j) Q(si,tj)=wQw(si,tj)+(1−w)(si,tj)。
B. Explorer
最简单的强化学习探索策略是 ϵ \epsilon ϵ-greedy。即以 ϵ \epsilon ϵ的概率随机挑选任务, 1 − ϵ 1-\epsilon 1−ϵ的概率遵循Q值大小推荐任务列表,但是这种方式只适合推荐一个任务,多任务场景由于过于随机导致表现不佳。本文并不是直接忽略Q值,而是以 ϵ \epsilon ϵ的概率向Q值中加入随机变量 v v v。 v v v满足均值为0,方差和Q值相同的正态分布,此外,作者还使用衰减因子乘以标准差,以在Q网络相对成熟时减少随机性。
VII. EXPERIMENTS
A. Experimental Settings
1) Dataset
本文数据从商业众包平台CrowdSpring收集的真实数据,作者爬取了2018年1月到2019年1月的所有公共任务信息。数据详细信息包括开始日期、截止日期、类别、子类别、域和完成该任务的工人之间的关系。下图显示了每个月新任务和过期任务,以及每月到达的工人数量和他们可以选择去完成的任务数量。
此外还合成一个数据集用于考虑工人的到达密度、工人的质量分布。
评估指标如下。
2) Evaluation Measures
工人利益:
- Worker Completion Rate(CR):对于平台推荐的任务,工人的累积完成率,即:
C R = ∑ i y i j n u m b e r o f t o t a l t i m e s t a m p s CR=\frac{\sum_i y_{ij}}{\mathrm{number\, of \,total\,timestamps}} CR=numberoftotaltimestamps∑iyij
- nDCG-CR:评估推荐一系列任务。
n D C G − C R = ∑ i ∑ r = 1 n i 1 log ( 1 + r ) y i j r number of total timestamps n D C G-C R=\frac{\sum_{i} \sum_{r=1}^{n_{i}} \frac{1}{\log (1+r)} y_{i j_{r}}}{\text { number of total timestamps }} nDCG−CR= number of total timestamps ∑i∑r=1nilog(1+r)1yijr
- Top-k Completion Rate (kCR):限制推荐列表的排序长度,并且工人完成第一个任务:
K C R = ∑ i ∑ r = 1 k 1 log ( 1 + r ) y i j r number of total timestamps KCR=\frac{\sum_{i} \sum_{r=1}^{k} \frac{1}{\log (1+r)} y_{i j_{r}}}{\text { number of total timestamps }} KCR= number of total timestamps ∑i∑r=1klog(1+r)1yijr
请求者利益:
- Task Quality Gain(QG):计算任务质量的累积增益。
Q C = ∑ i g i j = ∑ i q t j n e w − q t j o l d QC=\sum_ig_{ij}=\sum_i q_{t_j}^{\mathrm{new}}-q_{t_j}^{\mathrm{old}} QC=∑igij=∑iqtjnew−qtjold
- nDCG-QG:和nDCG-CR相同,为任务的排名赋予不同权重。
n D C G − Q G = ∑ i ∑ r = 1 n i 1 log ( 1 + r ) y i j r g i j r n D C G-QG=\sum_{i} \sum_{r=1}^{n_{i}} \frac{1}{\log (1+r)} y_{i j_{r}}g_{i j_{r}} nDCG−QG=∑i∑r=1nilog(1+r)1yijrgijr
- Top-k Task Quality Gain (kQG):类似的,将推荐列表限制为k个任务。、
K Q G = ∑ i ∑ r = 1 k 1 log ( 1 + r ) y i j r g i j r KQG=\sum_{i} \sum_{r=1}^{k} \frac{1}{\log (1+r)} y_{i j_{r}}g_{i j_{r}} KQG=∑i∑r=1klog(1+r)1yijrgijr
3) Competitors
本文的方法与五种其它方法进行了对比。
- Random:随机挑选任务。
- Taskrec (PMF):一个基于统一概率矩阵分解的众包系统任务推荐框架。只考虑工人利益。
- SpatialUCB/LinUCB:在在线空间任务分配中采用线性置信上界算法。
- Greedy+Cosine Similarity:将工人和任务特征之间的余弦相似度视为完成率,根据完成率贪心选择或排序任务。
- Greedy+Neural Network:将工人和任务特征输入到两个隐藏层的神经网络中以预测完成率。
- DDQN:本文框架。
B. Experimental Results (real dataset)
1) Implementation details
默认认为工人会浏览所有可用任务,因此剩余任务会被认为是不感兴趣的。
按照任务创造时间、过期时间以及工人到达时间对数据集进行排序。为了解决工人的冷启动问题,采用他们完成的前五个任务来初始化他们的功能。
其它超参数设置详见原文。
2) Considering the benefit of workers
上图显示了每个月末每种方法的QR、kQR和nDCG-QR。Random结果最差,Taskrec性能不佳原因是它只使用了任务和工作人员的类别,忽略了其它信息。Greedy CS由于只计算工人和任务之间的相似度,性能也很差。Greedy NN由于只考虑即时的奖励,性能也不佳。LinUCB利用了工人和任务的信息,在每个工人反馈后更新参数,所以性能仅次于DDQN。DDQN不仅使用神经网络对工人和任务之间的复杂关系进行建模,而且还预测当前和未来的奖励并在每个工人反馈后更新参数。因此,DDQN 优于所有竞争对手。
3) Considering the benefit of requesters
下图显示了每个月任务单独质量的增益。
可以发现增益并没有持续增加,这是与每个月工人的请求数量有关。随机方法仍然最差,Greedy CS也无法推荐由工人完成增益较高的任务。Greedy NN和LinUCB表现类似,DDQN仍是最好的模型。
4) Balance of benefits
上图是加权增益的结果, w w w分别设置为0,0.25,0.5,0.75和1.0,可以发现,QG在0——0.25范围变化很小,CR在0.25——1的范围变化很小,因此权重设置为0.25是最为合适的。
5) Efficiency
Table I显示了每种方法的更新时间,强化学习的模型平均更新时间在毫秒级,满足实时性要求。
C. Experimental Results (synthetic dataset)
略。
VIII. RELATED WORK
A. Reinforcement learning and deep reinforcement learning
RL学习让智能体如何在未知环境中采取一系列动作,环境被建模为马尔科夫决策过程,智能体需要在探索和已知知识之间进行权衡。RL可以分为三类:
- model-fere
- model-based
- policy Search
本文利用model-free的方法使用贝尔曼backups迭代估计Q函数。
B. Task Recommendation and Assignment in Crowdsourcing
略。
IX. CONCLUSIONS
本文提出了一个在众包场景新颖的强化学习框架,用于任务安排。同时考虑了工人和请求者的利益,实现了平台利益最大化。采用深度Q网络与状态、行为、奖励、状态转换、未来状态的新颖表示结合,导出Q值的修订方程,实验结果验证了框架的有效性。
对于当前的模型有两种改进方法,一种是替换当前方法为深度确定性策略梯度,可以将任务列表映射到连续的动作空间,获得更准确的排序。另一个问题是两个工人同时来到的冲突问题,对于已分配但未完成的任务也要考虑进来。
阅读总结
由于强化学习相关知识不足,导致阅读起来还是有些困难,全文读下来,我认为在特征构建部分还是很值得借鉴的,整个特征构建的思路十分清晰,但是在实验部分,首先加权Q值的权重只考虑了5个值,不够严谨,选取对比的模型过于老套,以及本文使用的DDQN也是比较落后的模型,可以采用更新的模型去做,实验效果有待商榷,因为实验部分random的效果超过了10%,但是事实上每个状态有超过50个动作,只有1个动作是正确的,所以应该是不超过2%的,这里显然不太严谨。以及实验测试了所有12个月的结果,这样一定会有信息泄露的问题。