文本生成 [1]

文本生成任务

根据输入数据的区别,可以将文本生成任务分为以下三类:文本到文本的生成、数据到文本的生成、图像到文本的生成。

典型任务有:

  • 机器翻译
  • 归纳总结(摘要)
  • 对话
  • 创意写作:讲故事,诗歌的生成
  • 自由形式的问题回答(即答案是生成的,不是从文本或知识库中提取的)。
  • 图片说明

评价指标

基于词重叠率的方法
机器翻译 & 摘要常用指标

基于词重叠率的方法是指基于词汇的级别计算模型的生成文本和人工的参考文本之间的相似性,比较经典的代表有BLEU、METEOR和ROUGE,其中BLEU和METEOR常用于机器翻译任务,ROUGE常用于自动文本摘要。

data to text常用指标

data to text 和翻译、摘要等生成式任务最大的不同是,input是类似于table或者三元组等其他形式的数据。在评估生成结果时,我们还需要考虑文本是否准确的涵盖了data的信息。

  • Relation Generation(RG)
    从生成的句子中抽取出关系,然后对比有多少关系也出现在了source中(一般有recall和count2个指标)。
  • Content Selection(CS)
    一般指data当中的内容有多少出现在了生成的句子中,一般有precision和recall两个指标。
  • Content Ordering(CO)
    使用归一化 Damerau-Levenshtein距离计算生成句和参考句的“sequence of records”。
  • Converage
    如果data to text不涉及复杂的关系抽取,也可以简单的通过匹配方法来验证文本是否能够覆盖要描述的data。
词向量评价指标

上面的词重叠评价指标基本上都是n-gram方式,去计算生成响应和真是响应之间的重合程度,共现程度等指标。而词向量则是通过Word2Vec、Sent2Vec等方法将句子转换为向量表示,这样一个句子就被映射到一个低维空间,句向量在一定程度上表征了其含义,在通过余弦相似度等方法就可以计算两个句子之间的相似程度。

  • Greedy Matching
  • Embedding Average
  • Vector Extrema
基于语言模型的方法
  • PPL
    给测试集的句子赋予较高概率值的语言模型较好,当语言模型训练完之后,测试集中的句子都是正常的句子,那么训练好的模型就是在测试集上的概率越高越好,公式如下:
    文本生成内容repetition指标 文本生成任务_文本生成内容repetition指标
    相当于用模型去对测试集中的每一句话进行评估,评估每一句话出现的概率是多大,评估的结果越高越好。
基于Bert的评分指标

使用句子上下文表示(bert全家桶)和人工设计的计算逻辑对句子相似度进行计算。这样的评价指标鲁棒性较好,在缺乏训练数据的情况下也具有较好表现。

  • BERTSCORE
    对两个生成句和参考句(word piece进行tokenize)分别用bert提取特征,然后对2个句子的每一个词分别计算内积,可以得到一个相似性矩阵。基于这个矩阵,我们可以分别对参考句和生成句做一个最大相似性得分的累加然后归一化,得到bertscore的precision。