HIBERT(Hierachical Bidrectional Encoder Representations from Transformers)本文的任务是是抽取式的文本摘要,将任务看做序列标注任务,在原文中标记一句话是否出现在摘要文本中。
论文思路:之前的工作利用规则的方式生成文本的标签,然后在此标签上进行学习,这显然是不准确的,所以作者希望利用大量无标签的数据
去预训练一个好的encoder(即文本的表示),然后对下游任务finetune
模型框架
预训练模型
预训练的模型整体分为两个部分,第一部分对文档进行编码,第二部分对文档解码预测mask的句子。
第一部分:
层级的编码器对文档进行编码,首先对句子编码,然后对mask之后的整个文章进行编码。
使用Transformer Encoder对句子的每个单词进行编码(因为要使用双向的信息,所以将本单词的前后文也作为输入),句子的编码就是最后一个状态()的encoder的输出。
文档的表示由另一个Transformer Encoder 编码获得,同样的每个句子使用一个Encoder 编码,最后文档的表示为 ( d 1 , d 2 , . . . , d ∣ D ∣ ) (d_1,d_2,...,d_{|D|}) (d1,d2,...,d∣D∣)
第二部分:
本文将预测mask 的句子作为预训练的任务,和Bert的预测mask的单词有异曲同工之妙。未mask的句子(即原文)不需要额外的标签。
mask句子处理的方式也和bert mask单词的方法很像:
- 80%的句子mask(整句话每个单词都mask)
- 10%的句子直接使用原来的句子
- 10%的句子使用随机的一句话替换
接下来就是一个单词一个单词的预测mask的句子,输入为已经预测的单词和文档的表示(decoder和Tra