论文信息Paper: Generating Better Search Engine Text Advertisements with Deep Reinforcement LearningSource: KDD 2019Link: https://dl.acm.org/doi/pdf/10.1145/3292500.3330754引言
强化学习经常被用于直接优化有些不可微分的奖励函数,例如在游戏中agent的得分等。本文中,作者将强化学习应用于宣传文案生成,期盼模型生成的宣传文案在语义通顺的前提下更加的吸引人。模型经过将点击率(Click-through Rate)做为强化学习的reward应用于传统的LSTM模型,使得模型结果的点击率提高了6.7个百分点,同期保持了和目的结果的交叉熵无显著的下滑,人工标注一样证明生成的宣传文案相较于本来更加的吸引人。
任务是什么
模型的目的是生成一段宣传文案,包含一个标题和一段宣传文案主体,模型的输入是商品的Landing Page,一段长文本,其中包括了非常多关于商品的信息(商品特征、价格、官网位置、线下商城信息等),一样给出了人工撰写的对应的宣传文案供模型进行监督学习。模型为每一个页面生成的独特的宣传文案能够使得互联网巨头同期推销数千件商品,妈妈再亦不消担心宣传文案来不及写啦!
为何要用强化学习
传统的监督学习下的语言模型(例如seq2seq)是将源文件和目的文件输入,语言模型常常学习到的是原始商品信息和宣传语之间的关系,可想而知,一个好的语言模型最后生成的文案会非常接近人们自己手写的。然则!没错,模型的表现永远无办法超越人类,而目的是星辰大海的咱们想要一个比人类更优秀的文案写手,于是强化学习作为认识决的办法。详细操作咱们之后介绍!
模型长什么样
模型的主体由两部分构成,第1部分是一个LSTM的Seq2seq模型,有意思的是因为必须生成文案的标题和主体,两者是分别做encode和decode的,两者的联系重点表现在hidden state的叠加。给定一段输入x由标题和主体两部分构成,预测的结果y亦由标题和主体构成。
Seq2seq的loss即为简单的预测结果和目的之间的交叉熵,loss function能够暗示为最小化以下的公式。
模型的第二部分是强化学习,作者运用了一个预训练好的模型来对生成的宣传文案进行打分,这个预训练模型亦是在类似的宣传文案上训练得到的,用来预测文案的点击率,咱们必须达成一个共识,当一条文案的点击率较高时,表率着这条文案一样是吸引人的。在这儿,打分模型仅用于打分,换句话说,他是不参与模型的梯度回传的,他就像一个冷酷无情的评委,不会由于上一句宣传文案太差就优待之后的文案。一样,咱们定义强化学习部分的loss function。
最后模型优化的总体loss function由以上两个loss加权求和得到,权值由掌控,来平衡两者的权重。
我全都要
为何咱们必须两个部分相结合,而不是取其中的一部分?或干脆用rl来做文本生成?实验发掘,当模型对rl过拟合时,生成的结果会显现语句不通顺,显现较多重复词的现象,这是因为rl打分模型本身的缺陷引起的,在rl模型学习预测点击率时,他发掘有些分数较高的文案中广泛存在着有些“积极正面”的词汇,在为咱们的模型打分时,他更倾向于生成为了这些词汇的文案,结果可想而知,模型生成的文案遍布着这些词汇,非常影响咱们的阅读体验,大众都不买咱们的制品啦!
有些有意思的细节
可并行的Encoder与Decoder
作者运用了两个双向的LSTM分别encode标题和主体,所得的hidden vector由正反的LSTM hidden state拼接得到,这般的做法在Bert中亦有表现。
在完成标题和主体的encode之后将两者的hidden state拼接得到整体的hidden state,用于decode生成文案。
Attention的运用
本文一样运用了时髦的attention机制,由Luong attention以及scale过的 self-attention计算得到,虽然加入了attention,不外综合表现还是远远不如bert,在之后的有些工作中,大众亦都更倾向于运用bert加rl的方式进行文本生成。
Self Critic很重要
本文的一大亮点是运用了self critic算法,之前在介绍模型时咱们介绍了模型的两个部分,却无提及模型时怎么样进行连接的,按照直觉,咱们将模型的decode结果输入到rl模型中进行打分,在decode时,咱们的模型总是趋向于生成最好的结果(在LSTM预测的词表分布中选取概率最高的词汇做为输出),看似最佳的结果一样是最死板的,他就像班里的学霸每次考试都选正确的答案,却不关注哪些虽然是错误的然则可能有奇效的答案(没错我还是会选正确答案的)。作者在decode时除了将概率最高的词汇做为输出,还会另一decode一个序列,其中的词汇都是按照词表词汇概率采样出来的,这般decode结果不会总是选取概率最高的词汇,而是可能选取有些其他的单词。在rl打分时,倘若采样结果得分高于概率最高的结果,就采用采样结果当作答案。
实验
本文的实验运用的是Bing Ads的数据集,其中训练集有30w条,另外测试集和检验集分别都是1w条。作者先在无rl的基本上训练了一个baseline模型,又在rl的基本上训练了一段时间,得到了以下的结果。相较于之前的模型,结果的点击率有了很显著的提高。
这个实验结果还是告诉了咱们非常多信息的,第1,做为平衡模型两部分权重的参数,对结果的影响还是很大的。第二,模型还有很大的提高空间,human written的结果相比于模型生成结果,点击率还是高出非常多的,这说明减少和人工撰写的文案的交叉熵的目的和提高结果点击率并不是完全冲突的,最少在超过人工结果的点击率之前,咱们依旧能够将减少交叉熵做为咱们模型的目的之一。在人工标注的2000条实验结果中咱们能够得出类似的结论。
我的有些观点
看完对本文的总结之后,似乎会觉得强化学习真不错,点击率确实提高明显,我把LSTM换成bert又能够发论文啦?其实仔细一想还是存在着有些问题,首要做为强化学习的打分模型和做为评判标准的打分器是同一个模型,颇有些参加大赛却发掘比赛裁判竟然是平时的教练的感觉,当然做为弥补作者采用了人工标注的介入。
在进行论文复现时,发掘模型的计算成本过大,每训练一句文本,模型就要decode4次(标题和主体,两种采样方式),引起模型训练一个epoch就要海量的时间,这些问题都是有待处理的。
不外总体而言,模型还是做出了有些有意思的贡献,为之后强化学习应用于文本生成供给了非常多新的思路。
参考文献
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.
|