首頁 >科技週邊 >人工智慧 >我們一起聊聊知識抽取,你學會了嗎?

我們一起聊聊知識抽取,你學會了嗎?

PHPz
PHPz轉載
2023-11-13 20:13:02683瀏覽

一、簡介

知識抽取通常指從非結構化文字中挖掘結構化訊息,例如含有豐富語意資訊的標籤和短語。這在業界被廣泛應用於內容理解和商品理解等場景,透過從用戶生成的文本資訊中提取有價值的標籤,將其應用於內容或商品上

#知識抽取通常伴隨著對所抽取標籤或短語的分類,通常被建模為命名實體識別任務,通用的命名實體識別任務是識別命名實體成分並將成分劃分到地名、人名、機構名等類型上;領域相關的標籤詞抽取將標籤詞識別並劃分到領域自訂的類別上,如係列(空軍一號、音速9)、品牌(Nike、李寧)、類型(鞋、服裝、數碼)、風格(ins 風、復古風、北歐風)等。

為了方便描述,下文將富含資訊的標籤或短語統一稱為標籤詞

二、知識抽取分類

本文從標籤詞挖掘和標籤詞分類兩個角度介紹知識抽取的經典方法。將標籤詞挖掘方法分為無監督方法、有監督方法及遠端監督方法,如圖 1 所示。標籤詞挖掘透過候選詞挖掘和短語評分兩個步驟篩選高評分的標籤詞,標籤詞分類通常將標籤詞抽取和分類聯合建模,轉化為命名實體識別的序列標註任務。

我們一起聊聊知識抽取,你學會了嗎?圖1 知識抽取方法分類

三、標籤詞挖掘

無監督方法

基於統計的方法

首先對文件進行分詞或將分詞後的詞進行N-gram 組合作為候選詞,再根據統計特徵來對候選詞評分。
  • 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

遠監督方法的典型代表是AutoPhrase[10],在業界標籤詞探勘中被廣泛使用。 AutoPhrase 借助現有的高品質知識庫進行遠端監督訓練,避免人工標註。 在本文中,我們將高品質短語定義為那些具備完整語義的單詞,在同時滿足以下四個條件的情況下

    Popularit:文檔中出現的頻次夠高;
  • Concordance:Token 搭配出現的頻率遠高於替換後的其他搭配,即共現的頻次;
  • Informativeness:有資訊量、明確指示性,如「this is」就是沒有資訊量的負例;
  • Completeness:片語及其子片語都要具有完整性。
AutoPhrase 標籤挖掘流程如圖 3 所示。首先,我們使用詞性標註篩選高頻 N-gram 字作為候選。然後,我們透過遠監督的方式對候選詞進行分類。最後,我們使用以上四個條件篩選出高品質的短語(短語品質再估計)

我們一起聊聊知識抽取,你學會了嗎?圖3 AutoPhrase 標籤挖掘流程

#從外部知識庫獲取高品質的短語作為Positive Pool,其他短語作為負例,按論文實驗統計,負例池中存在10% 的高質量短語因為沒有在知識庫中被分到了負例中,因此論文採用瞭如圖4 所示的隨機森林整合分類器來降低雜訊對分類的影響。在業界應用中,分類器的訓練也可以採用基於預訓練模型 BERT 的句間關係任務二分類方法[13]。

我們一起聊聊知識抽取,你學會了嗎?圖4 AutoPhrase標籤詞分類方法

#四、標籤詞分類

有監督方法

NER 序列標註模型

命名實體辨識(Named Entity Recognition,NER)也是一種候選詞篩選和標籤詞辨識聯合訓練的標籤抽取方法,通常針對句子資訊量比較重複的場景,來辨識句子中的實體成分,採用序列標註模型實現。將句子作為輸入,對句子中的每個Token 預測屬於以下Label 的機率:B(Begin)-LOC(地名),I(Inside)-LOC(地名),E(End)-LOC(地名),O (Others)等,其中「-」 後面的是實體詞所屬的類別。在中文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

AutoNER[11] 採用外部字典構造訓練資料進行遠監督實體識別,首先進行實體邊界識別(Entity Span Recognition),再進行實體分類(Entity Classification)。外部字典的構造可以直接使用外部知識庫,也可以採用 AutoPhrase 的挖掘方式先進行離線標籤詞挖掘,再用 AutoNER 模型進行標籤詞增量更新。

為了解決遠監督中的噪音問題,我們採用了Tie或Break的實體邊界識別方案來取代BIOE的標註方式。其中,Tie表示當前詞和上一個詞屬於同一個實體,而Break表示當前詞和上一個詞不再同一個實體中

在實體分類階段,使用模糊CRF(Fuzzy CRF)來應對一個實體具有多種類型的情況

我們一起聊聊知識抽取,你學會了嗎?圖6 AutoNER 模型結構圖

BOND

BOND[12] 是一個兩階段的基於遠距監督學習的實體辨識模型。在第一階段中,採用遠距離標籤使預訓練語言模型適應NER 任務;在第二階段,首先用階段一中訓練的模型初始化Student 模型和Teacher 模型,然後使用Teacher 模型產生的偽標籤對Student 模型進行訓練,最小化遠監督帶來的噪音問題的影響。

我們一起聊聊知識抽取,你學會了嗎?圖片

需要重新書寫的內容是:圖7 BOND訓練流程圖

五、總結

本文從標籤詞挖掘和標籤詞分類兩個角度介紹了知識抽取的經典方法,包括不依賴人工標註數據的無監督和遠監督經典方法TF-IDF、TextRank,業界被廣泛使用的AutoPhrase、AutoNER 等,可為業界內容理解、Query 理解的字典構造、NER 等方向提供參考。

參考文獻

【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. /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. arXiv preprint arXiv:1801.04470, 2018.KKey#BERT#://gKKey:2018. .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】熊L,胡C,熊C,等。超越語言模型的開放領域Web關鍵字擷取[J]。 arXiv預印本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】張Y,楊J。使用格子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

以上是我們一起聊聊知識抽取,你學會了嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除