我們一起聊聊知識抽取,你學會了嗎?
一、簡介
知識抽取通常指從非結構化文本中挖掘結構化信息,如語義信息豐富的標簽、短語等。在業界被廣泛使用的場景包括內容理解、商品理解,從用戶生產的文本信息中挖掘有價值的標簽打在內容或商品上。
知識抽取通常伴隨著對所抽取標簽或短語的分類,通常被建模為命名實體識別任務,通用的命名實體識別任務就是識別命名實體成分并將成分劃分到地名、人名、機構名等類型上;領域相關的標簽詞抽取將標簽詞識別并劃分到領域自定義的類別上,如系列(空軍一號、音速 9)、品牌(Nike、李寧)、類型(鞋、服裝、數碼)、風格(ins 風、復古風、北歐風)等。
為描述方便,下文將信息量豐富的標簽或短語統稱為標簽詞。
二、知識抽取分類
圖1 知識抽取方法分類
三、標簽詞挖掘
無監督方法
基于統計的方法
- TF-IDF(Term Frequency-Inverse Document Frequency) :統計每個詞的 TF-IDF 打分,分數越高說明包含的信息量越大。
計算方法:tfidf(t, d, D) = tf(t, d) * idf(t, D),其中tf(t, d) = log(1 + freq(t, d)), freq(t,d) 表示候選詞 t 在當前文檔 d 中出現的次數,idf(t,D) = log(N/count(d∈D:t∈D)) 表示候選詞 t 出現在多少個文檔中,用來表示一個詞語的稀有度,假如一個詞語只在一篇文檔中出現,說明這個詞語比較稀有,信息量更豐富。
特定業務場景下可以借助外部工具對候選詞先進行一輪篩選,如采用詞性標識篩選名詞。
- YAKE[1]:定義了五個特征來捕捉關鍵詞特征,這些特征被啟發式地組合起來,為每個關鍵詞分配一個分數。分數越低,關鍵詞越重要。1)大寫詞:大寫字母的Term(除了每句話的開頭單詞)的重要程度比那些小寫字母的 Term 重要程度要大,對應到中文可能是粗體字次數;2)詞位置:每段文本越開頭的部分詞的重要程度比后面的詞重要程度更大;3)詞頻,統計詞出現的頻次;4)詞的上下文關系,用來衡量固定窗口大小下出現不同詞的個數,一個詞與越多不相同的詞共現,該詞的重要程度越低;5)詞在不同句子中出現的次數,一個詞在更多句子中出現,相對更重要。
基于圖的方法 Graph-Based Model
- TextRank[2]:首先對文本進行分詞和詞性標注,并過濾掉停用詞,只保留指定詞性的單詞來構造圖。每個節點都是一個單詞,邊表示單詞之間的關系,通過定義單詞在預定大小的移動窗口內的共現來構造邊。采用 PageRank 更新節點的權重直至收斂;對節點權重進行倒排序,從而得到最重要的 k 個詞語,作為候選關鍵詞;將候選詞在原始文本中進行標記,若形成相鄰詞組,則組合成多詞組的關鍵詞短語。
基于表征的方法 Embedding-Based Model
- EmbedRank[3]:通過分詞和詞性標注選擇候選詞,采用預訓練好的 Doc2Vec 和 Sent2vec 作為候選詞和文檔的向量表征,計算余弦相似度對候選詞進行排序。類似的,KeyBERT[4] 將 EmbedRank 的向量表征替換為 BERT。
有監督方法
- 先篩候選詞再采用標簽詞分類:經典的模型 KEA[5] 對四個設計的特征采用 Naive Bayes 作為分類器對 N-gram 候選詞進行打分。
- 候選詞篩選和標簽詞識別聯合訓練:BLING-KPE[6] 將原始句子作為輸入,分別用 CNN、Transformer 對句子的 N-gram 短語進行編碼,計算該短語是標簽詞的概率,是否是標簽詞采用人工標注 Label。BERT-KPE[7] 在 BLING-KPE 的思想基礎上,將 ELMO 替換為 BERT 來更好地表示句子的向量。
圖2 BLING-KPE 模型結構
遠監督方法
AutoPhrase
文中將高質量短語定義為具有完整語義的單詞,同時滿足以下四個條件:
- Popularit:文檔中出現的頻次足夠高;
- Concordance:Token 搭配出現的頻率遠高于替換后的其他搭配,即共現的頻次;
- Informativeness:有信息量、明確指示性,如 “this is” 就是沒有信息量的負例;
- Completeness:短語及其子短語都要具有完整性。
AutoPhrase 標簽挖掘流程如圖 3 所示,首先通過詞性標注篩選高頻 N-gram 詞作為候選,通過遠監督方式對候選詞作分類,再通過以上四個條件篩選高質量的短語(Phrase-Quality Re-Estimation)。
圖3 AutoPhrase 標簽挖掘流程
從外部知識庫獲取高質量的短語作為 Positive Pool,其他短語作為負例,按論文實驗統計,負例池中存在 10% 的高質量短語因為沒有在知識庫中被分到了負例中,因此論文采用了如圖 4 所示的隨機森林集成分類器來降低噪聲對分類的影響。在業界應用中,分類器的訓練也可以采用基于預訓練模型 BERT 的句間關系任務二分類方法[13]。
圖4 AutoPhrase標簽詞分類方法
四、標簽詞分類
有監督方法
NER 序列標注模型
Lattice LSTM[8] 是針對中文 NER 任務引入詞匯信息的開篇之作,Lattice 是一個有向無環圖,詞匯的開始和結束字符決定了格子位置,通過詞匯信息(詞典)匹配一個句子時,可以獲得一個類似 Lattice 的結構,如圖 5(a) 所示。Lattice LSTM 結構則融合了詞匯信息到原生的 LSTM 中,如 5(b) 所示,對于當前的字符,融合以該字符結束的所有外部詞典信息,如“店”融合了“人和藥店”和“藥店”的信息。對于每一個字符,Lattice LSTM 采取注意力機制去融合個數可變的詞單元。雖然 Lattice-LSTM 有效提升了 NER 任務的性能,但 RNN 結構無法捕捉長距離依賴,同時引入詞匯信息是有損的,同時動態的 Lattice 結構也不能充分進行 GPU 并行,Flat[9] 模型有效改善了這兩個問題。如圖 5(c),Flat 模型通過 Transformer 結構來捕捉長距離依賴,并設計了一種位置編碼 Position Encoding 來融合 Lattice 結構,將字符匹配到的詞匯拼接到句子后,對于每一個字符和詞匯都構建兩個 Head Position Encoding 和 Tail Position Encoding,將 Lattice 結構展平,從一個有向無環圖展平為一個平面的 Flat-Lattice Transformer 結構。
圖5 引入詞匯信息的 NER 模型
遠監督方法
AutoNER
采用 Tie or Break 的實體邊界標識方案來替代 BIOE 的標注方式來緩解遠監督帶來的噪聲問題,Tie 表示當前詞和上一個詞在同一個實體內,Break 表示當前詞和上一個詞不再同一個實體內。
在實體分類階段,通過模糊 CRF(Fuzzy CRF)來應對一個實體有多種類型的情況。
圖6 AutoNER 模型結構圖
BOND
圖片
圖7 BOND訓練流程圖
五、總結
參考文獻
【1】Campos R, Mangaravite V, Pasquali A, et al. Yake! collection-independent automatic keyword extractor[C]//Advances in Information Retrieval: 40th European Conference on IR Research, ECIR 2018, Grenoble, France, March 26-29, 2018, Proceedings 40. Springer International Publishing, 2018: 806-810. https://github.com/LIAAD/yake
【2】Mihalcea R, Tarau P. Textrank: Bringing order into text[C]//Proceedings of the 2004 conference on empirical methods in natural language processing. 2004: 404-411.
【3】Bennani-Smires K, Musat C, Hossmann A, et al. Simple unsupervised keyphrase extraction using sentence embeddings[J]. arXiv preprint arXiv:1801.04470, 2018.
【4】KeyBERT,https://github.com/MaartenGr/KeyBERT
【5】Witten I H, Paynter G W, Frank E, et al. KEA: Practical automatic keyphrase extraction[C]//Proceedings of the fourth ACM conference on Digital libraries. 1999: 254-255.
【6】Xiong L, Hu C, Xiong C, et al. Open domain web keyphrase extraction beyond language modeling[J]. arXiv preprint arXiv:1911.02671, 2019.
【7】Sun, S., Xiong, C., Liu, Z., Liu, Z., & Bao, J. (2020). Joint Keyphrase Chunking and Salience Ranking with BERT. arXiv preprint arXiv:2004.13639.
【8】Zhang Y, Yang J. Chinese NER using lattice LSTM[C]. ACL 2018.
【9】Li X, Yan H, Qiu X, et al. FLAT: Chinese NER using flat-lattice transformer[C]. ACL 2020.
【10】Shang J, Liu J, Jiang M, et al. Automated phrase mining from massive text corpora[J]. IEEE Transactions on Knowledge and Data Engineering, 2018, 30(10): 1825-1837.
【11】 Shang J, Liu L, Ren X, et al. Learning named entity tagger using domain-specific dictionary[C]. EMNLP, 2018.
【12】Liang C, Yu Y, Jiang H, et al. Bond: Bert-assisted open-domain named entity recognition with distant supervision[C]//Proceedings of the 26th ACM SIGKDD international conference on knowledge discovery & data mining. 2020: 1054-1064.
【13】美團搜索中NER技術的探索與實踐,https://zhuanlan.zhihu.com/p/163256192