姓名:劉成龍 ?學號:16020199016
轉(zhuǎn)載自:https://www.jiqizhixin.com/articles/2018-09-28-11姚炕,有刪節(jié)。
【嵌牛導讀】:詳解知識圖譜技術與應用
【嵌牛鼻子】:知識圖譜
【嵌牛提問】:你了解知識圖譜嗎丢烘?
【嵌牛正文】:
一柱宦、知識圖譜的概述
我們先直觀的來看一下什么是知識圖譜,下面有一張圖播瞳,從這張圖里可以看到掸刊,這個圖里圓圈是節(jié)點,節(jié)點之間有一些帶箭頭的邊來連成赢乓,這個節(jié)點實際上相當于知識圖譜里的實體或者概念忧侧,邊連線表示實體之間的關系。
知識圖譜本質(zhì)上是一種大型的語義網(wǎng)絡牌芋,它旨在描述客觀世界的概念實體事件以及及其之間的關系蚓炬。以實體概念為節(jié)點,以關系為邊躺屁,提供一種從關系的視角來看世界肯夏。
語義網(wǎng)絡已經(jīng)不是什么新鮮事,早在上個世紀就已經(jīng)出現(xiàn)了楼咳,但為什么重新又提到知識圖譜熄捍?
知識圖譜本質(zhì)上是一種語義網(wǎng)絡,但是它最主要的特點是一個非常大規(guī)模的語義網(wǎng)絡母怜,之前的語義網(wǎng)絡受限于我們處理的方法,更多是依賴于專家的經(jīng)驗規(guī)則去構(gòu)建缚柏,在規(guī)模方面受限于特定領域的數(shù)據(jù)苹熏。大規(guī)模網(wǎng)絡,谷歌在2012年首先提出知識圖譜的概念币喧,在freebase的基礎上擴展了大量來自互聯(lián)網(wǎng)的實體數(shù)據(jù)和關系數(shù)據(jù)轨域。據(jù)說目前實體的數(shù)據(jù)已經(jīng)達到數(shù)十億級,有達到千億級的實例關系杀餐,規(guī)模是非常巨大的干发。
我們再看一下,知識圖譜背后是怎么表示的史翘,我們看到的是一個巨大的語義網(wǎng)枉长,背后是怎么存儲或者表示的呢冀续?
首先,它是由三元組構(gòu)成的必峰,構(gòu)成知識圖譜的核心其實就是三元組洪唐,三元組是由實體、屬性和關系組成的(由Entity吼蚁、Attribute凭需、Relation組成)。
具體表示方法為肝匆,實體1跟實體2之間有某種關系粒蜈,或者是實體屬性、屬性詞旗国。
舉個例子薪伏,“達觀數(shù)據(jù)是一家人工智能公司”,其實就可以表示成這樣的三元組:
<達觀數(shù)據(jù)粗仓,is-a嫁怀,人工智能公司>。
“人工智能公司是一種高科技公司”可以表示成:
<人工智能公司借浊,subclass,高科技公司>塘淑。
“達觀數(shù)據(jù)成立于2015年”,也可以把這個屬性表示成一個三元組蚂斤,就是:
<達觀數(shù)據(jù)存捺,start-time,2015年>曙蒸。
基于已有的三元組捌治,它可以推導出新的關系,這個對構(gòu)建知識圖譜來說是非常重要的纽窟。我們知道肖油,知識圖譜要有豐富的實體關系,才能真正達到它實用的價值臂港。完全靠人工去做的話是不太現(xiàn)實的森枪,所以內(nèi)部一定有一個自動推理的機制,可以不斷的去推理出新的關系數(shù)據(jù)出來审孽,不斷的豐富知識圖譜县袱。
來看一些具體的例子。
“人工智能公司是一種高科技公司”佑力,subclass的關系式散。
還有一個三元組是谷歌是一家人工智能公司,打颤,可以由這兩個三元組推導出谷歌是一家高科技公司暴拄,漓滔。因為subclass的實例之間是一種繼承的關系。
<翅膀part-of鳥>揍移,<麻雀kind-of鳥>次和,可以推導出<翅膀part-of麻雀>。
為什么要用三元組來描述知識圖譜那伐?
三元組是一個人和計算機都易于理解的結(jié)構(gòu)踏施,人是可以解讀的,計算機也可以通過三元組去處理罕邀,所以它是一個既容易被人類解讀畅形,又容易被計算機來處理和加工的結(jié)構(gòu)席揽,而且它也足夠的簡單乏屯,如果說你擴充成四元組沽损、五元組敏弃,它整個結(jié)構(gòu)就會變得比較復雜,那是綜合的一種復雜性和人的易理解性惕它、和計算機的易出理性來綜合的考慮曾棕,決定用三元組的結(jié)構(gòu)來去作為它的一個存儲油昂。
那么敬肚,AI為什么需要知識圖譜毕荐?
人工智能分為三個階段,從機器智能到感知智能艳馒,再到認知智能憎亚。
機器智能更多強調(diào)這些機器的運算的能力,大規(guī)模的集群的處理能力弄慰,GPU的處理的能力第美。
在這個基礎之上會有感知智能,感知智能就是語音識別陆爽、圖像識別什往,從圖片里面識別出一個貓,識別人臉墓陈,是感知智能恶守。感知智能并非人類所特有,動物也會有這樣的一些感知智能贡必。
再往上一層的認知智能,是人類所特有的庸毫,是建立在思考的基礎之上的仔拟,認知的建立是需要思考的能力,而思考是建立在知識的基礎之上飒赃,必須有知識的基礎利花、有一些常識科侈,才能建立一些思考,形成一個推理機制炒事。
AI需要從感知智能邁向認知智能臀栈,本質(zhì)上知識是一個基礎,然后基于知識的推理挠乳,剛好知識圖譜其實是具備這樣的一個屬性权薯。
知識圖譜其實是富含有實體、屬性睡扬、概念盟蚣、事件和關系等信息,它能夠基于一定的推理卖怜。且比較關鍵的是屎开,它能夠基于一定的推理為AI的可解釋性,帶來全新的一個視角马靠。
可解釋性已被一些領域AI大規(guī)模使用奄抽,比如醫(yī)療領域,AI進行癌癥的診斷的結(jié)果甩鳄,如果沒有給出一個合理的一個理由逞度,或者是給出一個解釋的一個方法,醫(yī)生是不敢貿(mào)然的用AI給出的癌癥診斷的結(jié)果去給病人直接做下一步的措施娩贷。包括金融領域也一樣第晰,AI如果給投資人推薦了一個投資的方案,但是沒有給出任何的一個解釋跟說明的話彬祖,也會存在巨大的一個風險茁瘦。同樣,在司法領域也是一樣储笑,用AI進行判案甜熔,AI給一個案件判定一個結(jié)果,但是沒有給出任何的一個解釋突倍,也是不能作為結(jié)果來采用的腔稀,因為司法強調(diào)的就是一種可解釋性,對法律的解釋性羽历、可推理性焊虏。
為什么說知識圖譜可以做這樣一個可解釋性呢?
舉個例子秕磷,我們問“C羅為什么那么牛诵闭?”
C羅為什么那么牛?這個是一個問題,要解釋回答這個問題疏尿,人通常是怎么樣去回答這樣的問題呢瘟芝?上圖,通過知識圖譜的簡單的推理褥琐,就可以回答這樣一個問題锌俱,因為C羅獲得過金球獎,C羅跟金球獎之間的關系是獲得獎項的一個關系敌呈,金球獎跟影響力最大的足球評選獎項之一有這樣一個地位的關系贸宏,它具有這樣的一個非常高的地位,C羅又獲得過這個獎項驱富,所以可以得出锚赤,C羅是很牛的。這是一種知識圖譜來解釋褐鸥、來回答這樣一個“為什么”的一個問題线脚。
同樣還有一些問題,比如叫榕,“鱷魚為什么那么可怕浑侥?”
人類是有一樣這樣的常識,所有的大型的食肉動物都是很可怕晰绎,這是個常識寓落。鱷魚是一種大型的食薄動物,鱷魚跟大型食肉動物概念之間是一種instance的關系荞下。通過這樣的一個常識和概念之間的關系伶选,可以推導出鱷魚是很可怕的。同樣的尖昏,“鳥兒為什么會飛仰税?”因為它有翅膀,鳥兒這個實體它的屬性是有翅膀抽诉,利用一個實體跟屬性之間的關系陨簇,可以做這樣一個推理。
之前微博上關曉彤跟鹿晗非常的火迹淌,經(jīng)常被刷屏河绽,這是為什么?
因為關曉彤跟鹿晗之間是男女朋友這樣的關系唉窃,明星之間的男女朋友的關系就最容易被大家追捧耙饰,也最容易被刷屏。這個就是通過關系也好纹份,通過實體的屬性也好榔幸,通過實體的概念也好,就可以去解釋矮嫉、去回答一些問題削咆。這些是知識圖譜在AI在可解釋性方面的一些具體的例子。
深度學習的可解釋性非常差的蠢笋,深度學習里面內(nèi)部的語義表達拨齐、向量的表達都是一些浮點數(shù),人類是非常難以理解的昨寞。深度學習出來的結(jié)果瞻惋,它的可解釋性也是非常少的。
盡管我們現(xiàn)在在研究可視化的技術援岩,把中間的它的結(jié)果呈現(xiàn)出來歼狼、可視化出來,但是真正能達到對人有效的解釋性進展還是比較緩慢的享怀。知識圖譜實際上是有望能夠消除人類的自然語言跟深度學習黑盒之間的語義鴻溝羽峰。也就是深度學習的底層的特征空間和上層的人的自然語言空間這種巨大的語義鴻溝,通過深度學習跟知識圖譜結(jié)合起來添瓷,有望能夠消除梅屉。這也是為什么AI要結(jié)合知識圖譜的一個原因。
▌二鳞贷、知識圖譜的典型行業(yè)應用介紹
1. 金融行業(yè)的應用坯汤。
知識圖譜在金融行業(yè)里面比較典型的應用就是風控反欺詐。
(1).?知識圖譜可以進行信息的不一致性檢查搀愧,來確定是不是存在可能的借款人欺詐的風險惰聂,比如第一個圖里面的借款人甲和乙來自于不同的公司,但是他卻非常詭異地留下了相同的公司的電話號碼咱筛,這時審核人員就要格外留意了搓幌,有可能會存在欺詐的風險。
(2). 組團欺詐眷蚓,甲乙丙三個借款人同一天向銀行發(fā)起借款鼻种,他們是互不相關的人,但是他們留了相同的地址沙热,這時有可能是組團的欺詐叉钥。
(3). 靜態(tài)的異常檢測,它表示的是在某個時間點突然發(fā)現(xiàn)圖中的某幾個節(jié)點的聯(lián)系異常的緊密篙贸,原來是互相聯(lián)系都比較少投队、比較松散的,突然間有幾個點之間密集的聯(lián)系爵川,有可能會出現(xiàn)欺詐組織敷鸦。
(4). 動態(tài)的異常檢測(第二行中間圖),是隨著時間的變化,它的幾個節(jié)點之間圖的結(jié)構(gòu)發(fā)生明顯的變化扒披,原來它是比較穩(wěn)定的值依,左邊黑色的上三角、下三角碟案,然后中間連線愿险,但過了一段時間之后,它整個圖的結(jié)構(gòu)變成了右邊的這樣結(jié)構(gòu)价说,此時很可能是異常的關系的變化辆亏,會出現(xiàn)一個欺詐組織。
(5). 客戶關系管理鳖目。怎么樣去做失聯(lián)客戶的管理扮叨?圖中的例子有一個借款的用戶,銀行可能現(xiàn)在沒有辦法直接找到他领迈,甚至通過他的直接聯(lián)系人也沒辦法找到他彻磁,那這個時候是不是可以再進一步的通過他的二度聯(lián)系人來間接的來找到他?通過這樣的圖結(jié)構(gòu)是可以快速找到他的二度聯(lián)系人惦费,比如張小三或者是王二兵迅,再去聯(lián)系他們,嘗試把李四這個人給找到薪贫。
2.輔助信貸審核和投研分析
左邊是輔助審貸恍箭。
知識圖譜會融合多個數(shù)據(jù)源,從多個維度來維護關聯(lián)人員的信息瞧省,來避免數(shù)據(jù)不全與數(shù)據(jù)孤島扯夭,把它整合到一個大的網(wǎng)絡結(jié)構(gòu)里面去,借助知識圖譜的搜索鞍匾,審核人員可以快速的獲取到信貸申請人張三的相關的信息交洗,住址、配偶橡淑、就職公司构拳、他的朋友等等。這比原來到各個異構(gòu)且散落的數(shù)據(jù)源去進行搜集的效率要高得多梁棠,且能夠從整體上來看到關鍵實體相互之間的關聯(lián)關系置森。
第二個是用于輔助投研的。
知識圖譜能夠?qū)崟r地串聯(lián)起來這個公司相關的上下游公司符糊,供應商的關系凫海、競爭者的關系、客戶的關系男娄、投融資那些關系等行贪,然后進行快速實時的定位漾稀。中信通訊這家公司前不久被美國政府進行合規(guī)性審查,這個時候投研人員通過知識圖譜搜索到中興通訊公司實體建瘫,進而可以非痴负矗快地得到跟中興通訊相關的上下游公司實體,包括關聯(lián)的子公司暖混、供應商缕贡、客戶、競爭對手拣播、合作伙伴,有助于投研人員快速的做決策收擦。
3.精準營銷應用
知識圖譜能夠比較全面的記錄客戶的非常詳細的信息贮配,包括名字,住址塞赂,經(jīng)常和什么樣的人進行互動泪勒,還認識其它什么樣的人,網(wǎng)上的行為習慣宴猾、行為方式是什么樣的圆存,這樣就可以知識圖譜挖掘出更多的用戶的屬性標簽和興趣標簽,以及社會的屬性標簽仇哆,形成全面的用戶洞察沦辙,基于知識圖譜就可以進行個性化的商品或者活動的推送,或者基于用戶的分群分組做定向營銷讹剔,從而實現(xiàn)精準營銷油讯。
4.?知識圖譜在搜索引擎里面的應用,最典型的就是在谷歌搜索引擎里面應用延欠。
谷歌是在2012年率先提出來知識圖譜的概念陌兑。提出這個概念的最主要的目的就是改善它的搜索引擎的體驗。從這個圖就可以看到由捎,用戶搜索的是泰姬陵兔综,泰姬陵是印度的非常著名的,也是世界八大奇跡之一的景點狞玛。
不一樣的地方软驰,在搜索引擎的右側(cè),會以知識卡片的形式來呈現(xiàn)跟泰姬陵相關的結(jié)構(gòu)化的信息为居,包括泰姬陵的地圖碌宴、圖片、景點的描述蒙畴、開放時間門票等等贰镣,甚至在下面會列出跟泰姬陵相類似或者相關聯(lián)的景點呜象,比如中國的萬里長城,同樣是世界的幾大奇跡碑隆,還有金字塔等等恭陡。同時,它還可以進行知識的擴展上煤,比如泰姬陵不光是印度的景點休玩,它還可以是一張音樂專輯,它甚至是國外某城市的街區(qū)街道劫狠。這樣通過知識圖譜可以不斷的去探索發(fā)現(xiàn)新的非常新奇的東西拴疤,讓用戶在搜索引擎里面能夠不斷的去進行知識的關聯(lián)和發(fā)現(xiàn),激發(fā)起用戶的搜索的欲望独泞。原來我們搜索引擎講究的是說快速的找到它的結(jié)果呐矾,然后關掉就完了,谷歌通過知識圖譜懦砂,實際上是把搜索引擎變成了知識的探索和發(fā)現(xiàn)引擎蜒犯,這是概念和理念上的非常大的變遷與升級。
5.知識圖譜應用于推薦系統(tǒng)
我們比較熟悉的是個性化推薦荞膘,即所謂的千人千面罚随,比如根據(jù)游戲來推薦游戲的道具。對于小白用戶和骨灰級的用戶羽资,推薦的東西顯然是不一樣的淘菩,這是個性化的推薦。個性化推薦之外削罩,還有場景化的推薦瞄勾,比如用戶購買了沙灘鞋,存在用戶可能要去海邊度假這樣的場景弥激,基于這樣的場景可以繼續(xù)給他推薦游泳衣进陡、防曬霜或者其它的海島旅游度假的產(chǎn)品。
任務型的推薦微服。比如用戶買了牛肉卷或者羊肉卷趾疚,假設他實際上是要為了做一頓火鍋。以蕴,這時候系統(tǒng)可以給他推薦火鍋底料或者是電磁爐糙麦。
冷啟動問題。推薦系統(tǒng)的冷啟動一直是比較難以處理的問題丛肮,通常的做法是根據(jù)新用戶的設備類型赡磅,或者他當前的時間位置等等,或者外面的關聯(lián)數(shù)據(jù)來做推薦宝与》倮龋可以基于知識圖譜的語義關聯(lián)標簽進行推薦冶匹,比如旅游和攝影實際上是語義相近的兩個標簽,再比如相同的導演或者相同演員的電影在語義上也是比較相近的咆瘟。
跨領域的推薦問題嚼隘。微博的信息流里會推薦淘寶的商品,然而微博和淘寶是兩個不同的領域袒餐,它是怎么做到的呢飞蛹?新浪微博有些用戶會經(jīng)常去曬黃山、九寨溝灸眼、泰山等這些照片卧檐,這個時候我們就知道他有可能是一位登山的愛好者,這個時候淘寶就會可以給他推薦登山的裝備幢炸,登山杖泄隔、登山鞋等等這些裝備,利用這些背景知識宛徊,能夠打通不同的平臺之間的語義鴻溝。
知識型的推薦逻澳,是基于知識的闸天。比如清華大學、北京大學都是頂級名校斜做,復旦大學也同樣是苞氮,這個時候是可以推薦復旦大學,再比如百度瓤逼、阿里和騰訊都屬于BAT級互聯(lián)網(wǎng)公司笼吟,基于百度、阿里就可以推薦騰訊霸旗。
有了知識圖譜以后贷帮,我們可以從基于行為的推薦,發(fā)展到行為跟語義相融合的智能推薦诱告。
▌三撵枢、如何構(gòu)建知識圖譜
構(gòu)建知識圖譜是包括這樣的生命周期或這樣的部分,包括定義精居、知識的抽取锄禽、知識的融合、存儲靴姿、知識的推理沃但、知識的應用,這樣的循環(huán)迭代的過程佛吓。
我們先來理解一下本體的概念宵晚,本體是用于描述事物的本質(zhì)的垂攘,維基百科里面對于計算機科學領域當中的本體給出的定義是這樣的,即:對于特定領域真實存在的實體的類型坝疼、屬性搜贤,以及它們之間的相互關系的一種定義。
我們再來看看知識圖譜和本體的關系钝凶,下面這張圖仪芒,我們看到有兩個層,就下面是本體層耕陷,上面是事實層掂名,那本體層是基于特定領域的概念的定義,包括概念的屬性哟沫,概念之間的關系饺蔑,一般概念之間的關系是一種父子關系,也有叫做上下位的關系嗜诀。事實層是具體的真實存在的實體猾警,包括實體的屬性以及實體之間的關系,每個實體都會映射到本體層相應的概念隆敢。面向?qū)γ娲蠹叶急容^熟悉发皿,給大家舉例說明一下,本體層的概念就好比面向?qū)ο罄锩娴念惖母拍罘餍缓笫聦崒拥膶嶓w就好比面向?qū)ο罄锩娴膶ο笱ㄊ瑢ο笫菑念惍斨信缮鰜淼模瑫r繼承了類的一些屬性和關系温自。這就是本體的概念玄货。
為什么要講本體的概念?一個更直觀的例子悼泌,就是要對知識圖譜來進行模式或者Schema的定義松捉。這里的領域是科技,在這科技領域下面是我們劃分的若干個主題券躁,比如互聯(lián)網(wǎng)主題惩坑、通訊主題、手機主題也拜,在每個主題下面又有若干的概念以舒,就是下面的概念層,比如互聯(lián)網(wǎng)里面有深度學習慢哈、人工智能等等這些概念蔓钟,然后通訊里面有智能手機這些概念。在概念下面就是具體的事實層面卵贱,就是實體層滥沫,比如特斯拉modelS侣集、蘋果iPhone7、華為P10等等兰绣,這些都是具體的實體世分,然后實體之間有關系,它繼承的概念之間的關系缀辩。最下面一層是事件層臭埋,這就是整個本體層的例子。
給大家介紹一款比較好的開源本體編輯工具臀玄,叫Protégé瓢阴。這個工具是斯坦福大學開源的,它的功能非常強大健无,也是目前最流行的本體編輯工具荣恐,有網(wǎng)頁版和桌面版,桌面版是免安裝的累贤,大家直接下載下來就可以試用叠穆。
它的好處是什么?它屏蔽了具體的本體描述語言臼膏,用戶只需要在概念層次上面進行本體的模型構(gòu)建痹束,同時也比較靈活,能夠支持各種插件來擴展特定的功能讶请。比如推理的功能可以基于插件來擴展。不過這個工具對中文的支持不是很友好订雾。
下面一個非常重要的關鍵的步驟就是知識的抽取块促,首先要抽取實體邮绿,然后是實體之間的關系。我們看一下NER實體的抽取风响,我們知道NER可以轉(zhuǎn)化為序列標注的問題,傳統(tǒng)的機器學習的方法丹禀,CRF等都可以做状勤,而且CFR做的效果還是不錯的。不過CRF通常只能學習到相鄰詞位置比較近的上下文的特征双泪,它無法獲取整個句子甚至更長的上下文的特征持搜。
目前業(yè)界比較主流的,包括學術界比較主流的一種做法是什么焙矛?是深度循環(huán)神經(jīng)網(wǎng)絡加上結(jié)合CRF葫盼,這樣的做法更多的是雙向的循環(huán)神經(jīng)網(wǎng)絡,它可以分別從前往后以及從后往前這兩個方向來去學習上下文的特征村斟,然后進行序列信號的記憶和傳遞贫导,這是一種比較常見的做法抛猫。
華為發(fā)布了新一代的麒麟處理,通過從前往后就可以推理出最后面的文字孩灯,然后從后往前也可以推理出最前面的文字闺金,第一個字“朝”實際上是從后往前去進行預測推理。頂層用CRF對循環(huán)神經(jīng)網(wǎng)絡的結(jié)果進行約束就可以峰档,對這個輸出進行更好的控制败匹。然后輸入層通常是詞向量或者字向量,embedding能可以把單個字或者詞轉(zhuǎn)化為低維的稠密的語義向量面哥。
下面講一下關系抽取的技術哎壳。它有幾種方法,第一種是基于有監(jiān)督的方法尚卫,把關系抽取當做分類問題來看待归榕,根據(jù)訓練數(shù)據(jù)設計有效的特征,來學習各種分類模型吱涉,這是傳統(tǒng)的分類刹泄。這個方法不好的地方,是需要大量的人工標注的訓練語料怎爵,語料的標注是非常的耗時耗力的特石。所以在有監(jiān)督的基礎上,又提出了一種半監(jiān)督的方式鳖链,半監(jiān)督的方式主要采用方式進行關系的抽取姆蘸,具體來說就是要對于要抽取的關系,首先基于手工設定若干的種子的實例芙委,然后迭代性的從數(shù)據(jù)當中抽取關系對應的關系模板和更多的實例逞敷,通過不斷迭代的方式來抽取越來越多的這些實例。
還有一種是無監(jiān)督的方法灌侣。無監(jiān)督的方法本質(zhì)上是一種聚類的方法推捐,用擁有相同語義關系的實體,它擁有相似上下文的信息是它的假設侧啼,因此它可以利用每個實體的上下文的信息來代表實體的語義關系牛柒,對實體進行語義關系的聚類。
這三種方法當中痊乾,有監(jiān)督的方法能夠抽取出有效的特征皮壁,然后在準確率和召回率方面是更有優(yōu)勢的,半監(jiān)督和無監(jiān)督的方法一般情況下符喝,效果都不是特別的好闪彼,所以業(yè)界現(xiàn)在用的比較多的還是有監(jiān)督的學習的方法。
我們剛剛提到有監(jiān)督學習方法,比較困難的地方就是怎么樣獲取大量分類的訓練樣本畏腕,完全通過人工去標注的方式顯然不是比較好的方式缴川。
有什么樣好的處理的方法?用遠程監(jiān)督的一種方法描馅,典型的工具Deepdive把夸,也是斯坦福大學InfoLab實驗室開源的知識抽取的系統(tǒng),通過弱監(jiān)督學習的方法铭污,從非結(jié)構(gòu)化的文本當中可以抽取出結(jié)構(gòu)化的關系的數(shù)據(jù)恋日。開發(fā)者不需要理解它里面的具體的算法,只要在概念層次進行思考基本的特征就可以了嘹狞,然后也可以使用已有的領域知識進行推理岂膳,也能夠?qū)τ脩舻姆答佭M行處理,可以進行實時反饋的一種機制磅网,這樣能夠提高整個預測的質(zhì)量谈截。背后用的是也是一種遠程監(jiān)督的技術,只要少量的運訓練的數(shù)據(jù)就可以了涧偷。
我們來具體來看一下它是怎么樣來做這樣一件事情的簸喂。首先,下面看到Mention的句子就是“奧巴馬和米歇爾結(jié)婚”燎潮,它是句子喻鳄,但Mention就是這些詞的標記,奧巴馬米歇爾都是Mention确封,我們要推測它之間是不是配偶的關系除呵。這個時候要對Mention:奧巴馬和米歇爾,去對應到知識圖譜里面具體的實體爪喘,看一下這兩個實體在知識圖譜里面是不是存在著配偶的關系竿奏?如果是的話,就把它拿過來作為正的訓練樣本腥放,如果不是,它就是負的樣本绿语。前提假設就是知識圖譜里面的它的實體之間的關系都是正確的秃症,以這個為依據(jù),去做樣本的標注吕粹。
目前進行實體關系抽取有兩大類方法种柑,有一類是基于流水線式的抽取,輸入一個句子匹耕,首先抽取這實體聚请,再對實體進行兩兩組合,然后再進行分類,最后識別出實體之間的關系驶赏。這種做法是有缺點的炸卑,第一,它容易造成錯誤的傳播煤傍,比如在第一步的時候盖文,實體如果識別錯誤了,后面的關系肯定也是錯誤的蚯姆。第二五续,會產(chǎn)生沒有必要冗余的信息,因為要對實體進行兩兩的配對龄恋,然后再進行關系的分類疙驾,很多配對之間實際上就沒有這樣的關系,就是它會帶來了這樣非常多的冗余的信息郭毕,錯誤率也會被放大它碎、被提升。
現(xiàn)在用的比較多的另一種方法铣卡,是聯(lián)合學習的方法链韭,輸入一個句子,通過實體識別和關系抽取的聯(lián)合模型煮落,可以直接得到有效的三元組敞峭。通常我們是基于神經(jīng)網(wǎng)絡的聯(lián)合標注的學習的方法,里面涉及到兩個關鍵的工作蝉仇,一個是模型的參數(shù)共享的問題旋讹,還有一個就是標注策略,怎么樣進行有效的標注轿衔。模型共享是指的是在實體訓練的時候能夠進行實體識別和關系分類這兩個任務沉迹,都會通過反向傳播來匹配來進行關系的分類,然后同時來實現(xiàn)這兩個參數(shù)之間的依賴害驹,兩個子任務之間的依賴鞭呕。參數(shù)共享的方法,它本質(zhì)上還是兩個子任務宛官,只是說它們這兩個任務之間通過參數(shù)共享有了交互葫松,而且在訓練的時候還要預先進行實體識別,識別實體之后再根據(jù)預測信息進行兩兩匹配底洗,來進行關系的分類腋么,所以仍然會產(chǎn)生無關系時候冗余的信息存在。
現(xiàn)在我們新提出了一種端到端序列標注的策略亥揖,把原來涉及到序列標注和分類的兩個任務變成了完全的端到端的序列標注的問題珊擂,通過端到端的神經(jīng)網(wǎng)絡模型,可以直接得到關系的三元組,即實體關系的三元組摧扇。
新的標注策略是像下面這張圖里面有三個部分來組成的圣贸,第一部分是實體中的詞的位置,比如b是表示開始扳剿,i表示是在實體的內(nèi)部旁趟,e表示是實體的結(jié)尾,s表示是單個的實體庇绽。第二部分就是關系類型的信息锡搜,預定義的關系類型的編碼,比如里面的CP瞧掺、CF耕餐,CP是國家總統(tǒng),CF是公司創(chuàng)立者辟狈,這樣兩種的關系肠缔。還有實體的角色的信息,它表示是實體1還是實體2哼转?實體跟關系之外的其它的這些字符都用O來表示明未,這樣就進行了實體的標注。
接下來我們講一下實體的融合壹蔓,這里最主要就是實體的對齊趟妥。
首先是實體對齊,也叫實體歸一化佣蓉,是把具有不同的標識的實體披摄,但是在現(xiàn)實世界當中可能是表達同樣意思的,把它做歸一化勇凭。比如中華人民共和國疚膊、中國和China,這個三個指的是同一實體虾标,盡管它的表述方式不一樣寓盗,就把它歸一化為具有全局唯一標識的實例對象,然后添加到知識圖譜當中去璧函。
現(xiàn)在實體對齊普遍采用的還是一種聚類的方法贞让,關鍵在于定義合適的相似度的閾值,一般從三個維度來依次來考察的柳譬,首先會從字符的相似度的維度,基于的假設是具有相同描述的實體更有可能代表同實體续镇。第二個維度美澳,是從屬性的相似度的維度來看的,就是具有相同屬性的和以及屬性詞的這些實體,有可能會代表是相同的對象制跟。第三個維度舅桩,是從結(jié)構(gòu)相似度的維度來看,基于的假設是具有相同鄰居的實體更有可能指向同對象雨膨。
進行融合的時候要考慮各個數(shù)據(jù)源的數(shù)據(jù)的可靠性擂涛,以及在各個不同數(shù)據(jù)源當中出現(xiàn)的頻度來綜合決定選用哪個類別或者哪個屬性詞。還有一種方法就是是用來自LD(LinkedData)聊记,LD是很多人工標記好的數(shù)據(jù)撒妈,是非常準確的,其中有種關聯(lián)叫owl:sameAs排监,它表示前后兩個是同實體的狰右,利用這個作為訓練數(shù)據(jù)來發(fā)現(xiàn)更多相同的實體對,是比較好的方法舆床。最后要說的是棋蚌,無論用哪種方法,都不能保證百分之百的準確率挨队,所以最后也要有人工審核和過濾谷暮。
知識存儲,就是如何選擇數(shù)據(jù)庫盛垦,從選擇層面湿弦,我們有圖數(shù)據(jù)庫,有NoSQL的數(shù)據(jù)庫情臭,也有關系型數(shù)據(jù)庫省撑,數(shù)據(jù)庫有很多選擇。具體什么樣的情況下選擇什么樣的數(shù)據(jù)庫俯在?通常是如果說知識圖譜的關系結(jié)構(gòu)非常的復雜竟秫、關系非常的多,這時候建議使用這個圖數(shù)據(jù)庫跷乐,比如Neo4J這樣的數(shù)據(jù)庫肥败。另外一種就是它的關系并不是很復雜,關系可能也就是1度愕提、2度的關系馒稍,更多的它是有非常多的屬性的數(shù)據(jù),這個時候可以考慮關系式數(shù)據(jù)庫浅侨,或者是ES這樣的存儲纽谒。如果要考慮到知識圖譜的性能、可擴展性如输、可分布式鼓黔,是可以結(jié)合NoSQL的數(shù)據(jù)庫央勒,比如TiTan。根據(jù)實際的情況澳化,一般是綜合起來使用的崔步,根據(jù)我們的經(jīng)驗,我們會結(jié)合Neo4J和ES來綜合來使用缎谷,同時還結(jié)合這關系型數(shù)據(jù)庫MySQL等等井濒,根據(jù)不同的數(shù)據(jù)的特點來進行選型,而不是說一味的追求圖數(shù)據(jù)庫列林。
順便了解一下目前主流的幾款圖數(shù)據(jù)庫瑞你,Titan、Graph Engine席纽、Neo4J這個三個分別都是開源的捏悬,然后Titan是Apache旗下的,Graph Engine是MIT的License润梯,Neo4J是GPL開源的过牙,既有商業(yè)版,也有也有開源免費版纺铭。然后它們的平臺寇钉,像Titan是Linux,Graph是windows舶赔。而數(shù)據(jù)的支撐量級扫倡,像Titan是后端存儲,基于Cassandra/Hbase/BDB這樣的分布式存儲引擎竟纳,可以支持更大的數(shù)據(jù)量撵溃,千億級的數(shù)據(jù)量級;Neo4J商業(yè)版也可以支持到百億級的锥累,但是它的非商業(yè)版在數(shù)據(jù)量級比較大的時候缘挑,一般是在幾千萬級的時候就可能會出現(xiàn)一些問題。
再看一下知識推理桶略,知識推理這邊有幾種方法语淘,首先是基于符號推理,我們上面說的三元組的結(jié)構(gòu)际歼,比如左邊的RDF惶翻,有概念,然后基于概念符號進行推理鹅心。
這個是基于OWL進行本體推理的例子吕粗,這個背后是基于OWL本體的推理,最常見的OWL推理工具是Jena, Jena 2支持基于規(guī)則的簡單推理旭愧,它的推理機制支持將推理器(inference reasoners)導入Jena颅筋,創(chuàng)建模型時將推理器與模型關聯(lián)以實現(xiàn)推理虐秋。
還有一種是基于圖(PRA)的推理的方法,更直觀的一種方法垃沦,思想是比較簡單的,就是以連接兩個實體的已有路徑作為特征構(gòu)建分類器用押,來預測它們之間可能存在的潛在關系肢簿。
比如左邊這個圖里面Charlotte Bronte,我們要預測他的職業(yè)是不是作家蜻拨。在這個圖里面已知存在關系是什么呢池充?他寫過一篇小說,它寫過一篇小說Jane Eyre缎讼,然后雙城記也是一部小說收夸,狄更斯是寫了雙城記這部小說,狄更斯是作家血崭,同時它下面還有他的父親職業(yè)也是作家卧惜,所以基于這樣圖之間的關系,就可以較大概率的推理出Charlotte Bronte的職業(yè)很有可能就是作家夹纫,這就是基于圖之間的關系的特征構(gòu)建分類器來進行預測的咽瓷。 PRA提取特征的方法主要有隨機游走、廣度優(yōu)先和深度優(yōu)先遍歷舰讹,特征值計算方法有隨機游走probability茅姜,路徑出現(xiàn)/不出現(xiàn)的二值特征以及路徑的出現(xiàn)頻次等。PRA方法的優(yōu)點是直觀月匣、解釋性好钻洒,但缺點也很明顯,有三個主要缺點:首先锄开,很難處理關系稀疏的數(shù)據(jù)素标,其次,很難處理低連通度的圖院刁,最后糯钙,是路徑特征提取的效率低且耗時。
還有是基于分布式的知識語義表示的方法退腥,比如像Trans系列的模型任岸,在這個模型基礎上進行語義的推理。TransE這個模型的思想也比較直觀狡刘,它是將每個詞表示成向量享潜,然后向量之間保持一種類比的關系。比如上面這個圖里面的北京中國嗅蔬,然后類比巴黎法國剑按,就是北京加上首都的關系就等于中國疾就,然后巴黎加上capital的關系等于France。所以它是無限的接近于偽實體的embed]ding艺蝴。這個模型的特點是比較簡單的猬腰,但是它只能處理實體之間一對一的關系,它不能處理多對一與多對多的關系猜敢。
后來提出了TransR的模型了姑荷,TransR實際上是解決了上面提到的一對多或者多對一、多對多的問題缩擂,它分別將實體和關系投射到不同的空間里面鼠冕。一個實體的空間和一個關系的空間,然后在實體空間和關系空間來構(gòu)建實體和關系的嵌入胯盯,就對于每個元組<h,r,t>首先將實體空間中實體通過Mr向關系空間進行投影得到hr和Tr懈费,然后Hr加上r是不是約等于或者近似的等于Tr,通過它們在關系空間里面的距離博脑,來判斷在實體空間里面憎乙,H和T之間是不是具有這樣的關系?
除了TransE趋厉、TransR寨闹,還有更多的Trans系列的,像TransH君账、TransN繁堡、TransG等等這些模型。清華大學的自然語言處理實驗室發(fā)布了一款這個叫openKE的平臺乡数,openKE它是開源的知識表示學習的平臺椭蹄,是基于Tanserflow的工具包來開發(fā)的。它整合了Trans系列的很多算法净赴,提供統(tǒng)一的接口绳矩。它也是面向了預訓練的數(shù)據(jù)來表示模型的。
最后介紹一種基于深度學習的推理模型玖翅,這個模型利用了卷積神經(jīng)網(wǎng)絡對實體進行關系的分類的翼馆,把句子的依存樹作為輸入,就是將詞在樹中的不同的位置的嵌入式的表示拼接到這個詞向量當中來學習金度,同時對面相樹結(jié)構(gòu)設計了獨特的卷積核应媚。這種方法在實體分類的任務上,相較于未使用位置關系的信息猜极,效果會有一定的提升中姜。
▌四、達觀經(jīng)驗與案例
1.知識圖譜在達觀的知識問答當中的應用
我們的智能問答是融合了是知識圖譜問答和基于檢索的問答兩種方法進行融合跟伏。
首先丢胚,左邊會把用戶的語音經(jīng)過語音轉(zhuǎn)成文字以后翩瓜,進行一個預處理,預處理主要是做了分詞携龟、糾錯兔跌、詞性標注、實體屬性的識別峡蟋,對這個句子進行依存句法樹的結(jié)構(gòu)分析浮定。
預處理完了以后,引擎會首先嘗試根據(jù)問句的句法結(jié)構(gòu)進行問句模板的匹配层亿,如果說能夠匹配到合適的問句模板,這個時候再根據(jù)在預處理階段得到的問句的實體屬性和關系立美,對匹配到的問題模板進行實例化匿又,然后再根據(jù)實例化以后的問句模板來生成知識圖譜的圖數(shù)據(jù)庫的查詢語言,然后在圖數(shù)據(jù)庫里面就可以把這個答案查出來了建蹄。
另外一種情況是沒有匹配到合適的問句模板碌更,這個時候會進入到基于檢索的問答模塊,最后是把基于知識圖譜和基于檢索的兩種的結(jié)果進行融合洞慎。
2. 在HR人崗精準匹配里面的應用
HR創(chuàng)建的JD能夠自動的匹配到簡歷庫里面最合適的候選人的簡歷痛单,也即把JD的內(nèi)容和簡歷庫里面簡歷的內(nèi)容做語義的匹配。
這里有一個問題劲腿,JD對技能的描述和不同的人的簡歷中對技能的描述存在很多表達方式造成的語義方面的差異旭绒。我們分別對JD和簡歷構(gòu)建技能圖譜,通過技能圖譜的子圖匹配焦人,就可以比較好地來解決語義匹配的問題挥吵。
我們在知識圖譜建設當中的一些經(jīng)驗:
第一,界定好范圍花椭,就是要有一個明確的場景和問題的定義忽匈,不能說為了知識圖譜而知識圖譜。如果沒有想清楚知識圖譜有什么樣的應用的場景矿辽,或者能解決什么樣的問題丹允,這樣的知識圖譜是比較難以落地的。一些明確的場景袋倔,比如解決商品數(shù)據(jù)的搜索問題雕蔽,或者從產(chǎn)品說明書里面做相關問題的回答。
第二奕污,做好schema的定義萎羔,就是上面講到的對于schema或者本體的定義。第一步確定好場景和問題以后碳默,就基于這樣的場景或者問題贾陷,再進行相關領域的schema的定義缘眶。定義這個領域里概念的層次結(jié)構(gòu)、概念之間的關系的類型髓废,這樣做是確保整個知識圖譜是比較嚴謹?shù)南镄福R的準確性是比較可靠的。知識的模型的定義慌洪,或者schema的定義顶燕,大部分情況下是通過這個領域的知識專家的參與,自上而下的方式去定義的冈爹。
第三涌攻,數(shù)據(jù)是知識圖譜構(gòu)建基礎。數(shù)據(jù)的梳理就比較重要频伤,最需要什么樣的數(shù)據(jù)恳谎?依賴于我們要解決的問題是什么,或者我們的應用場景是什么憋肖?基于問題和場景因痛,梳理出領域相關的問題、相關的數(shù)據(jù)岸更,包括結(jié)構(gòu)化的數(shù)據(jù)鸵膏、半結(jié)構(gòu)化數(shù)據(jù)、無結(jié)構(gòu)化的數(shù)據(jù)怎炊,結(jié)合百科跟這個領域相關的數(shù)據(jù)谭企,領域的詞典,或者領域?qū)<业慕?jīng)驗的規(guī)則评肆。
第四赞咙,不要重復去造輪子,很多百科的數(shù)據(jù)和開放知識圖譜的數(shù)據(jù)糟港,是可以融合到我們的領域知識圖譜中攀操。
第五,要有驗證和反饋機制秸抚,需要有管理后臺速和,用戶可以不斷的和知識圖譜系統(tǒng)進行交互,不斷的進行確認和驗證剥汤,確保知識圖譜每一步推理和計算都是準確的颠放。
第六,知識圖譜構(gòu)建是持續(xù)迭代的系統(tǒng)工程吭敢,不可能一蹴而就碰凶。
最后給大家介紹中文開放知識圖譜,達觀數(shù)據(jù)也是中文開放知識圖譜發(fā)起單位之一,這里面有很多開放的數(shù)據(jù)和開源的工具欲低,其中的文章也是非常好的學習材料辕宏。