2知识图谱的生命周期
生活随笔
收集整理的這篇文章主要介紹了
2知识图谱的生命周期
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
知識圖譜的生命周期?@知識圖譜
- 知識建模--建立本體ontolog
- 建什么
- 概念、實體的類型
- 概念/實體的關聯關系
- 要求:可靠性
- 方法
- 自頂向下--專家手工形成數據模式
- 自底向上--實體--類
- 利用現有的標準轉換
- 從現有的高質量數據源中進行映射:
- 用知識圖譜--抽象建模--來自不同數據源
- 實體抽取與合并---實體/概念
- 屬性映射與歸并--屬性--不同數據源中對實體的描述
- 關系抽取---關系---數據間的關聯關系
- 建什么
- 知識獲取--控制精度,減少知識融合的難度
- 不同來源
- 不同結構
- 結構化--D2R
- 難點:復雜表數據處理
- D2RQ:關系型數據庫-->RDF數據庫--的平臺
- D2RQ Mapping language--語言--映射規則
- D2RQ engine--實現
利用一個D2RQ mapping 文件將關系型數據庫中的數據格式換成RDF - D2R server--接口
- Http server
- 對RDF數據查詢接口
- 提供上層的RDF瀏覽器
- SPARQL查詢客戶端
- 傳統HTML瀏覽器調用
- Http server
- 半結構化---包裝器
- 難點:方便的包裝器定義方法--包裝器自動生成、維護、更新
- 網站--以模板產生,所以可以用包裝器來解析xpath之類的
- 自動學習+人工--保證準確度
- 缺點:網站易變,無統一工具--針對不同結構的數據配置相應的包裝器
- 示例
- 純文本--無結構--信息抽取
- 難點:結果準確率與覆蓋度
- 任務
- 實體識別
- 概念抽取
- 關系抽取
- 時間抽取
- 分類
- 開放領域---OPenIE--規模大,精度低--用作初步信息抽取探索
- 特點
- 關系模型事先未知
- 基于語言模式抽取
- 規模大
- 精度低--實用性不高
- 代表
- NELL
- 輸入:
- 初始本體
- 每個謂詞的一些實例
- web
- 不定期人工干預
- 任務:
- 24*7持續運行(2010-至今
- 每天
- 抽取更多知識補充本體
- 學習如何更好地建立抽取模型
- 結果:超過9000萬實例(不同置信度
- 示例
- fragment碎片
- 輸入:
- ReVerb
- TextRunner
- NELL
- 特點
- 特定領域-ClosedIE--規模小精度高
- 特點
- 預先定義好的關系
- 基于領域專業知識的抽取
- 規模小
- 精度高
- 典型工具:DeepDive
任意兩兩結合看是否在一個句子中,看他是否有已有的關系- 針對關系抽取--
- 對指定關系理想(
- 前提,確定實體
- 支持中文--引入相關基礎處理工具即可
- 需要大量的標注語料--人工設置標注規則
- 數據文件:未提供專門的針對概念、實體和時間抽取的支持
- 針對關系抽取--
- 特點
- 開放領域---OPenIE--規模大,精度低--用作初步信息抽取探索
- 結構化--D2R
- 方法
- 實體抽取
- 定義:從原始語料中自動識別出指定類型的命名實體
- 序列標注:BIO,BIOES
- 包括
- 實體名
人名、地名、機構名、國家名…… - 縮略詞
- 數學表達式
貨幣值、百分數、時間表達式等 - 例子
- 實體名
- 基于規則與字典的方法
- 依據:人工構造的規則+已知命名實體庫,將限定領域的語料進行相同的預處理并與規則集合中的規則進行匹配
- 優點:準確度高
- 缺點
- 成本大--規則和模板要大量專家編寫
- 不靈活---難以建立完整而準確的模式集合
- 召回率低
- 基于機器學習的方法
- 隱馬爾可夫模型HMM(有向圖)
- (x,y):分詞得到W=(w1,w2,…,wn),T=(t1,t2,…,tn)為詞序列實體標注后的結果
- 目標:maxP(T|W)的標注序列T--------由貝葉斯P(T|W)=P(T)P(W|T)/P(W),其中P(W)是常數。
不可能窮舉W和T的所有情況,這是個np難問題 - 計算
class HMM_NER: def __init__(self,char2idx_path,tag2idx_path): # 載入一些字典: # char2idx:字 2 token self.char2idx=load_dict(char2idx_path) self.tag2idx=load_dict(tag2idx_path) self.idx2tag={v:k for k,v in self.tag2idx.items()} self.tag_size=len(self.tag2idx) self.vocab_size=max([v for _,v in self.char2idx.items()])+1 print(self.tag_size,self.vocab_size) # transition=A,emission=B,piquanbuwei0 self.transition=np.zeros([self.tag_size,self.tag_size]) self.emission=np.zeros([self.tag_size,self.vocab_size]) self.pi=np.zeros(self.tag_size) self.epsilon=1e-8#偏置,防止log(0)或乘0 def fit(self,train_dict_path):# fit用來訓練模型, print("initialize training…") train_dict=load_data(train_dict_path)# 估計轉移概率矩陣,發射概率矩陣和初始概率矩陣的參數 self.estimate_transition_and_initial_probs(train_dict) self.estimate_transition(train_dict) self.pi=np.log(self.pi) self.transition=np.log(self.transition) self.emission=np.log(self.emission) print("initialize training is done") def estimate_transition(self, train_dict): """ 轉移矩陣和初始概率的參數估計,也就是bigram二元模型 :param train_dict: :return: """ print("estimate_transition...") # print(train_dict[0]["label"]) for dic in tqdm(train_dict): for char,tag in zip(dic["text"],dic["label"]): # print(self.tag2idx[tag],self.char2idx[char]) self.emission[self.tag2idx[tag],self.char2idx[char]]+=1 self.emission[self.emission==0]=self.epsilon self.emission/=np.sum(self.emission,axis=1,keepdims=True) def estimate_transition_and_initial_probs(self,train_dict): """ 轉移矩陣和初始概率的參數估計,也就是bigram二元模型 :param train_dict: :return: """ print("estimate_transition_and_initial_probs...") # print(train_dict[0]["label"]) for dic in tqdm(train_dict): for i ,tag in enumerate(dic["label"][:-1]):#去掉了最后一個句號? # print(tag) if i==0: # print(self.tag2idx[tag]) self.pi[self.tag2idx[tag]]+=1#計數 curr_tag=self.tag2idx[tag] next_tag=self.tag2idx[dic["label"][i+1]] self.transition[curr_tag,next_tag]+=1 self.transition[self.transition==0]=self.epsilon self.transition/=np.sum(self.transition,axis=1,keepdims=True) self.pi[self.pi==0]=self.epsilon self.pi/=np.sum(self.pi) def predict(self,text):# 預測并打印預測結果# 維特比算法解碼 if(len(text)==0): raise NotImplementedError("輸入文本為空!") best_tag_id=self.viterbi_decode(text) self.print_func(text,best_tag_id) def viterbi_decode(self,text): """ 返回T2_prev獲得的最優路徑 :param text: :return: """?#序列長?seq_len=len(text)?#初始化T1,T2 T1_table=np.zeros([seq_len,self.tag_size]) T2_table = np.zeros([seq_len, self.tag_size]) start_p_Obs_State = self.get_p_0bs_State(text[0]) T1_table[0,:]=self.pi+start_p_Obs_State T2_table[0,:]=np.nan for i in range(1,seq_len): p_Obs_State=self.get_p_0bs_State(text[i]) p_Obs_state=np.expand_dims(p_Obs_State,axis=0)#行向量prev_score=np.expand_dims(T1_table[i-1,:],axis=1)#列向量curr_score=prev_score+self.transition+p_Obs_State T1_table[i,:]=np.max(curr_score,axis=0) T2_table[i,:]=np.argmax(curr_score,axis=0) best_tag_id=int(np.argmax(T1_table[-1,:])) best_tag=[best_tag_id,] for i in range(seq_len-1,0,-1): best_tag_id=int(T2_table[i,best_tag_id]) best_tag.append(best_tag_id) return list(reversed(best_tag)) def get_p_0bs_State(self,char): # 計算p(o|state) char_token=self.char2idx.get(char,0) if char_token==0: return np.log(np.ones(self.tag_size)/self.tag_size) return np.ravel(self.emission[:,char_token])#np.ravel()返回的是視圖,修改時會影響原始矩陣 def print_func(self,text,best_tag_id): for char,tag_id in zip(text,best_tag_id): print(char+"_"+self.idx2tag[tag_id]+"|",end="")if __name__=="__main__": model=HMM_NER("dicts/char2idx.json","dicts/tag2idx.json") model.fit("corpus/train_data.txt") model.predict("我在中國吃面包")- 馬爾科夫假設:當前狀態ti只和遷移狀態ti-1有關
- 轉換
P(ti|ti-1)也可用這個方法求出后歸一化第二個公式去掉負號,或者argmax改成argmin?? - predict:維特比得到最優路徑后解碼(0->0.000001以防解碼時向下溢出
HMM模型中要處理OOV(Out of vocabulary)的問題,就是測試集里面有些字是不在訓練集里面的,這個時候通過觀測概率矩陣是無法查詢到OOV對應的各種狀態的概率的,處理這個問題可以將OOV對應的狀態的概率分布設為均勻分布。HMM的三個參數(即狀態轉移概率矩陣、觀測概率矩陣以及初始狀態概率矩陣)在使用監督學習方法進行估計的過程中,如果有些項從未出現,那么該項對應的位置就為0,而在使用維特比算法進行解碼的時候,計算過程需要將這些值相乘,那么如果其中有為0的項,那么整條路徑的概率也變成0了。此外,解碼過程中多個小概率相乘很可能出現下溢的情況,為了解決這兩個問題,我們給那些從未出現過的項賦予一個很小的數(如0.00000001),同時在進行解碼的時候將模型的三個參數都映射到對數空間,這樣既可以避免下溢,又可以簡化乘法運算。http://www.sohu.com/a/315654629_787107?
- 條件隨機場CRF(無向圖)
- CRF定義:X、Y是聯合隨機變量。若在給定隨機變量X的條件下,隨機變量Y構成由一個無向圖G=(V,E)表示的馬爾科夫模型,則P(Y|X)成為條件隨機場---只與鄰接節點有關
- 線性鏈條件隨機場(Linear Chain CRF)
- 給定X=(x1,x2,…,xn),Y=(y1,y2,…,yn),P(Y|X)滿足馬爾科夫性(僅與相鄰有關),不僅考慮前,還考慮后
- 目標:argmax P(T|W)的T--與HMM一致
- 計算
權重因子是轉移函數、狀態函數的量 - 補充
https://www.jianshu.com/p/5d6a03c1f83f- 兩個算法
- 預測算法
- 前向后向
- 維特比--得到predict,得到最優路徑
https://blog.csdn.net/qq_42189083/article/details/89350890
- 訓練算法
https://blog.csdn.net/xueyingxue001/article/details/51499087?條件隨機場實際上是定義在時序數據上的對數線性模型,其學習方法包括極大似然估計和正則化的極大似然估計。具體的優化實現方法有改進的迭代尺度法IIS、梯度下降以及牛頓法。- 梯度下降
- 迭代尺度法IIS
https://www.cnblogs.com/xueyinzhe/p/7141838.html - 擬牛頓
- 預測算法
- 矩陣形式
http://123.206.33.15:8889/notebooks/ai%E7%AE%97%E6%B3%95/crf.ipynb - 概率計算問題
- 前向后向算法
- 兩個算法
- 基于深度學習的方法
- 句子模型/窗口模型
- CNN
- 輸入層:將窗口/句子中每一個詞的特征按詞序拼接,詞(可以轉化為詞向量)
- CNN層:通過CNN變成大小一致的中間表示
- max-poolng
- Hardtanh--輸出各個tag上的打分
- LSTM+CRF
http://123.206.33.15:8889/tree/ai%E7%AE%97%E6%B3%95/ner- CRF-decoding
- 用CRF的目的--使符合常理B后是I之類的
- 轉移矩陣--作為模型參數一起訓練,如果使用經驗概率得到,會陷入局部極小
- 狀態矩陣--由LSTM得到
- LSTM正常訓練--encoding
- CRF-decoding
- 隱馬爾可夫模型HMM(有向圖)
- 關系抽取
https://blog.csdn.net/yuxuan_hulu/article/details/82783810- 示例
- 分類
- 有監督關系抽取
- 建模為分類問題,每個類對應于一種預先定義的關系
無關系--認為是特殊的關系標簽 - 分類
- 基于特征的方法--通過最大熵模型
- 抽取實體對周圍的詞法、句法、語義特征,訓練分類器并對關系位置的關系實例進行預測
- 特征分類
- 基于詞的特征:兩個實體,及他們見的所有詞、實體的中心詞……
- 基于短語的特征:兩個實體是否處于同一名詞短語、動詞短語、介詞短語中,兩個實體之間的短語中心詞,兩個實體之間的短語標簽路徑等
- 基于語義的特征:國家名、任務相關的觸發詞,在wordNet的 relative語義類的詞等
- 基于核的方法--SVM
多分類(無關系作為一類)二分類(有無關系)+多分類向量機(什么關系)?- 核函數+支持向量機
核函數用以計算兩個關系實例的相關度支持向量機?https://blog.csdn.net/qq_35992440/article/details/80987664?最大化兩類距離,找中間分界面? - 以核函數的不同分類
- 序列核
- 句子---詞的序列,一個詞一個特征向量
- 關系實力--一個特征向量的序列
- 特征--詞本身+詞性標簽+實體類型等
- 核函數定義
s-特征向量的序列l-標簽? - 內積--相似度
- 加上相似特征個數
- 將語句分成三段---最終核函數
- 樹核--句法樹核,依存樹核
- 圖核:依存圖核
- 序列核
- 核函數+支持向量機
- 基于神經網絡的方法
- CNN
- RNN
- 遞歸NN
- 基于特征的方法--通過最大熵模型
- 建模為分類問題,每個類對應于一種預先定義的關系
- 半監督關系抽取
- 動機:節省人工標注成本,只用少量標注數據
- 分類
- 基于自舉的方法
- DIPRE(dual iterative pattern relation extraction
- 核心假設:模式-關系對偶性
通過高質量的模式可以找到高質量的關系實例通過高質量的關系實例可以學習高質量的模式?? - 少量標注的種子實例-->學習到的模式,用學習到的模式匹配大量無標注數據,再放入關系實例集合中,重新學習模式--》迭代,知道獲得足夠規模的關系實例
- 示例
- 核心假設:模式-關系對偶性
- DIPRE(dual iterative pattern relation extraction
- 基于標簽傳播的方法
- 基本思想:有標簽、無標簽的關系實例--》圖中節點,并表示為一個特征向量,節點相似度--》邊權重
- 關系實例的相似度--邊權
- 向周圍傳播直至收斂--有標簽的信息會通過有權邊傳遞到相鄰無標簽節點上
其無標簽的節點v的標簽---有標簽節點+v的相鄰節點
- 基于主動學習的方法
- 核心思想:允許學習算法詢問一些無標簽數據的真實標簽
- 基于自舉的方法
- 遠程監督關系抽取
- 初始動機:通過外部知識庫代替人工標注--低成本獲得大量有標注數據
- 核心思想:如果知識庫中有<e1,R,e2>,則語料中所有<e1,e2>均標注為R
- 基于此,用分類問題解決關系抽取問題---句子分類
- at-least-once假設:如果知識庫中有<e1,R,e2>,則語料中所有<e1,e2>,至少有一個為R
- 句袋分類:引入多實例學習機制,將<e1,e2>的所有句子組成一個句袋
- 無監督關系抽取
- 將實體對間的字符串--聚類+化簡-->關系標簽
- 不依賴標注數據,標簽(關系類型)未歸一化
- 層次聚類的方法
- 標注命名實體,由實體對得到關系實例
- 關系實例有TF-IDF表示--余弦相似度衡量其相似度
- 兩個簇的相似度---簇中實例的最大距離(最小相似度)
- 用頻繁共現的共有詞--簇的標簽--關系類型
- 有監督關系抽取
- 屬性抽取、實體關系抽取聯合抽取
- 實體抽取
- 知識融合
- 分層次融合
- 數據層--關鍵
- 任務
- 實體合并
- 實體屬性合并
- 沖突檢測與解決
eg:年齡--出生日期過時的時間年月日與年月??
- 任務
- (數據)模式層
- 自頂向下+自底向上(經過人工校驗-->可靠性
- 任務
- 概念合并
- 概念上下位關系合并
- 概念屬性定義合并
- 數據層--關鍵
- 方法
- 實體對齊/實體匹配/實體解體
- 定義:判斷相同或不同知識庫中的兩個實體是否指向同一個對象
eg:詩仙和李太白--》李白? - 方法分類
- 成對實體對齊
- 將一個實體對基于屬性相似度進行成對比較
- SEEA(self-learning and embedding based method for entity alignment---by 官賽萍
http://xueshu.baidu.com/usercenter/paper/show?paperid=ce69077056173e05e64ed8b0b6c22b05&site=xueshu_se- 模塊
- 表示學習
- 區分關系和屬性
開始時沒有三元組,后續通過學習逐步加入?- 屬性
- 不同權重:學習時給重要的屬性三元組更高的權重
- 統一:即是實體又是屬性的元素---一個向量表示
- 屬性三元組(h,a,v)
- 優化P(v|h,a,X),實體和屬性之間的關聯用一個分類模型捕捉
- 用負采樣信息
- 關系三元組(h,r,t)
- 優化概率P(h|r,t,X)和P(t|h,r,X)
- 忽略P(r|h,t,X),由于關系r為固定的對齊關系
- 以負采樣學習
- 得分函數
- 負樣本生成方法
- 1. 在實體集合中隨機選擇實體h'(或t'),替換(h,r,t)中的h(或t),生成負樣本(h',r,t)或者(h,r,t')
- 2. 在選擇替換實體的時候,不是完全隨機在實體集合中選擇,而是在適合關系?r的實體集合中隨機選取。
- ?例如:進行尾部實體替換時,只是用其他的地名替換“上海”,如“成都”,而不會使用人名進行替換:(姚明,出生于,傷害)
- 屬性
- 損失函數
- 加上log、正則-->最終loss
- 區分關系和屬性
- 實體對齊
- 衡量標準:學習到的實體向量的cos---相似度
- 選與頭實體A最相似的尾實體B,形成(A,B)對齊對
- 表示學習
- 機制
- 自學習機制
- 反饋:選cosine相似度前beta個對其實體對構成關系三元組再訓練模型
- 迭代直至收斂
- 表示學習-->實體對齊
- 實體對齊--》表示學習
- 自學習機制
- 模塊
- 集體實體對齊
- 基于相似性傳播
- 利用初始的匹配,以bootstraping方式迭代地產生新的匹配,在此過程中,實體間相似度會隨算法迭代不斷變化,直至算法收斂,或達到指定條件
eg:兩個作者匹配,則與這兩個作者有coauthor關系的另外兩個相似名字的作者會有較高的相似度,而這個相似度優惠對其他作者的匹配產生影響。 - bootstrap方法--放回抽樣計算‘
https://www.jianshu.com/p/369e3f4d239f
- 利用初始的匹配,以bootstraping方式迭代地產生新的匹配,在此過程中,實體間相似度會隨算法迭代不斷變化,直至算法收斂,或達到指定條件
- 基于相似性傳播
- 成對實體對齊
- 定義:判斷相同或不同知識庫中的兩個實體是否指向同一個對象
- 實體鏈接
- 任務:1或2 1.實體指稱詞與實體對齊,消歧;2.給出NIL實體的標簽
他是誰 - mention指稱詞是什么:縮略詞或實體的簡稱
eg:Moore---Michael Moore - NIL實體:找不到鏈接對象的指稱詞------要對他進行預測
猜一猜他是誰 - 過程
- 候選實體生成
- 目的:降低鏈接復雜度,給出候選集合--過濾
- 找:指稱詞可能的指向
- 方法
- 基于字典的方法
- 構建字典:(entity,它的指稱詞)--來找對應實體
- 基于文本擴展的方法
- 范圍:在指稱詞出現的上下文中找
- 方法:啟發式或指代消解---對實體指稱詞進行擴展--再用其他方法對擴展后的指稱詞進行候選實體生成
- 基于搜索的方法
- 在知識庫上構建的索引去找(Lucene和Elastic Search
- 搜索引擎
- 基于字典的方法
- 候選實體排序
- 排序依據:匹配度
- 方法
- 基于相似度計算的方法
- 編輯距離、Jaccard相似度、Dice系數、TF-IDF相似度等
- 什么的相似度:指稱詞和實體的
- Wikipeidia Link-based Measure
- 基于機器學習的方法---特征向量輸入,二值分類問題
- 基于圖的方法
- 一個節點:一個實體指稱詞/候選實體節點
- 邊:實體間的相關性---相似度
- 指稱詞與其候選實體右邊--權重為相似度
- 不同候選實體集合間也有邊---WLM得到其權重
- 基于相似度計算的方法
- NIL實體預測
- 指稱項特征表示
- 詞袋模型
- 語義特征
- 社會化網絡
- wiki
- 多元異構語義知識融合
- 聚類
- 層次聚類
- KNN
- k-means
- 指稱項特征表示
- 候選實體生成
- 任務:1或2 1.實體指稱詞與實體對齊,消歧;2.給出NIL實體的標簽
- 實體對齊/實體匹配/實體解體
- 難點
- 不同來源不同形態數據的融合
- 海量
- 新增知識的整合
- 多語言融合
- 分層次融合
- 知識存儲
- 技術與難點
- 大規模三元組數據的存儲
- 知識圖譜阻止的大數據的存儲
- 事件與時態信息的存儲
- 快速推理與圖計算的支持
- 關系型數據庫(也可以存,其實挺多都用這個存
- 圖數據庫--各方面性能更好
- 常見的--查詢快,但分析不友好
- 分析型圖數據庫SQLGraph(閉源,收費?
- 查詢、分析快
- 支持大圖計算
- 圖查詢比關系快
- 復雜圖計算秒及回應
- 圖計算比Neo4j快10倍以上
- 內置豐富的圖分析算法
- 與SQL引擎像結合--類似sQL接口
- 可定制,可擴展
- 查詢結果可視化
- 性能對比--比Neo4j(一個圖數據庫,單機的,免費)好
- 數據加載
- 路徑查詢
- 弱聯通自圖查詢
- PageRank分析--PageRank,網頁排名,又稱網頁級別
- 查詢、分析快
- 技術與難點
- 知識計算--推理
- 定義:已知-->未知
- 人類:從已知推未知(用已掌握知識,找出蘊含的事實/歸納)
- 按照某種策略的思維
- 基于特定的規則和約束
- 計算機:
- 模擬人類
- 按一定的推控制策略
- 利用形式化的知識,進行機器思維和求解問題的過程
- 人類:從已知推未知(用已掌握知識,找出蘊含的事實/歸納)
- 分類
- 按新知識推出的途徑:
- 演繹推理:一般-->個別
- 包含自然演繹、歸結原理、表演算等方法
- eg:
- 大前提:三角形有鈍角、直角、銳角
- 小前提:不是鈍角、不是銳角
- 結論:是直角
- 歸納推理:個別->一般(觀察)
- 天下烏鴉一般黑
- 默認推理/缺省推理
- 前提:知識不完全
- eg:如果沒有足夠的證據證明條件A不成立,則默認A成立,在它成立前提下推理,得到結論
- 演繹推理:一般-->個別
- 按確定性
- 確定性推理:利用的知識精確,推出的結論確定
- 不確定性推理:知識和證據都具有某種不確定性
- 似然推理(貝葉斯推理,基于概率論
- 近似推理(模糊邏輯
- 按結論單調性:
- 單調推理:隨著推理的推進和新知識的加入,推出的結果單調遞增,越來越接近結論
- 非單調推理:可能需要否定已推出結論,回退(回溯)
- 按是否運用與問題有關的啟發性知識:
- 啟發式推理:在推理過程中運用解決問題的策略、技巧、經驗,加速
- 非啟發式推理:不用,一般推理
- 按方法論
- 基于知識的推理:運用知識
- 統計推理:依據統計信息
- 直覺推理:依據常識
- 按繁簡:
- 簡單推理
- 復合推理
- 按結論的必然性:
- 必然性推理
- 或然性推理
- 推理控制方向
- 正向
- 逆向
- 混合
- 雙向
- 時間推理--用時間相關知識
- 空間推理——用空間相關知識
- 案例推理——通過使用/調整老問題的解決方案推理新問題的解決方案
- 按新知識推出的途徑:
- 基于符號的表示方法--知識推理
- 基于(產生式)規則的推理--編寫相應的業務邏輯,通過使用規則引擎實現推理
- 產生式系統
- 前向推理系統--類似一階邏輯--按一定機制執行規則達到目的
- 應用
- 自動規劃
- 專家系統
- 組成
- 事實集合
用于存儲當前系統中所有事實- 事實
- 描述對象
- 形如(type attr1:val1 attr2:val2 …attrn:valn)其中type,val,attr--原子常量
(student name:alice age:20)
- 形如(type attr1:val1 attr2:val2 …attrn:valn)其中type,val,attr--原子常量
- 描述關系(refication
- eg:(basicFact relation:olderThan firstArg:John secondArg:Alice)--簡寫(olderThan John Alice)
- 描述對象
- 事實
- 產生式集合(規則
- 產生式
- IF conditions(LHS) THEN actions(RHS)
eg:IF(Student name:x)THEN ADD(Person name:x)?
- IF conditions(LHS) THEN actions(RHS)
- 產生式
- 推理引擎--控制系統執行
- 模式匹配
- 用規則的條件LHS部分匹配事實集合中的事實,整個LHS都被滿足的規則被觸發,并加入議程(agenda)
- 解決沖突
- 多個被觸發規則中選一個
- 執行動作
- 執行RHS--對濕濕的集合進行一定的操作
- 模式匹配
- 事實集合
- 產生式系統
- 方法
- 謂詞邏輯
- Semantic Net語義網?@符號知識表示
- Script腳本?@符號知識表示
- 框架?@符號知識表示
- 語義網web?@符號知識表示
- 基于(產生式)規則的推理--編寫相應的業務邏輯,通過使用規則引擎實現推理
- 基于分布式表達的推理--知識計算(推理)
- 方法
- 張量分解
- 知識圖譜的三元組結構(h,r,t)
- 實體:E1,E2,……,En
- 關系:R1,R2,……,Rn
- 三維張量表示知識圖譜---記為Y
- 張量分解-->實體、關系表示
- Yk---第k中關系的矩陣---可以進行低秩分解
A-特征向量Rk--特征值? - 目標函數---使低秩分解與原矩陣差異最小
- 分量形式
- 范數
- 解釋:
- 基于翻譯——transE
- TransE
- 關系事實=(head,relation,tail)-->向量(h,r,t)
- 思想:把關系看做是頭尾實體之間的平移--向量相加---h+r=t(三角法則
- 勢能函數--正確的能量最小-穩定
- 損失函數loss
- 最小化基于辯解的損失函數
- fr(h,t)---得分函數
- Mopt:最優邊界,從一個候選閉集中選取{0.25,2.5,1,2……}
- 不足:不同的知識圖譜,共享相同的候選集合
- 問題:關系多樣性--存在多種類型的關系-1-1,1-N,N-1,M-N
- Trans系列:勢能函數不同
- TransH--取垂直向量
- TransR--映射到關系空間
- TransA
- 動機:知識圖譜有不同的局部性----不同的最優邊界
- 優化:自適應地決定不同知識圖譜的邊界超參Mopt
- Ment---實體依賴的關系超參數
- Mrel---關系依賴的邊界超參
- TransE
- 神經網絡---SENN
- 現有的關系推斷,無法區分建模具體任務(三缺一)
(h,r,t)-->(?,r,t),(h,?,t),(h,r,?)差異顯著,應區分對待 - SENN的好處
- 分開三個任務--區分對待
- 通過共享向量表示,在統一的框架中集成這三個任務
- 框架
- 2個共享表示矩陣
- 3個子結構:head_pred,rel_pred,tail_pred---對應三個預測任務
- head_pred:(?,r,t)頭實體預測任務
- score:得分函數
- AE是什么?實體的k維表示--特征矩陣
- 預測標簽向量ph
- score:得分函數
- rel_pred/tail_pred
- 得分函數
AR----關系的特征矩陣 - 預測標簽向量
- 得分函數
- ?
- head_pred:(?,r,t)頭實體預測任務
- 訓練
- loss---標準損失函數
- 有效集
- 二值交叉熵損失
- 自適應加權損失機制
- 根據正確答案數的不同,自適應地制定推斷權重
錯的多的,更大乘法 - 根據任務難以,給更大的權重---w>1
關系<實體
- 根據正確答案數的不同,自適應地制定推斷權重
- 最終損失
- loss---標準損失函數
- SENN+模型
- 關系輔助的實體推理:在測試中,關系預測輔助實體預測
- 給定(?,r,t)并假定h是個有效的頭實體
- 如果進行關系預測(h,?,t),則r最有可能具有更高的預測標簽,排在前列
- 兩個額外的關系輔助向量
- 實體預測的最終預測標簽向量
- 關系輔助的實體推理:在測試中,關系預測輔助實體預測
- 現有的關系推斷,無法區分建模具體任務(三缺一)
- 張量分解
- 方法
- 定義:已知-->未知
- 知識圖譜應用
- 行業知識圖譜--特定領域
- 要求:具有一定的深度和完備性、準確度要求高
- 用于:輔助各種復雜的分析應用或決策知識
- 特點:嚴格且豐富的數據模式、實體屬性多且有行業意義
- 數據來源多:內部、互聯網、第三方
- 類型多:結構化、半、非(后兩者多)
- 數據模式無法預先確定:出現后才知道,模式隨數據增長演變
- 數據量大
- 應用
- 電子商務
- 阿里
- 在管控中應用,讓判斷更智能
- 在搜索中應用讓搜索更智能
- 企業社交圖譜查詢
- 企業最終控制人查詢--尋找最大股東
- 企業之間路徑發現--衡量企業之間的密切程度
- 輔助信貸審核
- 對客戶信息全面掌控--避免信用重復使用,信息不完整
- 反欺詐--基于知識圖譜的不一致驗證(交叉檢驗
- 信息分析
- 人物群體分析
- 菲律賓政治人物關系分析
- 電子商務
- 通用知識圖譜
- 全領域,用以支持搜索引擎(google的知識圖譜
- 用于:互聯網的搜索、問答、推薦---面向任務
- 注重:廣度--難以生成完整的全局的本體層--難以統一管理
- 應用:
- 智能問答
- 精準搜索
- 關系搜索
- 分類瀏覽
- 智能推薦
- 知識推理
- 比較
- 通用(廣度)+行業(深度)相結合、相互補充
- 通用--行業的基礎
- 行業--融入通用
- 行業知識圖譜--特定領域
總結
以上是生活随笔為你收集整理的2知识图谱的生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java面试知识点:Date类、异常
- 下一篇: 知识复习:nlp算法面试汇总