知識圖譜推理FOIL


image-20211119111922638

問題: 如何從知識圖譜中推理得到:

​ father(David, Ann)

image-20211119112334474
若能推理出這條規則, 問題得解.

歸納邏輯程序設計 (inductive logic programming,ILP)算法是機器學習和邏輯程序設計交叉領域的研究內容。

ILP使用一階謂詞邏輯進行知識表示,通過修改和擴充邏輯表達式對現有知識 歸納,完成推理任務。

作為ILP的代表性方法,FOIL(First Order Inductive Learner)通過序貫覆蓋實現規則推理。

FOIL算法學習過程

概述: 從一般到特殊, 逐步給目標謂詞添加前提約束謂詞, 直到所構成的推理規則不覆蓋任何反例.

1. 給定目標謂詞

Father(x, y)

2. 構造 背景知識樣例樣例 和 目標謂詞訓練樣例

  • 背景知識: 知識圖譜中目標謂詞以外的其他謂詞實例化結果(已知謂詞)
  • 目標謂詞只有一個正例Father(David, Mike)
  • 反例: 只能在已知兩個實體的關系且確定其關系與目標謂詞相悖時, 才能將這兩個實體用於構建目標謂詞的反例, 而不能在不知兩個實體是否滿足目標謂詞前提下將它們來構造目標謂詞的反例.

image-20211119113856521

3. 依次將謂詞加入到推理規則中作為前提約束謂詞

計算推理規則覆蓋的正例和反例

如:

  • Monther(z, y)作為前提約束謂詞加入, 可得到推理規則Monther(z, y) → Father(x, y)
  • 在背景知識中, Monther(z, y)有兩個實例:
    Monther(James, Mike)
    Monther(James, Ann)
  • 對於Monther(James, Mike)這一實例, z=James, y=MIke, 將z和y帶入Father(x, y)得到Father(x, Mike).
    覆蓋了 :
    正例 Father(David, Mike)
    反例 Father(James, Mike) Father(Ann, Mike)
  • 對於Monther(James, Ann)這一實例, z=James, y=Ann, 將z和y帶入Father(x, y)得到Father(x, Ann).
    覆蓋了:
    反例 Father(James, Ann)

計算信息增益值(information gain)

image-20211119120454907

image-20211119113933085

NA(Not Available): FOIL_Gain為負無窮時

4.基於計算所得FOIL增益值來選擇最佳 前提約束謂詞

Couple(x, z)

5. 建立新的推理規則以及更新訓練樣本集

  • Couple(x, z)加入后信息增益最大, 將其加入推理規則, 得到Couple(x, z) → Father(x, y)
  • 將訓練樣例中與該推理規則不符的樣例去掉. 由新規則和背景知識樣例可知, Father(x, y)中的x只能是David. 新的訓練樣本集如下:

image-20211119114351865

重復3 4 5步驟, 直到新規則不覆蓋任何反例

image-20211119114611038

image-20211119114645307

總結

image-20211119124320629

給定目標謂詞,FOIL算法從實例(正例、反例、背景知識樣例)出發,不斷 測試所得推理規則是否還包含反例,一旦不包含,則學習結束,由此充分展 示了“歸納學習”的能力。在學得推理規則后,再給推理規則中的變量賦予具體例子,經過“演繹”得到新的知識


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM