NLG简要调研(data2text+(Abstractive) Summarization)

  • NLG简介:

    • 我们认为NLP = NLU + NLG,NLU-Neural Language Understanding指的自然语言理解,NLG-Neural Language Generation指的自然语言生成,两者是相辅相成的。具体NLG 可以按照输入输出分为两大类:
      • 1.text – to – text:文本到语言的生成
      • 2.data – to – text :数据到语言的生成
      • 典型任务:

        • (Abstractive) Summarization
          • 生成式摘要基本遵循Encoder-Decoder的框架,对输入文本encode成一个表示(编码),然后使用decoder生成摘要。使用基于attention的Encoder和Decoder是目前的主流。
        • Dialogue
        • Machine Translation
        • Creative writing: storytelling, poetry-generation
        • Image captioning
  • 文本生成方法

    • 一、Data2text方法

      • 早期方法:

        • 早期的文本生成系统多是基于规则的,可以分为三个较为独立的模板:1)内容规划;2)句子规划;3)句子实现
        • 基于传统的句法树文本生成等

          NLG简要调研(data2text+(Abstractive) Summarization)

      • 基于NN方法:

        • 基于神经机器翻译(Neural Machine Translation)
          • 1. 《Data-to-text Generation with Entity Modeling》https://arxiv.org/abs/1906.03221
            • 这篇文章主要是以entities为中心的网络结构用于data2text 生成。创建entities的表示形式,并动态更新。 在每个time step上,使用层次结构的attention,以输入的数据和entity memory为条件生成文本。

              NLG简要调研(data2text+(Abstractive) Summarization)

          • 2. 《Lexically Constrained Decoding for Sequence Generation Using Grid Beam Search》、《Fast Lexically Constrained Decoding with Dynamic Beam Allocation for Neural Machine》
            • 词法约束的解码指的是在生成的序列中必须包含预先指定的单词和短语,实质上是对beam search的修改,允许用户指定单词翻译。

              NLG简要调研(data2text+(Abstractive) Summarization)

            • start:constraint的起始状态。
            • continue:继续生成constraint,这暗示它是一个短语级别的限制的中间状态。
            • generate:从模型分布选出的词不是constrain
            • 对于模型进行beam search的过程中产生的hypothesis分为了两类:
              • Open hypothesis:可以从模型产生的输出分布中获取下一个token,这种情况其实可以分为两种,一种是选取的token不在constraints中,一种是选取的token是某个constraint的起始状态。
              • Closed hypothesis:这个hypothesis下一步生成的token,是由这个未完成的constraint决定的。
            • https://www.aclweb.org/anthology/P17-1141.pdf
          • 3.《Data-to-Text Generation with Content Selection and Planning》https://link.zhihu.com/?target=https%3A//arxiv.org/abs/1809.00582
            • 主要是提出了一个神经网络架构,其中包含内容选择和规划。将任务分解为两个阶段。 给定一组数据记录(与描述性文档配对),首先生成一个内容计划,突出显示应该提及哪些信息以及以何种顺序,然后在考虑内容计划的同时生成文档。同时加入了copy机制来提升解码器的效果。

              NLG简要调研(data2text+(Abstractive) Summarization)

        • 基于神经语言模型(Neural Language Model)
          • 最近在以bert为首的大量预训练模型出世后,也有很多基于预训练模型的NLG任务,以GPT为代表的auto regressive模型与以bert为代表的auto encoding模型
          • 1.《Plug and Play Language Models: a Simple Approach to Controlled Text Generation》https://arxiv.org/pdf/1912.02164.pdf
            • PPLM的方法,是在一个预训练好的语言模型,该语言模型可以是GPT2或者是其它模型。PPLM要做的就是对该模型生成的文本进行微调。微调的方法是基于条件概率p(x|a),即基于某个属性a,生成文本x。该条件概率公式可以展开为:

              NLG简要调研(data2text+(Abstractive) Summarization)

            • 即要想得到基于属性a生成的文本x,首先可以通过已有的语言模型p(x)生成文本,然后再判断这个生成的文本属于哪一个属性p(a|x),判断的方法,比如可以训练一个分类器,通过分类器来判断该生成的文本属于哪一个属性。有了p(a|x)和p(x),就可以获得p(x|a)。
            • 模型结构:

              NLG简要调研(data2text+(Abstractive) Summarization)

              • 总共分为三部分:
                • 1、通过分类器预测语言模型生成的文本的属性分类p(a|x);
                • 2、根据1中属性判别回传的梯度,更新语言模型内部参数,增加模型预测接近想要属性的可能性;
                • 3、然后从更新后的参数生成新的词分布;
      • 基于神经语言模型的方法和基于神经机器翻译的方法在特定数据集上都取得了较大的进步,其本质仍然是Sequence-to-sequence方法
    • 二、生成式自动摘要生成(基于NN)
      • 1.《Get To The Point: Summarization with Pointer-Generator Networks》https://arxiv.org/pdf/1704.04368.pdf

        NLG简要调研(data2text+(Abstractive) Summarization)

        • 基于注意力机制的Seq2Seq模型,使用每一步解码的隐层状态与编码器的隐层状态计算权重,最终得到context向量,利用context向量和解码器隐层状态计算输出概率。
        • 利用 Copy 机制,需要在解码的每一步计算拷贝或生成的概率,因为词表是固定的,该机制可以选择从原文中拷贝词语到摘要中,有效的缓解了未登录词(OOV)的问题;
        • 利用 Coverage 机制,需要在解码的每一步考虑之前步的attention权重,结合coverage损失, 避免继续考虑已经获得高权重的部分。该机制可以有效缓解生成重复的问题。
      • 其他方法比如使用GAN、使用encoder-deocder和注意力机制再结合强化学习来完成生成式摘要任务
  • 最新模型:

    • 单向特征表示的自回归预训练语言模型,统称为单向模型:
      • ELMO/GPT1.0/GPT2.0;
    • 双向特征表示的自编码预训练语言模型,统称为BERT系列模型:
      • (BERT/MASS/UNILM/ERNIE1.0/ERNIE(THU)/MTDNN/ERNIE2.0/SpanBERT/RoBERTa)
    • 双向特征表示的自回归预训练语言模型:XLNet;
    • Turing-NLG(最新最大):基于Transformer架构,带有170亿参数的语言生成模型 Turing-NLGhttps://link.zhihu.com/?target=https%3A//arxiv.org/pdf/1910.02054.pdf
      • 1)实现了直接生成问答或在零样本下生成问答的能力
      • 2)能够在更少的监督下生成抽象式摘要
  • 评价指标:

    • 客观评价指标:

      • word-overlap based:
        • BLEU:一般只计算 BLEU-1 ~ BLEU-4,用于计算候选译文(si机器生成)和参考译文(si)n元组(常用1组)共同出现的程度,unigram 的准确率可以用于衡量单词翻译的准确性,更高阶的 n-gram 的准确率可以用来衡量句子的流畅性
          • 公式:

            NLG简要调研(data2text+(Abstractive) Summarization)

            NLG简要调研(data2text+(Abstractive) Summarization)

            NLG简要调研(data2text+(Abstractive) Summarization)

            NLG简要调研(data2text+(Abstractive) Summarization)

          • 为什么使用Pn公式,是为了防止出现极端情况,比如:

            NLG简要调研(data2text+(Abstractive) Summarization)

          • 例子:
            • 比如:

              NLG简要调研(data2text+(Abstractive) Summarization)

            • unigram:

              NLG简要调研(data2text+(Abstractive) Summarization)

            • bigram:

              NLG简要调研(data2text+(Abstractive) Summarization)

          • 缺点:
            • 指考虑了准确率,合成的句子的正确性,没考虑召回率(即正确的词出现在预测句子的比率)
            • bp惩罚因子公式:当合成句子太长时,一直为1,没用起到约束作用,所以在合成句子过长时效果不佳;
        • METEOR:计算候选句和参考句之间单个单词准确率和召回率的调和平均,与人工判断的结果有更高的相关性;
        • ROUGE:计算候选句和参考句之间的最长公共子序列(LCS;和bleu类似但是只基于召回率计算,不考虑流畅性)
      • embedding-based metrics:
        • Embedding Average cosine similarity:组成句子单词 的向量 进行平均来计算生成句子 和参考句子的cosine similarity
        • Vector Extrema cosine similarity:取句子中单词在每个维度上的最大(小)值作为句子向量计算cosine similarity:
        • Greedy Matching score:直接计算候选句 C 和参考句 r 之间的最相似单词的句子距离
    • 主观评价指标:

      • 除了客观的自动化度量标准以外,人工主观的打分虽然效率不高,但是也是评价很多算法性能的重要指标,微软在其VTTChallenge2016中提出了三点主观评价标准:
        • 1) 流畅度:评价生成语句的逻辑和可读性。
        • 2) 相关性:评价生成语句是否包含与原视频段相关和重要的物体/动作/事件等。
        • 3) 助盲性:评价生成语句对一个实力有缺陷的人去理解其表示的视频片段到底有多大的帮助
  • 数据集:

  • 应用:

    • 1.自动写新闻:比如很多体育新闻;腾讯机器人
    • 2.聊天机器人:智能助手,客服机器人等;
    • 3.BI 的解读和报告自动生成

      NLG简要调研(data2text+(Abstractive) Summarization)