本文做者:騰訊雲高級研究員 孟輝。畢業於中國科學院大學控制科學與工程系,具備豐富的機器學習與數據挖掘經驗。加入騰訊雲AI語義產品組後,主要負責知識圖譜相關產品的研發與應用。算法
知識圖譜最先由谷歌公司在2012年提出,其使用語義檢索的方法從多種語言的數據源(例如FreeBase、維基百科等)收集信息並加工,以提升搜索質量、改善搜索體驗。實際上,2006年Tim Berner-Lee就提出了Linked Data也就是一種在萬維網數據上建立語義關聯的方法。再往前追溯,語義鏈網絡(Semantic Link Network)已經有了比較系統的研究,旨在創立一個自組織的語義互聯方法來表達知識來支持智能應用,系統性的理論和方法能夠參考H. Zhuge在2004年發表的《The Knowledge Grid》一文。數據庫
你們可能會關注,快速構建知識圖譜須要哪些技術棧呢?數據採集、數據清洗、知識抽取、知識融合、圖存儲是構建知識圖譜最基本的技術棧,筆者這裏參考百家之言將構建知識圖譜的技術流程總結以下:小程序
咱們再回到最初的原點,窺探知識圖譜的本質。知識圖譜,其本質是由節點和邊組成的語義網絡。其中,節點表明了物理世界中的實體或概念,邊表明了實體之間的關係。「THINGS NOT STRINGS」,不要無心義的字符串,而是獲取字符串背後隱含的對象或事物。舉例來說,歌手、演員劉德華就是上文中提到的實體,生日、妻子、身高和電影做品就是實體劉德華的屬性;電影做品《無間道》的導演是劉偉強,製片所在的國家和地區是中國香港等等。微信
從宏觀的角度來看,知識圖譜已經在個性化推薦、地址解析、搜索引擎、智能問答以及教育中普遍落地應用。騰訊雲知識圖譜團隊也嘗試在不一樣的場景中進行了探索,例如在短視頻推薦中用到了基於知識圖譜的相關實體推薦、在智能問答中用到了基於知識圖譜的知識問答技術。騰訊雲知識圖譜團隊結合業務場景開發了一款小程序,集成了圖譜可視化、知識問答等等,感興趣的讀者能夠掃描二維碼進行體驗。網絡
根據上文中提到的知識圖譜技術架構來看,將非結構化數據轉換爲便於在圖數據庫中存儲的結構化數據通常須要作知識抽取,而知識抽取又包括實體抽取、關係抽取、屬性抽取和概念抽取。通常地,實體抽取、屬性抽取和概念抽取能夠抽象爲序列標註任務,關係抽取則能夠抽象爲分類任務。騰訊雲知識圖譜團隊結合自身業務場景研發出了一套知識抽取算法框架(Merak,天璇知識抽取算法框架,正如《晉書·天文志》中講到的北斗七星在太微北,架構
樞爲天,璇爲地,璣爲人,權爲時,衡爲音,開陽爲律,搖光爲星。),能夠實現一站式知識抽取算法任務。在屬性抽取和概念抽取任務中,Merak知識抽取算法框架提供了多種算法模型,例如BERT(Bidirectional Encoder Representations from Transformers)、Bi-LSTM+CRF等等。總的來看,Merak算法框架具備如下技術優點:app
在實驗效果方面,Merak在關係抽取(含多示例學習)、關係抽取和屬性抽取等多項任務中表現優異,不管是訓練時間開銷仍是預測精度均達到了業界領先水準。框架
這裏提一下,在構建知識圖譜的過程當中實際上也是權衡的過程,特別是過於粗放的領域知識圖譜可能對業務起不到應用的效果,特別是對於問答、任務型對話等急需細粒度知識的任務;若圖譜的構建過於精細,除了構建成本會變得很是昂貴之外,也會由於數據噪聲使得一些任務(基於知識圖譜的推理)變的困難和難以使用。機器學習
接下來,筆者從0到1向你們介紹若是利用Merak算法框架實現屬性抽取任務。分佈式
你們知道,BERT在11項權威NLP任務中取得了不俗的效果,這裏就以BERT爲例展開探討。初步選定模型後,須要準備訓練樣本,天璇在算法框架中提供了人物屬性抽取樣本集,涉及到的屬性有出生年月、出生地、畢業院校等,具體地,以下圖中上半部分所示。
正如前文所述,天璇知識抽取算法框架提供了多種屬性抽取算法模塊,例如BERT、Bi-LSTM+CRF等經典算法。在上圖中,左邊爲BERT模型的輸入向量生成方法,整個計算流程主要分爲兩步走,先是進行模型預訓練((1)語言模型-上下文中缺失詞的預測;(2)句對二元關係預測-是不是下一句),而後在此基礎上進行Fine-tune微調;右邊爲基於Bi-LSTM+CNNs+CRF模型的序列標註方法。
那麼基於BERT模型微調的方法和基於Bi-LSTM+CNNs+CRF/Bi-LSTM+CRF模型的序列標註方法有什麼區別?筆者這裏作了簡單的分析,結果以下:
接下來,就是下載項目代碼,開始人物屬性抽取模型訓練,這裏須要特別注意的是須要提早下載好已經預訓練好的中文預訓練模型(這裏咱們使用的是基礎版本的中文預訓練模型),而且將訓練樣本放置在./../people_attribute_extraction文件夾下,其餘相關的準備工做能夠參考下圖中快速開始部分。
模型訓練完成後,筆者這裏對不一樣方法在人物屬性抽取樣本上的訓練效果作了對比分析,結果以下圖所示,實驗發現基於BERT+全鏈接的方法效果最優,F1值約爲0.985。
這裏插播一條行業快訊,近期英偉達公司利用512塊高性能v100 GPU,訓練了號稱業界最大的基於Transformer的語言模型,並且參數量高達83億,遠遠大於谷歌公司對外公佈的預訓練模型。
至此,人物屬性抽取模型訓練過程介紹完畢,同理概念抽取、關係抽取和實體抽取能夠參考相似的操做流程,感興趣的讀者可自行嘗試。
在介紹騰訊雲百科知識圖譜以前,筆者先對通用知識圖譜和領域知識圖譜兩者之間的區別和聯繫進行分析,以下圖所示:
從上圖能夠看出兩者在真實場景中的知識表示、知識獲取和知識應用等維度都有着較大差別,並且知識圖譜的構建須要綜合多項因素協同考慮,其中圖譜質量、圖譜構建成本和圖譜更新是最爲重要的幾個關鍵因素。另外一方面,圖譜質量和圖譜構建成本每每相互制約,須要咱們基於特定任務作好平衡。
騰訊雲百科知識圖譜(騰訊雲百科知識圖譜是騰訊雲知識圖譜團隊與騰訊AI LAB TopBase團隊共同建設的雲上產品)屬於通用知識圖譜的範疇,雖然知識粒度較粗,但知識覆蓋度較大,目前覆蓋了51個領域(主要以音樂、影視、百科爲主),221個類型、4320個屬性,超過9700萬實體,近10億三元組,支持全量或增量更新。詳細的領域劃分以下圖所示:
這裏筆者對業界對外開放的中文百科類知識圖譜實體和三元組規模作了調研分析,結果以下:
名稱 |
實體數 |
三元組 |
---|---|---|
CN-DBpedia |
1689萬+ |
2.2億+ |
zhishi.me |
1728萬+ |
1.2億+ |
騰訊雲百科知識圖譜 |
9700萬+ |
10億+ |
騰訊雲百科知識圖譜構建數據來源主要有騰訊文娛、中文百科、互動百科、中文新聞、豆瓣等,所以騰訊雲百科知識圖譜在科技、音樂、體育及影視領域不管是實體仍是三元組數量都更爲豐富,那麼對應的構建詳細流程以下所示:
目前,騰訊雲百科知識圖譜相關接口處於免費內側階段,感興趣的讀者能夠按照以下流程申請接入使用:
這裏筆者推薦用戶經過騰訊雲提供的SDK工具箱調用百科知識圖譜API接口,示例以下:
寫到這裏,已近尾聲,筆者經過本文向你們介紹了:
時間倉促,不到之處,敬請見諒。
原文連接:https://cloud.tencent.com/developer/article/1494570