今日头条推出强化学习新成果:首次改进DQN网络,解决推荐中的在线广告投放问题

2019 年 10 月 15 日

今日头条推出强化学习新成果:首次改进DQN网络,解决推荐中的在线广告投放问题

本文来自“深度推荐系统”专栏,这个系列将介绍在深度学习的强力驱动下,给推荐系统工业界所带来的最前沿的变化。本文主要介绍今日头条推出的强化学习应用在推荐的最新论文[1],首次改进DQN网络以解决推荐中的在线广告投放问题。


背景介绍


随着最近 RL 研究的火热,在推荐平台上在线广告投放策略中如何利用 RL 引起了大家极大的兴趣。然而,大部分基于 RL 的在线广告投放算法只聚焦于如何使广告收益最大化,却忽略了广告对推荐列表的用户体验可能会带来的负面影响。在推荐列表中不适当地插入广告或者插入广告太频繁都会损害推荐列表的用户体验,与此同时插入太少的广告又会减少广告收入。


因此本文提出了一种全新的广告投放策略来平衡推荐用户体验以及广告的收入。在给定推荐列表前提下,本文提出了一种基于 DQN 的创新架构来同时解决三个任务:是否插入广告;如果插入,插入哪一条广告;以及插入广告在推荐列表的哪个位置。实验也在某短视频平台上验证了本文算法的效果。



DQN 架构


在深入本文具体的算法架构前,我们先来简单回顾下 DQN 的两种经典结构:


  • 图a的DQN接受的输入是state,输出是所有可能action对应的Q-value;

  • 图b的DQN接受的输入是state以及某一个action,输出是对应的Q-value。


这两种经典架构的最主要的问题是只能将 action 定义为插入哪一条广告,或者插入广告在列表的哪个位置,无法同时解决上述提到的三个任务。



当然,从某种程度上来说将插入位置与插入哪一条广告通过某种表示形式譬如 one-hot 编码来建模 action 是一种使用上述经典 DQN 的方式,这样的话 action 的空间会变成 O(A*L),其中 A 是广告的空间,L 是插入列表的位置空间。这样的复杂度对于实际线上的广告系统是不太能够接受的。


改进的 DEAR 架构


因此,本文提出了一种改进的 DQN 框架 DEAR 用来解决上述推荐系统中在线广告投放问题。该框架试图同时解决上述提到的三个任务。也就是说,本框架会同时针对所有可能的插入位置的 Q-value 进行预估。


如下左图所示,其实是融合了上述提到了两种经典 DQN 结构的结合,输入层包含 State 以及 Action(插入哪条广告),输出层则是广告插入推荐列表的 L+1 位置对应的 Q-value(假设推荐列表长度为 L,则可以插入广告的位置为 L+1 种可能)。与此同时,使用一个特殊插入位置 0 用来表示不进行广告插入,因此输出层的长度扩展成为 L+2。


DEAR 框架详细的架构如下右图所示,输出层 Q 函数被拆解成两部分:只由 state 决定的 V 函数;以及由 state 和 action 同时决定的 A 函数。其中,


  • state包含了使用GRU针对推荐列表和广告进行用户序列偏好建模的p;当前用户请求的上下文信息c;以及当前请求展示的推荐列表item的特征进行拼接转换形成的低维稠密向量rec;

  • action则包含两部分:一部分是候选插入广告ad的特征;另一部分则是广告插入的位置;其中这里的前半部分会被当做输入层。



  • reward函数。Reward函数也包含两部分:一部分是广告的的收入r^ad;另一部分则是用户是否继续往下刷的奖励。基于下图的reward函数,最优的Q函数策略便可以通过Bellman等式求得。



Off-Policy 训练


本文基于用户交互历史的离线日志,采用 Off-policy 的方式进行训练得到最优的投放策略。如下图所示,针对每一次迭代训练:


  • (第6行)针对用户请求构建state;

  • (第7行)根据标准的off-policy执行action,也就是选取特定ad;

  • (第8行)根据设计好的reward函数,计算reward;

  • (第10行)将状态转移信息(s_t,a_t,r_t,s_t+1)存储到replay buffer;

  • (第11行)从replay buffer中取出mini-batch的状态转移信息,来训练得到最优的Q函数参数。



实验


由于没有同时包含推荐列表和广告 item 的公开数据集,本文基于从某短视频网站获取的自 2019 年 3 月的数据集训练得到模型,该数据集包含两种视频:正常推荐列表的视频和广告视频。正常视频的特征包含:id、点赞数、播放完成率、评论数等;广告视频的特征包含:id、图片大小、定价等。


实验对比上本文主要挑选了如下的几个代表性的 baseline 进行效果对比,为了实验对比的公正性,所有对比算法使用的特征完全一致。


  • W&D。本文稍微针对W&D进行了扩展来预估是否插入广告以及预估插入广告的CTR。

  • DFM。DeepFM是在W&D基础上改进而来的一种可以额外学习特征间低阶交互的一种架构。本文的实验也表明DFM的表现好于W&D。

  • GRU。GRU4Rec使用GRU来建模用户的历史行为针对用户是否点击进行预估,本文同样也进行了扩展支持实验场景。本文的实验表明GRU4Rec效果好于W&D和DFM。

  • HDQN。HQN是一个层级DQN结构,高阶DQN决定插入位置;低阶DQN选择特定ad进行插入。本文的实验表明HDQN效果好于GRU,因为GRU只是最大化当前请求的immediate奖励,而HDQN则是最大化长期收益。

  • DEAR。本文提出的DEAR框架效果好于HDQN,因为层级的RL架构在使用off-policy方式进行联合训练时有稳定性问题。详细的效果对比,如下图所示。



参考


  1. Deep Reinforcement Learning for Online Advertising in Recommender Systems


本文授权转载自知乎专栏“深度推荐系统”。原文链接:https://zhuanlan.zhihu.com/p/85417314


2019 年 10 月 15 日 08:001586

评论

发布
暂无评论
发现更多内容

基于Vue实现一个有点意思的拼拼乐小游戏

徐小夕

Java GitHub H5游戏 H5 游戏开源

这才是图文并茂:我写了1万多字,就是为了让你了解AQS是怎么运行的

鄙人薛某

Java 并发编程 AQS 并发 ReentrantLock

史上最通俗Netty入门长文:基本介绍、环境搭建、动手实战

JackJiang

网络编程 Netty nio 即时通讯 IM

vscode + vim : vscode 全键盘使用方案

lmymirror

vim vscode Spacemacs

奋力准备一个月成功进字节,来看一下我都看了哪些资料做了哪些准备

小Q

学习 编程 程序员 架构 面试

《程序员面试金典》.pdf

田维常

面试

区块链IM即时社交通讯系统开发,区块链社交平台源码搭建

13530558032

2020年底备战—从技术到面试合集

iOSer

ios 编程 面试题 大厂面试 面试题总结

go-zero 如何扛住流量冲击(一)

Kevin Wan

go microservice go-zero goctl

适用初学者的5种Python数据输入技术

华为云开发者社区

Python 数据 函数

《深入理解java虚拟机》- java内存区域

never say never

JVM笔记 堆内存

影视剪辑类自媒体运营心得:如何抓住观众的痛点

石头IT视角

解读登录双因子认证(MFA)特性背后的TOTP原理

华为云开发者社区

算法 totp 密钥

7面阿里,最后一面居然挂在了JVM上面!狠下决心恶补JVM知识

Java架构之路

Java 程序员 架构 面试 编程语言

微服务架构中的“参天大树”:SpringBoot+SpringCloud+Docker

小Q

Java 学习 容器 面试 微服务

【应用运维】公司业务迭代迅速,运维如何高效进行应用发布?

嘉为蓝鲸

可视化 PaaS 运维自动化 部署与维护 发布

C++调用Go方法的字符串传递问题及解决方案

华为云开发者社区

c++ 内存 代码

为什么有的专科程序员比本科程序员薪资高?他们之间有多大的区别?

Java架构师迁哥

SpringBoot-技术专题-Hystrix学习介绍

李浩宇/Alex

为什么容器内存占用居高不下,频频 OOM

996小迁

Java 架构 容器 面试 k8s

渣本全力以赴33天,四面阿里妈妈(淘宝联盟),拿下实习岗offer

小Q

Java 学习 编程 架构 面试

区块链交易所软件,数字货币场外交易系统搭建

13530558032

深圳区块链钱包系统开发,区块链钱包app源码

13530558032

这4个Java异常框架,很多人竟然还不知道

比伯

Java 编程 架构 面试 计算机

阿里P8大牛整理的300页图解网络知识+计算机底层操作系统

Java架构之路

Java 编程 程序员 架构 面试

备战2021年金三银四,阿里P8面试官梳理的2020年999道大厂高频Java面试题(附答案)

Java架构之路

Java 编程 程序员 架构 面试

接口测试并不只是测试参数和返回值

测试人生路

接口测试

区块链币支付系统开发搭建,USDT支付平台源码

13530558032

惊喜!Alibaba架构师终于发布“微服务架构与实践”文档

Crud的程序员

架构 微服务

K3d vs Kind 谁更适合本地研发

郭旭东

Kubernetes k3s kind

来不及解释了,快上车!LR.NET开发平台助力企业信息互联

雯雯写代码

今日头条推出强化学习新成果:首次改进DQN网络,解决推荐中的在线广告投放问题-InfoQ