AI评论生成,如何既相关有多样?
筛选评论
Learning comment generation by leveraging user-generated data, ICASSP 2019
当前开放域的评论生成常常产生重复且无趣的回复。作者认为原因是直接使用真实用户评论会带入大量的噪音,比如同一篇文章会有多个、且可能相互矛盾的评论,并且由于检索方法会比较刻板,最终导致生成的结果问题。因此文章提出了结合检索和生成的方法,利用已有用户评论和检索出相关评论,训练一个打分器scorer(怎么训练呢?)。然后利用这些评论和文章,作为copy机制生成模型的训练数据。
上文提到了打分器,这里有三个:
- relevance scorer:这里相关性是通过计算标题和评论的bag-of-word向量的点积,只不过向量的每个词语是带TF-IDF的权重。
- upvote scorer:半监督的方法,主要是预测这些文章的评论没有任何赞。训练数据来源于文章中有评论的文章,并且评论至少10个赞做为正样本,其余负样本。模型如上,文章和评论通过BiLSTM之后,通过attention获得两者的context向量u
- ensemble:集成上面俩,可以看到图中的α是一个超参,通过它平衡两者之间的权重,从而得到最终的得分。relevance是评估相关性,避免千篇一律,而upvote也是为了生成更好容易获赞的评论。
道理是这样,两个relevance和upvote也是文章的点,但是实际过程中,好评论不一定会获得很多点赞,因为点赞的基础是该作品有大量的人看到,而大多数长尾可能没有,或者冷启动阶段多数文章没有。所以大概率正样本都是热门的文章,因此对于冷门文章可能是欠拟合。 所以正样本和负样本选择还是有待考究。
而生成模型,用到的是CopyNet机制,通过设置超参控制生成和拷贝的概率叠加。
DeepCom
Read, Attend and Comment: A Deep Architecture for Automatic News Comment Generation, 2019 https://cloud.tencent.com/developer/news/454058
借鉴人的阅读思想,先读文章,然后选择自己的关注点,再进行评论。因此文章提出了reading network和generation network。
- reading network:负责理解文章,提取重要的观点信息。
- generation network:通过关注标题和reading网络获取的观点信息,来生成回复。
两个网络通过端到到的方式训练,目标是最大化真实目标的变分下界(variational lower bound)。
reading network:representation层分别对body和title做表征学习(title的token表征经过一个GRU获得隐变量表征,body通过attention加权和),然后fusion层对body和title做融合,然后prediction层是预测多个(开始,结束)对,每个对代表一段span。这样的话,不同的span就可以代表不同的要点。
Generation Network:输入HT和HS(要点span),然后按词解码输出评论
这篇文章挺复杂的。。。并且作者实验,没有reading网络效果下降最多,这一跨也是最复杂的。。。
TPGN
Generating Pertinent and Diversified Comments with Topic-aware Pointer-Generator Networks
相关性和多样性是评论生成的两个要点,本文提出了一种Topic-aware Pointer-Generator Networks (TPGN),通过提取文章中的topic,来知道生成相关和多样的评论。在encoder中引入keyword和topic级别的attention机制来获取文章中的topic信息,然后生成过程中在融合topic信息来知道评论的生成。
Keyword-level encoder attention:文章使用TextRank抽取关键词片段,然后放入BiLSTM后的final state作为keyword的表征h_n,然后h_n通过使用attention机制获取文章中词语加权获得最终的contex表征。
Topic-level encoder attention: 文章使用LDA主题模型和Gibbs采样从数据中训练topic向量表征,然后抽取主题的top n词语作为主题词,然后计算每个topic词语的向量表征。其中Cwz是该词w在topic z中出现的次数。
`$$
p(z mid w) propto frac{C{w z}}{sum{z^{prime}} C_{w z^{prime}}}
$$`
Pointer机制和之前提出的模型很像,也不是本文重点,就不介绍了。
Reader-Aware Topic Modeling
Generating Diversified Comments via Reader-Aware Topic Modeling and Saliency Detection, 2021, AAAI 2021
评论生成不仅要关注文章中的重点和有趣的信息,并且多样性也很重要,之前的一些论文关注文章中的重要信息,忽略了评估中的读者理解因素。因此论文提出一个读者理解的话题和关键信息检测的统一框架。
reader-aware topic modeling:从评论中获取读者的topic,提出variational generative clustering algorithm,从训练集中的评论语料获取K个读者的topic标注向量。
reader-aware saliency information detection:提出Bernoulli distribution estimating。预估文章中的每个词语是否重要,用于指导下游生成,模型即转化为一个序列任务,预估每个词语是否重要。
两个模块通过端到端方式集合生成任务一起训练。
利用用户知识
Automatic Generation of Personalized Comment Based on User Profile ACL 2019
社交媒体中的用户评论非常多样,不同的用户有不同表达风格,因此论文重要集中于如何利用用户信息来做社交中的评论生成。提出PCGN模型,将用户特征通过gated memory 编码,并且加入用户描述(可能是个性签名之类)。
模型如下图,主要关注用户编码部分:
- 用户个性签名:通过BiLSTM编码,Attentive其实就是attention机制,加权求和后获得contexD向量。
- 数值特征:embedding编码后,通过gated memory机制针对生成不同步产生动态的用户表征,gate的计算是g_t^u=sigmoid(W^u_g s_t)。(讲真,fixed也不是不可)
利用外部知识图谱来生成:
modeling global and local node contexts for text generation from knowledge graph TACL, 2020
这篇主要是结合外部知识来生成,不止是评论生成,只是评论生成是,针对某些明星的评论,可能需要结合外部知识,例如明星的领域、代表作等,可以做参考。
关注公众号接收最新文章:百川NLP