业务问题:time-insensitive notifications to determine the best delivery times towards long-term engagement(one week)
解决这个问题面临的挑战:
其他常规方法的局限性:
本文用强化学习应对上述问题:
确定方法:Offline RL
核心是如何构造MDP:,其中S为状态空间,A为动作空间,P为状态转移模型,R为收益函数,为折扣系数
本文使用Double DQN(efficient offline policy learning)
Q-Learning -> DQN -> Double DQN: 训练样本都是
Q-learning:维护一个Q_table,核心是更新Q值
DQN:用神经网络代替Q_table,评估某个状态的收益,核心是更新神经网络的参数
训练时,有两个神经网络,评估网络和目标网络,隔一段时间就将评估网络的权重赋给目标网络,核心就是更新评估网络的参数
通过评估网络得到
通过目标网络得到,
神经网络训练的目标就是缩小和的差距
Double DQN:的计算逻辑有所改变
通过评估网络得到和
通过目标网络得到,
神经网络训练的目标就是缩小和的差距
在部署到线上之前,利用线上的数据对学习的policy进行离线评估(accurate offline policy evaluation)
估计什么:某个策略的总期望收益
怎么估计:
为什么需要从数据中估计:一般情况下是不知道和的
离线估计面临的挑战:
Action Trajectory Based Weighting:根据马尔可夫的性质进行化简,利用policy下观察到的动作序列的概率即可估计,
One-Step Correction based Weighting:只取t时间步在状态的条件下动作的概率即可,
State Marginalized Weighting(本文使用):
利用t时间步上的概率和在执行动作的条件下状态的概率进行估计,
这种方法下,为了应对状态空间维度过大所做的优化:
用来证明离线评估的重要性及哪种离线评估方法好
Environment & Transition process:
模拟用户访问:badge count & user activeness
生成notification candidates
State:
Actions:SEND & NOT-SEND
Reward:
实验1: 不同超参下的policy以及baseline的比较(the online evaluation distribution in the simulation environment)
结论1: 离线的评估是必要的——学习的policy不一定超过baseline
实验2: 三种离线评估方法的比较,看在模拟环境中与在线评估的误差
结论2: State Marginalized Weighting更合适
线上如何使用:用户的通知序列每几个小时评估一次,决定是否发送TOP通知
如何利用线上数据进行训练:
结论1: 线上效果好
结论2: 本文的离线强化学习训练和评估框架提升了迭代速度,离线评估得到的policy可直接部署到线上
PS:本文大部分公式都来自于Offline Reinforcement Learning for Mobile Notifications,有理解不对的地方,欢迎指正