全文框架概覽
一、關鍵短語抽取簡介
關鍵短語抽取 (keyphrase extraction),指從文章中提取典型的、有代表性的短語,期望能夠表達文章的關鍵內容。關鍵短語抽取對於文章理解、搜索、分類、聚類都很重要。而高質量的關鍵短語抽取算法,還能有效助力構建知識圖譜。
常見的關鍵短語抽取方法分為有監督 (supervised)和無監督 (unsupervised)。整體抽取流程則分為2個步驟:(1) candidate generation,得到候選短語集合;(2) keyphrase scoring,對候選短語進行打分。
Figure 1 Keyphrase整體流程
二、業內方法介紹
無監督方法
無監督的方法由於其不需要數據標註及普適性,得到了大範圍的應用。
Figure 2 無監督方法概覽
1. 基於統計的方法
2. 基於圖網絡的方法
3. 基於embedding的方法:這類方法,利用embedding來表達文章和短語在各個層次的信息(如:字、語法、語義等)。
Figure 3 典型無監督方法在benchmarks上的效果
雖然需要花費很多精力進行數據標註,但有監督方法在各個特定任務和數據集上,通常能夠取得更好的效果。
Figure 4 有監督方法概覽
1. 傳統的方法
2. 基於深度學習的方法
CorrRNN[15]同樣適用encoder-decoder結構,但是額外引入了兩種限制條件:
① Keyphrases應該儘量覆蓋文章的多個不同話題;
② Keyphrases應該彼此之間儘量不一樣,保證多樣性。
Figure 5 典型有監督方法在benchmarks上的效果
典型方法詳解
我們分別從有監督和無監督方法中,挑選兩種典型的、效果也很好的方法:SIFRank[16]和BERT-KPE[17],詳細介紹其原理和具體流程。這兩種方法也符合關鍵短語抽取的基本流程,均分為兩個步驟:
Figure 6 SIFRank和BERT-KPE流程圖
傳統的關鍵短語抽取方法,主要利用統計、語法等信息。ExpandRank[4], AutoPhrase[18]等算法被提出,通過引入相關的文章,或者利用外部知識圖譜等不同方式,引入外部信息。
近來,預訓練模型的快速發展給關鍵短語抽取也帶來了新的引入外部知識和信息的方法。SIFRank通過引入預訓練模型ELMo[19],對文章和短語得到動態的sentence embedding和phrase embedding,從字、詞、語法、上下文等多層次表達文章和短語,從而實現了高質量的關鍵短語抽取。該方法在不同的數據集上,均能取得很好的表現,可以作為一個不錯的基準模型,應用於各種不同應用下的關鍵短語抽取。
2.BERT-KPE
BERT-KPE是最近由thunlp提出的方法,在OpenKP和KP20K上都達到了state-of-the-art和良好的魯棒性。BERT-KPE使用預訓練模型BERT,採用多任務學習範式,同時訓練chunking network和ranking network,分別完成candidate chunking和ranking兩個任務。此外,該方法也非常靈活,可以根據需要,刪除任意一個子網絡,僅訓練另外一個子網絡。該算法主要分為以下幾步:
三、概念圖譜構建中BERT-CRF的技術實踐
在實際業務中,我們需要建設一個概念圖譜[21, 22]。
我們通過概念圖譜,利用概念對文章和內容進行精準的理解,建立概念和上層應用間的圖網絡關係,從而支撐相關的業務應用。概念圖譜本身是另外一個包含很多內容的話題,不在本文中過多闡述。在此,我們主要介紹概念圖譜中用到的關鍵短語抽取技術,特別是使用BERT-CRF進行candidate抽取的實踐。
Figure 8 概念圖譜構建中的BERT-CRF模塊
在該任務下, keyphrase的定義是我們希望獲取的概念,因此具有上面提到的兩個特點:(1) 用戶視角;(2) 精準和泛化。由於這兩個特點,不確定因素被無可避免地引入進來,從而導致keyphrase飄移的問題(keyphrase的標準不固定,與各種變量高度相關):
這些變化是動態且緩慢的過程。我們會定期更新關鍵短語抽取模塊,確保該環節能適應較大的變化。同時,我們也需要穩定的關鍵短語抽取模塊,從而在一定程度上,緩解keyphrase飄移的問題,提供具有魯棒性的概念抽取能力。
BERT[23]是非常優質的預訓練模型,包含了很多預訓練語料中蘊含的外部知識和信息。我們以此為基礎,訓練BERT-CRF模型,作為candidate generation中重要的一路召回。另外的召迴路包括基於模板 (pattern)和基於POS tags的NP抽取系統。CRF[12]是序列標註的經典方法,其核心思想是在進行序列標註時,把序列上的各個點當做一個整體來處理,而不是一個個獨立的點,各個點的標註結果是有一定依賴關係的,以路徑為單位進行訓練。因此,通過訓練,模型能在理解文本以外,還能理解輸出序列的規則性知識,比如,使用BIO標註模式時,O後面不能直接接I。如果直接使用BERT進行序列標註,最後一層的softmax,本質上是n個k分類問題;而BERT-CRF由於CRF layer的存在,本質上是1個k^n分類問題[24]。
Figure 9 BERT與BERT-CRF的對比[24]
為了驗證BERT-CRF確實能夠提供我們需要的魯棒的關鍵短語抽取能力,我們在NER和概念圖譜(抽取該應用下定義的keyphrase)兩個數據集上進行了以下的實驗。
概念圖譜中的關鍵短語抽取
▫ 來源
▪ 自有的標註數據(標準按照前述的兩個特點:用戶視角 & 精準和泛化)
▪ 訓練集:來自於sourceA (網絡爬取文章)
▪ 測試集:來自於sourceB (平安自有文章)
▫ 特點:存在前述的概念飄移問題
對於概念圖譜的關鍵短語抽取,我們希望在sourceA上訓練的模型,能夠更好地適應於sourceB(當然,我們最終的系統是在sourceA + sourceB + all other sources訓練得到的)。實驗設定中訓練和測試集採用不同來源,是為了在開發階段,檢驗搭建的模塊是否能夠提供我們需要的魯棒性。
NER數據集上的實驗
NER數據集上,通過初版實驗發現,BERT & BERT-CRF效果幾乎一樣,這個結論是與BiLSTM和CNN添加CRF layer的結論是不同的。具體查看模型中的參數,發現transition matrix的值很不合理[24]。BERT是預訓練模型,其中的參數、權重本身就比較合理。經驗上來說,BERT適合的學習率一般都很小,在1e-4和1e-5之間。BERT部分快速收斂,但是CRF layer卻遠未到最佳。但是由於BERT的輸出,已經很合理了,因此即使CRF layer參數還未收斂,也不影響最終輸出比較合理的序列結果。相應地,我們對CRF的learning rate進行了調整,採用BERT learning rate的100倍。代碼實現如下:
(https://github.com/macanv/BERT-BiLSTM-CRF-NER/blob/master/bert_base/bert/optimization.py, line: 59-81, crf_lr_multipler default value is 100, 修改如下:)
optimizer2 = AdamWeightDecayOptimizer(learning_rate = learning_rate * crf_lr_multiplier, weight_decay_rate = 0.01, beta_1 = 0.9, beta_2 = 0.999, epsilon = 1e-6, exclude_from_weight_decay = [『LayerNorm』, 『layer_norm』, 『bias』]
if use_tpu:
optimizer = tf.contrib.tpu.CrossShardOptimizer(optimizer)
tvars = tf.trainable_variables()
tvars1 = tvars[:-1]// all variables except the CRF layer parameters
tvars2 = tvars[-1:]// parameters in CRF layer
grads = tf.gradients(loss, tvars1 + tvars2)
grads1 = grads[:-1]
grads2 = grads[-1:]
train_op1 = optimizer.apply_gradients(zip(grads1, tvars1), global_step = global_step)
train_op2 = optimizer.apply_gradients(zip(grads2, tvars1), global_step = global_step)
new_global_step = global_step + 1
train_op = tf.group(train_op1, train_op2, [global_step.assign(new_global_step)])
return train_op
調整學習率之後,發生了如下變化:
與NER數據集那樣標準明確不同的是,概念圖譜數據集,由於定義的keyphrase具有兩個特點:(1) 用戶視角; (2) 精準和泛化,存在飄移的問題。在採用BERT-CRF,並且調整learning rate之後,我們發現效果得到了極大的提升:
關鍵短語抽取是NLP的一個基礎任務,對於內容理解、搜索、推薦等各種下遊任務,都非常重要。統計學、語法、句法、語義等多來源特徵被引入和使用,用來抽取候選短語和對短語進行打分。隨著預訓練模型的發展,各種知識圖譜的構建,更多外部知識和信息能夠被引入,從而促進關鍵短語抽取算法的效果提升。同時,更好的關鍵短語抽取系統又能反哺各項任務,比如:知識圖譜的構建,以及我們正在進行的概念圖譜構建,最終整體形成閉環,促進各項技術的進步。
引用:
1.Awajan, A.A. Unsupervised Approach for Automatic Keyword Extraction from Arabic Documents. in Proceedings of the 26th Conference on Computational Linguistics and Speech Processing (ROCLING 2014). 2014.
2.Mihalcea, R. and P. Tarau. Textrank: Bringing order into text. in Proceedings of the 2004 conference on empirical methods in natural language processing. 2004.
3.Page, L., et al., The pagerank citation ranking: Bringing order to the web. 1999, Stanford InfoLab.
4.Wan, X. and J. Xiao. Single Document Keyphrase Extraction Using Neighborhood Knowledge. 2008.
5.Florescu, C. and C. Caragea. Positionrank: An unsupervised approach to keyphrase extraction from scholarly documents. in Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2017.
6.Bennani-Smires, K., et al., Embedrank: Unsupervised keyphrase extraction using sentence embeddings. arXiv preprint arXiv:1801.04470, 2018.
7.Witten, I.H., et al., Kea: Practical automated keyphrase extraction, in Design and Usability of Digital Libraries: Case Studies in the Asia Pacific. 2005, IGI global. p. 129-152.
8.Hulth, A. Improved automatic keyword extraction given more linguistic knowledge. in Proceedings of the 2003 conference on Empirical methods in natural language processing. 2003. Association for Computational Linguistics.
9.Caragea, C., et al. Citation-enhanced keyphrase extraction from research papers: A supervised approach. in Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP). 2014.
10.Jiang, X., Y. Hu, and H. Li. A ranking approach to keyphrase extraction. in Proceedings of the 32nd international ACM SIGIR conference on Research and development in information retrieval. 2009.
11.Bougouin, A., F. Boudin, and B. Daille, Keyphrase annotation with graph co-ranking. arXiv preprint arXiv:1611.02007, 2016.
12.Lafferty, J., A. McCallum, and F.C. Pereira, Conditional random fields: Probabilistic models for segmenting and labeling sequence data. 2001.
13.Zhang, Q., et al. Keyphrase extraction using deep recurrent neural networks on twitter. in Proceedings of the 2016 conference on empirical methods in natural language processing. 2016.
14.Meng, R., et al., Deep keyphrase generation. arXiv preprint arXiv:1704.06879, 2017.
15.Chen, J., et al., Keyphrase generation with correlation constraints. arXiv preprint arXiv:1808.07185, 2018.
16.Sun, Y., et al., SIFRank: A New Baseline for Unsupervised Keyphrase Extraction Based on Pre-Trained Language Model. IEEE Access, 2020. 8: p. 10896-10906.
17.Sun, S., et al., Joint Keyphrase Chunking and Salience Ranking with BERT. arXiv preprint arXiv:2004.13639, 2020.
18.Shang, J., et al., Automated phrase mining from massive text corpora. IEEE Transactions on Knowledge and Data Engineering, 2018. 30(10): p. 1825-1837.
19.Peters, M.E., et al., Deep contextualized word representations. arXiv preprint arXiv:1802.05365, 2018.
20.Arora, S., Y. Liang, and T. Ma, A simple but tough-to-beat baseline for sentence embeddings. 2016.
21.Liu, B., et al. A User-Centered Concept Mining System for Query and Document Understanding at Tencent. in Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2019.
22.Luo, X., et al., AliCoCo: Alibaba E-commerce Cognitive Concept Net. arXiv preprint arXiv:2003.13230, 2020.
23.Devlin, J., et al., Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805, 2018.
24.蘇劍林. 你的 CRF 層的學習率可能不夠大. 2020-02-07; Available from: https://kexue.fm/archives/7196.