一、背景介绍
人岗匹配系统是e成HR saas 服务的重要组成部分,主要场景是HR创建职位描述(job description,简称jd)后,从人才库或者用户主动投递的简历中通过匹配,排序得到最合适该jd的简历列表(cv list)。
人岗匹配的价值在于提高HR search人才的效率,这个场景可以看做用户输入query为jd长文本的搜索引擎,因此排序是这个系统最重要的一环,而基于用户反馈数据的LTR(learning to rank)算法已经被广泛地应用于各类排序问题。然而,LTR是基于当前线上展示结果的行为数据优化而得到的,受本身排序策略的影响,我们有大量的样本是没有被展现或者低频展现,所以LTR并不是真正的全局最优。
用户在浏览匹结果的过程中的行为会包括浏览、点击、邀约、翻页、离开这四个动作,而如何让机器和用户交互的过程中通过这些行为数据优化序列决策问题使得累积收益(Accumulative Rewards)最大,需要应用强化学习(Reinforcement Learning)来解决,后续第二部分介绍我们业务场景下的MDP(Markov Decision Process)建模过程。
二、问题建模
HR在系统中搜寻简历的行为不同于通用的搜索引擎,在通用的搜索引擎一般来说用户在越靠前的位置找到满意的结果系统的效果越好,而在我们的场景下,评价效果的好坏在于用户能够翻页搜寻到越多合适的人才,因此,我们对reward的定义需要调整。
马尔可夫决策过程(Markov Decision Process,MDP)是强化学习基本模型。MDP可以由一个四元组<S, A, R, T>表示:(1)S为状态空间(State Space);(2)A为动作空间(Action Space);(3)R为reward;(4)T为状态转移
1. S: 状态包括用户目前所处的pageno以及目前在每一页用户历史行为(邀约、点击等)所对应简历的所组成的特征向量
2. A: 通常情况下有两种类型:1) 通过rank function得到每个结果的score
2) 直接通过list-wise的方法得到最优的排序,我们采用前者
3. R: 在人岗匹配的场景下,HR邀约简历并面试通过给予offer的reward设为roffer ,仅仅邀约面试为rinvite,点击行为 rclick,翻页行为为rturn-page (由于用户在这个场景下需要搜寻更多合适的简历,所以翻页 行为代表目前的效果尚可有兴趣继续搜寻),其中
roffer> rinvite >rclick> rturn-page
然而对于没有任何行为的页面rnon-action和离开rabandon 的行为应当认为负向收益最后当前页面下的reward为:R=Σroffer + Σrinvite + Σrclick + rturn-page - rnon-action - rabandon
三、模型训练
- T : 主要为P(s,a),即agent在状态s下采取行动a后的状态转移概率
由于我们的action空间较大,单纯使用value-based的方法,例如Q-learning等不太适合我们的场景,而策略迭代的方法存在高方差,收敛速度慢的问题,因此我们使用actor-critic的方法
我们使用DDPG的基本框架,其中cirtic网络估计当前状态下采用action a所得到的Q,同Q-learning的方法,采用regression方法预估,使用MSE作为loss function:
对于actor网络
Critic网络不断优化自己对Q(s,a)的估计,Actor通过Critic的判断的梯度,求解更好的策略函数。如此往复,直到Actor收敛到最优策略的同时,Critic收敛到最准确的Q(s,a)估计。