强化学习应用于宣传文案生成
<h2 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">论文信息</span></h2>Paper: Generating Better Search Engine Text Advertisements with Deep Reinforcement LearningSource: KDD 2019Link: https://dl.acm.org/doi/pdf/10.1145/3292500.3330754<h2 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">引言</span></h2>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">强化学习经常被用于直接优化<span style="color: black;">有些</span>不可微分的奖励函数,例如在游戏中agent的得分等。本文中,作者将强化学习应用于<span style="color: black;">宣传</span>文案生成,<span style="color: black;">期盼</span>模型生成的<span style="color: black;">宣传</span>文案在语义通顺的前提下更加的吸引人。模型<span style="color: black;">经过</span>将点击率(Click-through Rate)<span style="color: black;">做为</span>强化学习的reward应用于传统的LSTM模型,使得模型结果的点击率<span style="color: black;">提高</span>了6.7个百分点,<span style="color: black;">同期</span>保持了和<span style="color: black;">目的</span>结果的交叉熵<span style="color: black;">无</span><span style="color: black;">显著</span>的下滑,人工标注<span style="color: black;">一样</span>证明生成的<span style="color: black;">宣传</span>文案相较于<span style="color: black;">本来</span>更加的吸引人。</p>
<h2 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">任务是什么</span></h2>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">模型的<span style="color: black;">目的</span>是生成一段<span style="color: black;">宣传</span>文案,<span style="color: black;">包含</span>一个标题和一段<span style="color: black;">宣传</span>文案主体,模型的输入是商品的Landing Page,一段长文本,其中<span style="color: black;">包括</span>了<span style="color: black;">非常多</span>关于商品的信息(商品特征、价格、官网<span style="color: black;">位置</span>、线下商城信息等),<span style="color: black;">一样</span>给出了人工撰写的对应的<span style="color: black;">宣传</span>文案供模型进行监督学习。模型为<span style="color: black;">每一个</span>页面生成的独特的<span style="color: black;">宣传</span>文案<span style="color: black;">能够</span>使得互联网巨头<span style="color: black;">同期</span>推销数千件商品,妈妈再<span style="color: black;">亦</span><span style="color: black;">不消</span>担心<span style="color: black;">宣传</span>文案来不及写啦!</p>
<h2 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;"><span style="color: black;">为何</span>要用强化学习</span></h2>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">传统的监督学习下的语言模型(例如seq2seq)是将源文件和<span style="color: black;">目的</span>文件输入,语言模型<span style="color: black;">常常</span>学习到的是原始商品信息和<span style="color: black;">宣传</span>语之间的关系,可想而知,一个好的语言模型<span style="color: black;">最后</span>生成的文案会<span style="color: black;">非常</span>接近人们自己手写的。<span style="color: black;">然则</span>!没错,模型的表现永远<span style="color: black;">无</span>办法超越人类,而<span style="color: black;">目的</span>是星辰大海的<span style="color: black;">咱们</span>想要一个比人类更优秀的文案写手,于是强化学习<span style="color: black;">作为</span><span style="color: black;">认识</span>决的<span style="color: black;">办法</span>。<span style="color: black;">详细</span>操作<span style="color: black;">咱们</span>之后介绍!</p>
<h2 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">模型长什么样</span></h2><img src="https://mmbiz.qpic.cn/mmbiz_png/XgX5eqrQiaOTRJAt1FEpx81PJpmfqf2aFsFEXX0CbUxh4DUbqRA3Cg30Fs3W3lokBkianL2iaiaq4sAKQuicjvLOoYQ/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1" style="width: 50%; margin-bottom: 20px;">
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">模型的主体由两部分<span style="color: black;">构成</span>,<span style="color: black;">第1</span>部分是一个LSTM的Seq2seq模型,有意思的是<span style="color: black;">因为</span><span style="color: black;">必须</span>生成文案的标题和主体,两者是分别做encode和decode的,两者的联系<span style="color: black;">重点</span><span style="color: black;">表现</span>在hidden state的叠加。给定一段输入x由标题和主体两部分<span style="color: black;">构成</span>,预测的结果y<span style="color: black;">亦</span>由标题和主体<span style="color: black;">构成</span>。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_png/XgX5eqrQiaOTRJAt1FEpx81PJpmfqf2aFibkictDwZSibBt34TtF0HmWQtRQr5cCODYGW9tIKgpsGuicYme3sQRGyUw/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1" style="width: 50%; margin-bottom: 20px;"><img src="https://mmbiz.qpic.cn/mmbiz_png/XgX5eqrQiaOTRJAt1FEpx81PJpmfqf2aFxNday0ZUzYxmzdKCBjickSic9D2ZyvEM4GRsD4AH8cqDw9zDrgrFomtg/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Seq2seq的loss即为简单的预测结果和<span style="color: black;">目的</span>之间的交叉熵,loss function<span style="color: black;">能够</span><span style="color: black;">暗示</span>为最小化以下的公式。</p><img src="https://mmbiz.qpic.cn/mmbiz_png/XgX5eqrQiaOTRJAt1FEpx81PJpmfqf2aFheDsibT1rquvfplNviavgmKFHc2gYIzzfVb6bYr4fmyHGjziatX06RAdA/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1" style="width: 50%; margin-bottom: 20px;">
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">模型的第二部分是强化学习,作者<span style="color: black;">运用</span>了一个预训练好的模型来对生成的<span style="color: black;">宣传</span>文案进行打分,这个预训练模型<span style="color: black;">亦</span>是在类似的<span style="color: black;">宣传</span>文案上训练得到的,用来预测文案的点击率,<span style="color: black;">咱们</span><span style="color: black;">必须</span>达成一个共识,当一条文案的点击率较高时,<span style="color: black;">表率</span>着这条文案<span style="color: black;">一样</span>是吸引人的。在<span style="color: black;">这儿</span>,打分模型仅用于打分,换句话说,他是不参与模型的梯度回传的,他就像一个冷酷无情的评委,不会<span style="color: black;">由于</span>上一句<span style="color: black;">宣传</span>文案太差就优待之后的文案。<span style="color: black;">一样</span>,<span style="color: black;">咱们</span>定义强化学习部分的loss function。</p><img src="https://mmbiz.qpic.cn/mmbiz_png/XgX5eqrQiaOTRJAt1FEpx81PJpmfqf2aFTqPnRtDHAxMCicqDiaHWLlau8tMmLVSkKW91wwZaX3fJGTKToGscFy5w/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1" style="width: 50%; margin-bottom: 20px;">
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">最后</span>模型优化的总体loss function由以上两个loss加权求和得到,权值由<span style="color: black;">掌控</span>,来平衡两者的权重。</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">我全都要</span></h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">为何</span><span style="color: black;">咱们</span><span style="color: black;">必须</span>两个部分相结合,而不是取其中的一部分?<span style="color: black;">或</span>干脆用rl来做文本生成?实验<span style="color: black;">发掘</span>,当模型对rl过拟合时,生成的结果会<span style="color: black;">显现</span>语句不通顺,<span style="color: black;">显现</span>较多重复词的现象,这是<span style="color: black;">因为</span>rl打分模型本身的缺陷<span style="color: black;">引起</span>的,在rl模型学习预测点击率时,他<span style="color: black;">发掘</span><span style="color: black;">有些</span>分数较高的文案中<span style="color: black;">广泛</span>存在着<span style="color: black;">有些</span>“积极正面”的词汇,在为<span style="color: black;">咱们</span>的模型打分时,他更倾向于生<span style="color: black;">成为了</span>这些词汇的文案,结果可想而知,模型生成的文案遍布着这些词汇,非常影响<span style="color: black;">咱们</span>的阅读体验,<span style="color: black;">大众</span>都不买<span style="color: black;">咱们</span>的<span style="color: black;">制品</span>啦!</p>
<h2 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;"><span style="color: black;">有些</span>有意思的细节</span></h2>
<h3 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">可并行的Encoder与Decoder</span></h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">作者<span style="color: black;">运用</span>了两个双向的LSTM分别encode标题和主体,所得的hidden vector由正反的LSTM hidden state拼接得到,<span style="color: black;">这般</span>的做法在Bert中<span style="color: black;">亦</span>有<span style="color: black;">表现</span>。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_jpg/XgX5eqrQiaOTRJAt1FEpx81PJpmfqf2aFiarO30CibyhrRWQjHgm8XAwU2w7zAqFRDzWfIFr43GeaqKiadXexKymDQ/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1" style="width: 50%; margin-bottom: 20px;">在完成标题和主体的encode之后将两者的hidden state拼接得到整体的hidden state,用于decode生成文案。</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">Attention的<span style="color: black;">运用</span></span></h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">本文<span style="color: black;">一样</span><span style="color: black;">运用</span>了时髦的attention机制,由Luong attention以及scale过的 self-attention计算得到,虽然加入了attention,<span style="color: black;">不外</span>综合表现还是远远不如bert,在之后的<span style="color: black;">有些</span>工作中,<span style="color: black;">大众</span><span style="color: black;">亦</span>都更倾向于<span style="color: black;">运用</span>bert加rl的方式进行文本生成。</p><img src="https://mmbiz.qpic.cn/mmbiz_png/XgX5eqrQiaOTRJAt1FEpx81PJpmfqf2aFqOewDIAwL84bUCtk7sgVLicgB6vnqzuKxeibBib1wEHRzhCibKRYVdcGaw/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1" style="width: 50%; margin-bottom: 20px;"><img src="https://mmbiz.qpic.cn/mmbiz_jpg/XgX5eqrQiaOTRJAt1FEpx81PJpmfqf2aFGlia9s0lG6LhCbfNlzHGtsmsow80QcclZIhrXPVicKa7aJWvjgNOE9Bg/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1" style="width: 50%; margin-bottom: 20px;"><img src="https://mmbiz.qpic.cn/mmbiz_jpg/XgX5eqrQiaOTRJAt1FEpx81PJpmfqf2aFLUrlpS5fibuKURmPiaVwDA0FsJNFe8SQaksqaOBQjlJVzKOxz7hmfrkA/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1" style="width: 50%; margin-bottom: 20px;">
<h3 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">Self Critic很重要</span></h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">本文的一大亮点是<span style="color: black;">运用</span>了self critic算法,之前在介绍模型时<span style="color: black;">咱们</span>介绍了模型的两个部分,却<span style="color: black;">无</span>提及模型时<span style="color: black;">怎么样</span>进行连接的,<span style="color: black;">按照</span>直觉,<span style="color: black;">咱们</span>将模型的decode结果输入到rl模型中进行打分,在decode时,<span style="color: black;">咱们</span>的模型总是趋向于生成最好的结果(在LSTM预测的词表分布中<span style="color: black;">选取</span>概率最高的词汇<span style="color: black;">做为</span>输出),看似最佳的结果<span style="color: black;">一样</span>是最死板的,他就像班里的学霸每次考试都选正确的答案,却不关注<span style="color: black;">哪些</span>虽然是错误的<span style="color: black;">然则</span>可能有奇效的答案(没错我还是会选正确答案的)。作者在decode时除了将概率最高的词汇<span style="color: black;">做为</span>输出,还会<span style="color: black;">另一</span>decode一个序列,其中的词汇都是<span style="color: black;">按照</span>词表词汇概率采样出来的,<span style="color: black;">这般</span>decode结果不会总是<span style="color: black;">选取</span>概率最高的词汇,而是可能<span style="color: black;">选取</span><span style="color: black;">有些</span>其他的单词。在rl打分时,<span style="color: black;">倘若</span>采样结果得分高于概率最高的结果,就采用采样结果当作答案。</p><img src="https://mmbiz.qpic.cn/mmbiz_png/XgX5eqrQiaOTRJAt1FEpx81PJpmfqf2aFO2Qx7SyOofuRy1ZVIRiaPTWKrW9ne7YJx8niaVIicsic36kbC41FF5V0Qg/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1" style="width: 50%; margin-bottom: 20px;">
<h2 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">实验</span></h2>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">本文的实验<span style="color: black;">运用</span>的是Bing Ads的数据集,其中训练集有30w条,<span style="color: black;">另外</span>测试集和检验集分别都是1w条。作者先在<span style="color: black;">无</span>rl的<span style="color: black;">基本</span>上训练了一个baseline模型,又在rl的<span style="color: black;">基本</span>上训练了一段时间,得到了以下的结果。相较于之前的模型,结果的点击率有了很<span style="color: black;">显著</span>的<span style="color: black;">提高</span>。</p><img src="https://mmbiz.qpic.cn/mmbiz_png/XgX5eqrQiaOTRJAt1FEpx81PJpmfqf2aFicCpVFhKK9Db3wRSnaXGrjX43IpnOQNrFib2FjMsJt8KhI0exe561Qtw/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1" style="width: 50%; margin-bottom: 20px;">
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">这个实验结果还是告诉了<span style="color: black;">咱们</span><span style="color: black;">非常多</span>信息的,<span style="color: black;">第1</span>,<span style="color: black;">做为</span>平衡模型两部分权重的参数,对结果的影响还是很大的。第二,模型还有很大的<span style="color: black;">提高</span>空间,human written的结果相比于模型生成结果,点击率还是高出<span style="color: black;">非常多</span>的,这说明减少和人工撰写的文案的交叉熵的<span style="color: black;">目的</span>和<span style="color: black;">提高</span>结果点击率<span style="color: black;">并不</span>是完全冲突的,<span style="color: black;">最少</span>在超过人工结果的点击率之前,<span style="color: black;">咱们</span>依旧<span style="color: black;">能够</span>将减少交叉熵<span style="color: black;">做为</span><span style="color: black;">咱们</span>模型的<span style="color: black;">目的</span>之一。在人工标注的2000条实验结果中<span style="color: black;">咱们</span><span style="color: black;">能够</span>得出<span style="color: black;">类似</span>的结论。</p><img src="https://mmbiz.qpic.cn/mmbiz_png/XgX5eqrQiaOTRJAt1FEpx81PJpmfqf2aFU0ibUdhYGBCFUSw2LUjGAHicw7a6mPdKtEBffUBwAu7rc9BibOr3xGm4A/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1" style="width: 50%; margin-bottom: 20px;">
<h2 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">我的<span style="color: black;">有些</span>观点</span></h2>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">看完对本文的总结之后,似乎会觉得强化学习真不错,点击率确实<span style="color: black;">提高</span><span style="color: black;">明显</span>,我把LSTM换成bert又<span style="color: black;">能够</span>发论文啦?其实仔细一想还是存在着<span style="color: black;">有些</span>问题,<span style="color: black;">首要</span><span style="color: black;">做为</span>强化学习的打分模型和<span style="color: black;">做为</span>评判标准的打分器是同一个模型,颇有些参加大赛却<span style="color: black;">发掘</span>比赛裁判竟然是平时的教练的感觉,当然<span style="color: black;">做为</span>弥补作者采用了人工标注的介入。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在进行论文复现时,<span style="color: black;">发掘</span>模型的计算成本过大,每训练一句文本,模型就要decode4次(标题和主体,两种采样方式),<span style="color: black;">引起</span>模型训练一个epoch就要<span style="color: black;">海量</span>的时间,这些问题都是有待<span style="color: black;">处理</span>的。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">不外</span>总体而言,模型还是做出了<span style="color: black;">有些</span>有意思的贡献,为之后强化学习应用于文本生成<span style="color: black;">供给</span>了<span style="color: black;">非常多</span>新的思路。</p>
<h2 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">参考文献</span></h2>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">J Weston Hughes, Keng-hao Chang, and Ruofei Zhang. Generating better search engine text advertisements with deep reinforcement learning.In Proceedings of the 25th ACM SIGKDD International Conference onKnowledge Discovery & Data Mining, pages 2269–2277, 2019.</p>
你的见解独到,让我受益匪浅,期待更多交流。 说得好啊!我在外链论坛打滚这么多年,所谓阅人无数,就算没有见过猪走路,也总明白猪肉是啥味道的。 论坛外链网http://www.fok120.com/
页:
[1]