分享嘉賓:彭力 小米
編輯整理:馬瑤
出品平臺:DataFunTalk
導讀:小米知識圖譜于2017年創立,知識已支持公司了每天億級的圖譜訪問,已賦能小愛同學,小米小米有品、智能問答、用戶畫像、虛擬助手、智能客服等互聯網產品。通過引入知識圖譜,這些產品在內容理解、用戶理解、實體推薦等方面都有了顯著的效果提升。本文的主要內容包括:
小米知識圖譜介紹:包括小米的商業模式、小米人工智能部、知識圖譜在人工智能部的定位、小米知識圖譜的發展歷程、以及小米知識圖譜的落地場景。
小米知識圖譜關鍵技術:小米知識圖譜在成長過程中的技術積累。
小米行業知識圖譜探索:結合業務,跟大家分享下小米在行業圖譜上的探索。
1.?小米知識圖譜介紹
在了解小米知識圖譜之前,先介紹下小米的商業模式。小米在商業模式上提出硬件+新零售+互聯網鐵人三項的商業模式。這種商業模式下有像手機、小米音箱類的智能硬件;有米商城,有品電商這樣的新零售;還有像人工智能這樣的互聯網服務。三者相扶相持,相互促進,是一種閉環的生態模式,在這種生態模式下,有很多潛在的應用場景,對人工智能,對內容和知識有很多訴求。
小米人工智能部已經構建了完整的中臺體系,囊括了視覺、NLP、知識圖譜、語音、深度學習等底層的基礎能力,其中知識圖譜就處于這一層。
中間層是問答服務、智能客服等應用能力層,上層是小愛同學、商城等互聯網業務和傳統業務層,這些都是知識圖譜的落地場景,其中小愛同學是小米公司推出的虛擬人工的智能助理,小愛同學適用于手機、音響、電視、手表以及手環等穿戴設備,通過搭載小愛同學的智能硬件,可以滿足用戶獲取知識和信息的需求。
小米知識圖譜在中臺體系下不斷的成長,2017年小米知識圖譜有了一些開放知識的積累, 2018年知識圖譜團隊成立,2018年底,通用知識圖譜的構建,百科類圖譜構建完成,2019年中,業務拓展,線上調用達到近億次,2019年底,知識擴增,知識積累了超三百億,2020年行業探索,行業圖譜落地。雖然發展的比較晚,但是在自己的業務場景下,發展還算迅速。
小米知識圖譜在公司的職責,主要是研究開放領域和行業領域的構建和應用技術,并把圖譜推廣到相關業務場景上,來提高用戶的滿意度的和業務變現轉化能力。團隊已構建超三百億開放知識和涉及13個領域。除此之外,小米還參與了一些開放知識圖譜的構建,是OpenKG之OpenBase子項目組主要成員單位,是IEEE知識圖譜國家標準編制組主要成員。
小米知識圖譜已經已經賦能公司10+個業務場景,這些落地場景包括智能問答、智能客服、小愛同學、虛擬助手、全局搜索、NLP等這樣通用的知識領域。還有像游戲中心、廣告,小米有品,小米網等這樣的行業知識,下面我會重點介紹一下具體場景的細節。
2. 應用場景:智能問答
第一個是小米知識圖譜在智能問答場景的應用,這個比較廣泛,落地的設備較多,已服務于手機、音響、智能穿戴、智能車載、電視、兒童設備。應用于小愛音響、小愛同學、小尋手表、車載設備等,滿足用戶近億次/天的請求,后面我們介紹落地場景的示例。
目前,智能問答包括兩種模式:一種是一般問答模式,還有一種是規則推理的。一般問答場景下,在返回具體答案的同時,還會把關聯實體的附加信息滿足給用戶,比如用戶詢問鞏俐的籍貫的時候,返回答案不只是會返回山東濟南,還會把問答實體鞏俐的視頻,人物關系,資訊新聞,代表作品等都呈現給用戶,這樣在用戶興趣激發上起到了很大作用。另外一個古詩詞CASE,也能很好的體現這一點,比如用戶問靜夜思的作者是誰,用戶除了想得到這首詩的作者外,可能還想溫故這首詩,也可能想要了解這首詩的釋義。所以我們會把有聲資源、釋義一并滿足給用戶。
最后,問答在歧義場景下還支持列表形式展現。
除了一般的問答方式以外,小米還支持推理的問答。比如:多條件推理,多跳關系推理,還支持像求最大值,最小值這種基礎推理算子。多條件推理的例子如:山東籍的雙子座是誰,首先會對數據庫中人物實體的生日推理出星座是雙子座,然后推出省份,最后篩選聚合產出實體結果 ,第二種是多跳關系推理,比較典型的就是人物與人物的六度關系推理,如:徐志摩與梁思成的兒子梁從誡是什么關系?我們會試圖計算起始實體到目標實體的關系的最短可達路徑呈現給用戶。現有的推理邏方法,比如說基于規則的推理、基于模型的推理,規則推理主要包含規則引擎和一階的邏輯規則。模型推理是用機器學習去表示學習關系推理。所以這里根據自己的需求、應用場景和應用情況去選擇。
后面介紹一些基于智能問答的一些方法。基于圖譜的智能問答,通用流程如下:語音識別環節,意圖識別,實體匹配,實體查詢返回結果。
舉個例子,如武漢大學周邊什么好吃的,首先做分詞或者詞法分析,分出武漢大學和好吃的這些關鍵mention,然后意圖識別計算得到是美食需求的,第三步是實體識別,把mention武漢大學映射到知識圖譜中的實體上,把屬性好吃映射成推薦食物,最后實體查詢計算,返回熱干面,武昌魚,豆皮,油燜大蝦。
小米基于知識問答有很多方法,第一種是基于模版的方法,它的大體流程是這樣的:
第一步對query做實體鏈接(實體鏈接技術在第二部分會詳細介紹),第二步把實體名用實體鏈接后的主實體對應的實體類型替換后去離線的模板庫匹配,返回模板庫中映射后的歸一的模版,最后查詢實體庫返回答案。
舉個例子:
姚明的老婆是誰,第一步先做實體鏈接,后面把姚明的實體類型人物替換姚明,去人物垂域模板規則庫查詢模板,發現命中了lambda_x.配偶這個模板。最后在圖譜數據國查詢姚明的配偶,返回答案葉莉。這種方法有一個好處就是準確率比較好,是離線挖掘的模板,所以性能也比較好,但是缺點也比較明顯泛化能力差。其中模板的挖掘方法的話,主要是離線從知識圖譜中實體中找目標實體對,然后去問答論壇去匹配問題與答案分別出現的pair,生成模板的pair,這么做會有很多噪聲需要做進一步過濾,比如:需要過濾掉出現多屬性的問答對的情況和頻次出現比較低的情況。
為了解決第一種方法泛化性能比較差的問題,用第二種方式基于槽填充的方式來互補。第一種方法在李白有哪些詩的時候,可以命中模版庫滿足用戶的需求。但是變成李白有名的詩有哪些時,就無法找到答案了。為了解決這種問題,我們用了槽填充和意圖識別聯合學習的方法方法,借鑒了2016年liu的基于attention的意圖檢測和插槽填充聯合學習的的方法。該方法把槽填充與意圖識別聯合的學習,方法包含兩部分槽填充和意圖識別,兩部分組成,第一部分是槽填充問題轉化為序列標注的NER問題,第二步是意圖識別,把意圖識別轉換為文本分類問題。最后把兩個問題整合做一個聯合學習。PPT右下角已給出論文和代碼。該方法在部分垂哉上的召回的提升比較明顯。在菜譜,古詩垂域上欠召回的badcase解決率為30%
第三種方法是基于子圖檢索,該方法依賴于實體的關系路徑。具體第一步query做實體鏈接,把實體轉化為實體ID,第二步根據實體周圍的屬性篩選出候選路徑。第三步對輸入文本與候選路徑進行實體語義相似和排序,取top結果。
以姚明老婆的國籍是啥為例子,第一步用實體鏈接找到用到接接到知識圖譜姚明這個實體;第二步就是找到姚明這個實體周邊的候選的屬性路徑,如姚明的配偶的國籍,姚明配偶的身高,姚明配偶的類型,姚明教練的出生日期,姚明隊友的出生地等;第三步用bert計算候選路徑和目標路徑的相似關系,除了相似度外,引入了像類型過濾這樣的條件約束,過濾給出排序分值然后取一個最大值。
以上都是基于圖譜的結構化的問答場景,對于非結構的, 比如:天空為什么是藍色的,怎么控制貓的飲食量,青蛙王子是不是安徒生的童話,這三種為什么,怎么樣,是不是,類型的問題,以上方法無法解決,需要通過基于搜索的FAQ的方式,這里就不介紹了。
3. 應用場景:智能客服
第二個是知識圖譜到智能客服的場景。目前智能客服已經落地小米網和小米金融等業務場景下。PPT中是智能客服團隊用NL2SQL的方法在基金客服上的一個落地場景。
知識圖譜在智能客服中的技術框圖體系,第一層是數據標準化層,主要包括數據倉庫,數據治理,數據融合,第二層是AI引擎層,有實體抽取引擎,屬性集合引擎、知識圖譜引擎等,第三層是數據共享交換層,第四層是數據服務,數據分析等。
4. 應用場景:小米商城&游戲中心
第三個應用場景是在小米商城和游戲中心的應用,目前商品圖譜和游戲圖譜已應用到小米商城,有品商城,游戲中心等業務下。已落在有品商城/小米商城的場景詞搜索發現、用戶sug引導、商品評價的用戶觀點的的用戶觀點的抽取及聚合,及游戲的評論的觀點抽取及聚合業務上。在小米的商品圖譜取得不錯的效果,已助力商品轉化率、用戶購買轉化率及游戲下載率至少有30%的提升。
另外小米知識圖譜還在多模態圖譜應用場景下做了嘗試,與AI虛擬助手合作探索了圖片態與文本態實體語義關聯,目前已上線植物識圖的功能,后面會持續的擴展。小米知識圖譜的落地場景很多,這里只介紹了一部分,后面是小米知識圖譜積累的一些關鍵技術。
1.?小米知識圖譜賦能各業務場景
目前小米知識圖譜已經具備20+關鍵能力,比如實體鏈接,實體融合,概念圖譜,實體推理,實體分類,知識理解,實體關聯,用戶理解等等,后面挑出實體鏈接,實體融合,概念圖譜挖掘三個關鍵技術和大家分享探討。
2. 關鍵技術:實體鏈接
實體鏈接 ( Entity Linking ),也叫實體鏈指,該任務要求我們將非結構化數據中的表示實體的詞語(即所謂mention,對某個實體的指稱項)識別出來,并將從知識庫 ( 領域詞庫,知識圖譜等 ) 中找到mention所表示的那一個實體所以實體鏈接的任務定義:就是給定文本mention,判定指代知識圖譜中的實體首先第一個是實體鏈接 ( Entity Linking )。
舉個例子:
比如說劉德華的天下無賊主題曲那一天是誰唱的,實體鏈接需要把劉德華,天下無賊,那一天三個mention聯接到知識圖譜的實體上。以方便應用到如主題分析,語義的信息檢索等更深度的應用場景下。
常見的實體鏈接如PPT流程。包括中文的切詞,命名實體識別,候選實體選取,實體消歧,實體排序,判空幾部分。第一步中文切詞有很多方法,比如像結巴等一些開源的工具,我們的做法是整合了已有的實體名、實體同義詞名,及開放錨文本信息做為詞典,用維特比算法構造了切詞功能。除了切詞外我們還用的序列標注的方式做了命名實體識別,把實體詞表與NER的結果合并。
其中NER用的是BERT+CRF。在NER的訓練數據集構造上,起初用遠程監督的方法構造訓練集的方法,但是發現在句子中有多個實體詞的情況,遠程監督的方式只能標注出部分實體詞,這樣對模型的召回影響比較大。所以我們利用開放比賽的標注數據作為數據集,再加上部分遠程監督的數據和人工標注的數據作為最終的訓練樣本。這種方式的訓練結果比只有遠程監督的樣本訓練的結果提升10個點左右。
接下來第二步是候選實體選取,我們離線挖掘了大量的同義詞,別名,縮寫詞等,放在圖譜實體。命中label,alias,同義詞,縮寫的作為候選對象。但是調研中發現過多的候選詞不一定有好的效果,比如:長尾的,互動比較少、豐富度比較少的實體引入會造成很多噪聲并且很影響處理性能。因此我們利用用戶使用的熱度,實體的流行度,實體豐富度等對候選實體做了篩選和過濾。精簡后準確率提升了3%,召回下降0.4%,預測速度提升50%。
接下來是實體消歧,實體排序,判空這三塊。這三塊不好解耦,所以可以一塊來說。這里用到了兩處種特征,第一種是上下文無關的,第二種是語義相關聯的特征。
上下文無關的特征包含:實體流行度,用戶熱度,實體豐富度等等。語義相關的特征包括三部分:
① 對輸入實體mention預測實體類型, 用到的18年Raiman, J. R., & Raiman, O. M.發表的"DeepType:用神經網的分類系統演化來做多語言實體鏈鏈接"的方法,該方法基于當我們知道了候選實體的類型之后,這個消歧的任務便被解決得差不多了的假設將實體鏈接過程看成是分類獲取的過程。分類的過程是針對知識庫中的分類體系設計了一個DeepType的預測系統。具體是用輸入數據文本通過bert編碼取CLS 位置的向量、候選實體對應開始和結束位置對應的特征向量,三個向量連接,經過全連接層,最后softmax激活得到候選實體的類別得到分類。
② 是DeepMatch部分,參照18年 Le, P., & Titov, I的一種通過候選實體與mention之間的潛在關系建模來提升實體鏈接的效果。該文章提出了將實體鏈接問題轉化為文本語義匹配問題,構建了一個DeepMatch模型來匹配輸入語句的上下文和候選實體的描述信息對。把待消歧文本作為text_a,每個候選實體的SPO全部連接起來組成一段文本text_b,計算text_a和text_b的相關性 。訓練時選取連接到的實體作為正例,在候選實體里選取負例。兩個句子長度最大選取為256,負樣本選取了3個。取CLS 位置向量、候選實體對應開始和結束位置對應的特征向量,三個向量連接經過全連接層,最后sigmoid激活得到候選實體的概率得分。
③ 除了這兩個特征外還有共現、協同推斷等特征。最后把是否存在多個同義詞指向同一個實體、其他mention是否出現在該實體的信息里、LinkCount、DeepMatch模型的相似度、DeepType模型的相似度等經過MLP得到一個分值,排序取 top1的實體,如果top1的分值大于閾值就判定該實體,如果小于閾值則為空。
小米知識圖譜通過該方法參加了2020CCKS比賽,很榮幸拿到了總決賽的第一名,F1的值達到了0.8954。但是這種方法在我的業務場景,準確率召回可以達到96%以上。
另外,除了效果,這里在業務上有會有處理性能的問題,所以這里用到三種方法加速,第一是引用了tensorflow的batching serving,第二是把bert中的transformer 用nvidia的faster Transformer替換,第三是用Fp16的方法量化,這種加速效果比較明顯的QPS從30提升到1200。
3. 關鍵技術:知識融合
第二種關鍵技術,是知識融合,該任務的定義是,給定實體集合,識別并合并等價實體 ( 注:等價定義為待融實體指代了現實世界中同一事物或概念 ) 。舉這個例子,花木蘭電影有來自騰訊,愛奇藝,優酷,豆瓣,電視貓, 維基的數據。需要把實體化后的小實體,找到歸一組,合并融合生成新的實體,更新至知識庫圖譜中這一過程中稱為知識融合。
基于任務定義,把這種任務,拆解成了實體對齊和實體擇優兩部分。
實體對齊的方法目前包含成對的實體對齊,集體實體對齊,大規模集體實體對齊及知識庫與知識庫之間的模式層的實體對齊。小米著重做的是成對對齊,現在用了就兩種的方法:
第一種方法是傳統的方法,基于觀察的先驗,比如:
① 類別間的屬性重要度是不同的 ( 比如人物中,出生時間,出生地點,性別,職業很重要;地點類的,經度,緯度很重要;視頻: 上映時間,演員,導演,角色很重要;生物:種屬科目綱很重要等 )。
② 文本中的時間,地點很重要,( 比如一些infoxbox中未覆蓋的事件的時間及地點等 ) 基于這兩個經驗,我用一些tfidf的方法計算一些屬性在不同類中的重要性,并找文本中的時間/地點做為一個重要的文本特征,并計算對應屬性值相似度,目前用對一些相似度主要是一基于字粒度的文文相似度,及token粒度的主題相似度等。
第二種方法用基于embedding的deep Match方法,主要參照了2018年ACM SIGMOD 的方法做了一些改進,該方法把實體中的每個屬性下的O的Value concate成一個句子,通過雙向LSTM等一模型encodeing成向量,計算每個屬性下的emdming的相似度,最后經過一個分類模型,判斷是否是同一個實體。該方法沒有考慮類別中的屬性重要度的差異,所以準確與召回效果都不太理想,我們也在考慮更多的方法嘗試改進。
以上兩種方法是針對對于結構化實體對齊的方法,如果是開放文本要依賴實體鏈接技術。
知識融合第二部實體擇優,是在經過實體對齊后,把實體屬性的差異性或者沖突性做消解。目前的做法基于以下幾個方面對實體的質量進行控制控制:
實體的更新時效性
權威性,不同來源,權威性不同的,比如,人民網的權威性要比一般咨詢類的站會要高?
豐富性,不同來源O的值缺失程度是不同的
共現頻次,當多源有沖突時,可以用投票的選出不同來源中出現最多的屬性
4. 關鍵技術:概念圖譜
概念圖譜的概挖掘目前小米圖譜基本三種方式構建。
第一種是在本體模式層構建了分類體系, 分類體系參照了一些開放的行業和分類標準,還參考了一些人工整理的行業的標準體系。
第二種是基于autophrase的方法,是實例層的ISA關系的挖掘,該方法是2017年一篇論文中采用海量文本挖掘的方法,該方法通過主要是用短語挖掘的方法來挖掘概念。這種方法需要滿足四個條件:
流行度:質量短語應該出現的頻率足夠高
一致性:token在高質量短語中的搭配出現的概率明顯高于預期
信息性:短語可以表達一個特定的主題或概念
完備性:一個短語可以在特定的文檔上下文中解釋為一個完整的語義單元
這個模型的訓練用實體的長文本和內容文本、遠程的Wikipedia/cn_probase拿到的開放的的高質量的短語及根據不同領域標注的高質量的詞語三個輸入作為輸入語料。第二步用n_gram的候選篩選,出正樣本與負樣本,正樣本是N_grame頻率大于閾值和人工標注的領域短語及人工cnproese匹配的高質量短語;剩余是負樣本。由于負樣本中摻雜大量的正樣本,所以后面是從負樣本中使用集成分類器訓練了多個基分器來從負樣本中強化出正樣本。為了保證概念短語的質量,方法通過詞性分析過濾不符合語法的短語。
針對概念挖掘的第三種方法是基于序列標注的方法。分為兩步。第一步做一個分類,針對實體長文本描述進行句子拆分,之后判斷 否有這個概念相關的一個實體詞。第二步使用Bert+BiLSTM+CRF的方式作序列標注,標注出SPO的值。
上面三種方法都是概念挖掘,對于實體與概念的關聯,可以用實體分類的方法把模式層的與實體掛接,用實體鏈接的方法把開放詞中的短語與體掛接。
5. 關鍵技術:自動化構建技術
除些之外呢,小米圖譜還在工程構建已有了一套完成的自動化構建技術,可以支持用戶定制,自動實體化,自動實體關系等。
小米知識圖譜的關鍵技術還有很多,我們在這里只給大家介紹典型的幾個關鍵技術,有興趣的話可以線下交流。最后我們看一下小米知識圖譜在行業的一些探索。
1. 商品圖譜
第一個業務場景的探索商品圖譜,主要的應用場景是小米商城,小米品的搜索和推薦場景,目標就是輔助電商平臺精準的搜索。
現在商品圖譜已在商品分類體系的建設、主商品詞提取、商品同義詞挖掘、上下位體系構建、場景概念挖掘五個方向構建完成。其中分類體系是在模式層的構建;主商品詞提取和商品同義詞挖掘用于精確匹配與召回;上下位體系結構用于用戶推薦;場景概念挖掘用于搜索發現及場景推薦。
場景挖掘以泰國旅游為例,可以與沙灘鞋,電話卡,浮潛裝備等商品有關聯,燒烤場景可能與燒烤架,木炭,食材等商品關聯。
目前商品圖譜已把這五個方向的數據和技術落地到小米商城,有品商城上。用戶轉化率和商品轉化率都有不錯的提升。
2. 上位詞
上位詞挖掘的方法分為三部分:
第一部分是上位詞判定,用bert加上分類模型從用戶日志的query中提取出來確識別是否是商品詞或者上位詞。第二部分通過層次化的分類器,對挖掘到的上位詞合并到分類體系中,這里用的了HMC的多分類器。第三部分是把商品與上位詞關聯,用商品名做texta, 上位詞做textb,把關聯問題轉化為文本分類問題。
目前用這種方法挖掘出的上位詞,平均每個商品覆蓋10.5個上位詞。
3. 同義詞
商品圖譜涉及到的還有一個就是同義詞挖掘。我們是從商品標題中抽取同義詞,在調研中發現,很多商鋪為了盡可能多的命中搜索詞,會把可能多的把相同相近或者同義的詞堆砌到商品名中。所以基于這個假設,我們把同義詞的挖掘,轉化為一個序列標注問題。
其中訓練數據用人工標注+ ( 通用圖譜+同義詞庫 ) 遠程數據作為訓練樣本。商品title做為texta, 候選的詞做為textb最后標注出BIOS。因為店鋪除了堆砌到同名商品外,還會打包買一些東西,比如鍋盤墊與炒鍋蓋打包賣,所以這樣做會有準確的問題。為了這種問題,我用了以下三種方法去噪:
檢測上位關系是否沖突,鍋盤墊->餐具->餐墊,炒鍋蓋->鍋具->鍋蓋等
用詞向量相似度
用bert相似度計算分類判斷是否同義
用三種方法過濾后我們的準確率達到94%。
4. 金融圖譜
第二個行業落地場景,是客服團隊金融圖譜在小米金融信貸及保險等業務的應用。我們就業務場景中的身份核實的子功能舉例:
碰撞識別主查核實多個用戶的公司地址是否為同一公司
關聯方探查,是判斷申請貸人與信息是否一致
后面就是金融知識圖譜的框圖:
除了商品及游戲及金融行業的應用外,我們在更多的行業圖譜的落地及更多的通用圖譜的應用場景也在持續探索中。
簡單總結下,小米知識圖譜已構建超百億的知識,落地10+的業務場景,擁有20+個技術能力,擁有成熟的自動化構建流程,小米知識圖譜已有多個行業知識圖譜落地。最后,歡迎大家體驗/使用小愛同學等小米的產品,也歡迎大家吐槽!
今天的分享就到這里,謝謝大家。
特別推薦一個分享架構+算法的優質內容,還沒關注的小伙伴,可以長按關注一下:
長按訂閱更多精彩▼
如有收獲,點個在看,誠摯感謝?????????????????????????????????????
免責聲明:本文內容由21ic獲得授權后發布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯系我們,謝謝!