寫?在前面
paper:https://arxiv.org/pdf/1903.10318.pdf
github:https://github.com/nlpyang/BertSum
后面,又發表于EMNLP2019,為《Text Summarization with Pretrained Encoders》,增加了生成式(抽象式,Abstractive)摘要部分,并對第一版論文進行了部分內容的補充與刪減。
paper:https://aclanthology.org/D19-1387.pdf
github:https://github.com/nlpyang/PreSumm
介紹
文本摘要任務主要分為抽象式摘要(abstractive summarization)和抽取式摘要(extractive summarization)。在抽象式摘要中,目標摘要所包含的詞或短語會不在原文中,通常需要進行文本重寫等操作進行生成;而抽取式摘要,就是通過復制和重組文檔中最重要的內容(一般為句子)來形成摘要。那么如何獲取并選擇文檔中重要句子,就是抽取式摘要的關鍵。
傳統抽取式摘要方法包括Lead-3和TextRank,傳統深度學習方法一般采用LSTM或GRU模型進行重要句子的判斷與選擇,而本文采用預訓練語言模型BERT進行抽取式摘要。
模型結構BertSum模型
結構如下圖所示
![](https://file.elecfans.com/web2/M00/35/A4/poYBAGIsXmqAFA0cAACRSBVnRN8970.png)
主要由句子編碼層和摘要判斷層組成,其中,「句子編碼層」通過BERT模型獲取文檔中每個句子的句向量編碼,「摘要判斷層」通過三種不同的結構進行選擇判斷,為每個句子進行打分,最終選取最優的top-n個句子作為文檔摘要。
句子編碼層
由于BERT模型MLM預訓練機制,使得其輸出向量為每個token的向量;即使分隔符可以區分輸入的不同句子,但是僅有兩個標簽(句子A或句子B),與抽取式摘要需要分隔多個句子大不相同;因此對BERT模型的輸入進行了修改,如下:
將文檔中的每個句子前后均插入[CLS]和[SEP]標記,并將每個句子前的[CLS]標記進入模型后的輸出向量,作為該句子的句向量表征。例如:文檔為”我愛南京。我喜歡NLP。我學習摘要。“,輸入序列為”[CLS]我愛南京。[SEP][CLS]我喜歡NLP。[SEP][CLS]我學習摘要。[SEP]“
采用Segment Embeddings區分文檔中的多個句子,將奇數句子和偶數句子的Segment Embeddings分別設置為和,例如:文檔為,那么Segment Embeddings為。
摘要判斷層
從句子編碼層獲取文檔中每個句子的句向量后,構建了3種摘要判斷層,以通過獲取每個句子在文檔級特征下的重要性。對于每個句子,計算出最終的預測分數,模型的損失是相對于金標簽的二元交叉熵。
Simple Classifier,僅在BERT輸出上添加一個線性全連接層,并使用一個sigmoid函數獲得預測分數,如下:
Transformer,在BERT輸出后增加額外的Transformer層,進一步提取專注于摘要任務的文檔級特征,如下:
其中,為句子的句向量,,PosEmb函數為在句向量中增加位置信息函數,MHAtt函數為多頭注意力函數,為Transformer的層數。最后仍然接一個sigmoid函數的全連接層,
最終選擇為2。
LSTM,在BERT輸出增加額外的LSTM層,進一步提取專注于摘要任務的文檔級特征,如下:
其中,分別為遺忘門、輸入門和輸出門;分別為隱藏向量、記憶向量和輸出向量;分別為不同的layer normalization操作。最后仍然接一個sigmoid函數的全連接層,
實驗細節訓練集構建
由于目前文本摘要的數據大多為抽象式文本摘要數據集,不適合訓練抽取摘要模型。論文利用貪心算法構建每個文檔抽取式摘要對應的句子集合,即通過算法貪婪地選擇能使ROUGE分數最大化的句子集合。將選中的句子集合中的句子的標簽設為1,其余的句子為0。
模型預測
在模型預測階段,將文檔按照句子進行切分,采用BertSum模型獲取每個句子的得分,然后根據分數從高到低對這些句子進行排序,并選擇前3個句子作為摘要。
在句子選擇階段,采用Trigram Blocking機制來減少摘要的冗余,即對應當前已組成摘要S和侯選句子c,如果S和c直接存在tri-gram相同片段,則跳過句子c,也就是句子c不會增加在已組成摘要S中。
數據超出BERT限制
BERT模型由于最大長度為512,而現實中文檔長度常常會超出。在《Text Summarization with Pretrained Encoders》文中提到,在BERT模型中添加更多的位置嵌入來克服這個限制,并且位置嵌入是隨機初始化的,并在訓練時與其他參數同時進行微調。
實驗結果主要對比了LEAD、REFRESH、NEUSUM、PGN以及DCA方法,較當時方法,該論文效果確實不錯,如下表所示,
![](https://file.elecfans.com/web2/M00/35/AA/pYYBAGIsXp-AMjNgAAElY_wfs-0462.png)
在三種摘要判斷層中,Transformer的效果最優。并且進行了進一步的消融實驗,發現采用不同的Segment Embeddings會給結果帶來一些提升,但是Trigram Blocking機制更為關鍵,具體如下表所示。
![](https://file.elecfans.com/web2/M00/35/A4/poYBAGIsXsGAYz5HAAEvnTFiZj8691.png)
總結個人認為該論文是一篇較為經典的BERT模型應用論文,當時2019年看的時候就進行了嘗試,并且也將其用到了一些項目中。
放假ing,但是也要學習。
原文標題:BertSum-基于BERT模型的抽取式文本摘要
文章出處:【微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
結構
+關注
關注
1文章
117瀏覽量
21654 -
函數
+關注
關注
3文章
4346瀏覽量
63012 -
模型
+關注
關注
1文章
3340瀏覽量
49267
原文標題:BertSum-基于BERT模型的抽取式文本摘要
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
自動識別事件類別的中文事件抽取技術研究
基于XML的WEB信息抽取模型設計
BERT模型的PyTorch實現
簡述基于神經網絡的抽取式摘要方法
![簡述基于神經網絡的<b class='flag-5'>抽取</b><b class='flag-5'>式</b><b class='flag-5'>摘要</b>方法](https://file.elecfans.com/web1/M00/8C/C1/o4YBAFyhdnCAQZS8AAAZqe9pgis109.png)
圖解BERT預訓練模型!
模型NLP事件抽取方法總結
![<b class='flag-5'>模型</b>NLP事件<b class='flag-5'>抽取</b>方法總結](https://file.elecfans.com/web1/M00/D8/6F/pIYBAF_tNaOAHtqWAAA6oNbnfHk232.png)
NLP:關系抽取到底在乎什么
融合BERT詞向量與TextRank的關鍵詞抽取方法
![融合<b class='flag-5'>BERT</b>詞向量與TextRank的關鍵詞<b class='flag-5'>抽取</b>方法](https://file.elecfans.com/web1/M00/E6/7D/pIYBAGBWr1KAdDvcAACpwbu_UCQ617.png)
基于BERT+Bo-LSTM+Attention的病歷短文分類模型
![基于<b class='flag-5'>BERT</b>+Bo-LSTM+Attention的病歷短文分類<b class='flag-5'>模型</b>](https://file.elecfans.com/web1/M00/EC/F6/pIYBAGCGXyCAbL_pAAI-ANm-kVY635.png)
基于BERT的中文科技NLP預訓練模型
基于Zero-Shot的多語言抽取式文本摘要模型
Instruct-UIE:信息抽取統一大模型
![Instruct-UIE:信息<b class='flag-5'>抽取</b>統一大<b class='flag-5'>模型</b>](https://file1.elecfans.com/web2/M00/82/3B/wKgZomRHP5CAdIKUAAAk766SQQs875.png)
評論