資料來源: Knowledge Graph tutorial (AAAI 2017-part 2)
相關(guān)鏈接:https://kgtutorial.github.io/slides/Part2b_IE.pdf
問題背景
知識抽?。↖nformation Extraction)主要是在完成一系列分詞、詞性標注等NLP任務(wù)等的基礎(chǔ)上,從打上詞性標簽的句子中提取信息。現(xiàn)有的提取系統(tǒng)主要有:OpenIE,ConceptNet,NELL,KnowledgeVault。
知識圖譜中信息一般以三元組的方式進行組織,一般來說有(實體,關(guān)系,實體)和(實體,屬性,屬性值)兩種形式。在信息提取的過程主要包含如下三個任務(wù):
1. 如何確定領(lǐng)域知識(Define domain)?
2.如何提取三元組(Information extraction)?
3.如何評估提取出的三元組的可靠性(Scoring the candidate facts)?
針對每一個任務(wù),當前均有三種解決方式:1. 監(jiān)督(純手工),2.半監(jiān)督(人機交互),3.無監(jiān)督(機器學習)。以下將簡略介紹針對每一個任務(wù)的三種解決方式。
任務(wù)1: ?領(lǐng)域知識的確定
之所以要確定領(lǐng)域知識,一方面是為了在信息提取任務(wù)中可以有效避免語義漂流(semantic drift),一方面是為了在后期的評估任務(wù)中可以過濾掉悖于領(lǐng)域知識的三元組。
case1: ?監(jiān)督。需要領(lǐng)域?qū)<抑R來構(gòu)造高層語義網(wǎng)絡(luò),精度高但代價昂貴。
case2: ?半監(jiān)督。人工列出所需構(gòu)建的實體,和實體之間的層次關(guān)系。利用機器學習的方式從語料庫中學習實體之間的關(guān)系。
case3: ?無監(jiān)督。將句子中的任何動詞作為關(guān)系,任何名詞作為實體。精度低,容易引入噪聲。
任務(wù)2:三元組的提取
case1:? 無監(jiān)督。需要領(lǐng)域?qū)<抑R手工編寫規(guī)則/模式,例如用“A work for B”來描述雇傭關(guān)系,然后將這樣的規(guī)則/模式應(yīng)用入句子,來挖掘出具體的三元組。
case2: ?半監(jiān)督。人工給出種子實例(Seed instances),例如”(John,HuaWei),(Alice,Apple)“。然后交給機器,學習出這類種子實例中所包含的模式 (Pattern) ——“A work for B”,接著利用該模式挖掘新的符合該模式的實例,再將這些新的實例加入種子實例中。所以,上述過程是一個bootstrap的過程。
在這個過程中,還可以引入人工互動。例如對機器學習到的模式,可以進行人工的篩選。對新學習到的三元組實例可以標注正負例。
case3: ?無監(jiān)督。將句子中符合一定語法規(guī)則的動詞作為關(guān)系,將該動詞左右的名詞作為實體。
任務(wù)三:可靠性評估
case1:? 無監(jiān)督。人工設(shè)計評估函數(shù)?;驈拇笠?guī)模打好標簽數(shù)據(jù)中學習到特定的評估函數(shù)。耗時長,精度高。
case2: ?半監(jiān)督。迭代的方法。打標簽的數(shù)據(jù)和未打標簽的數(shù)據(jù)共存,不斷迭代,refain。
case3: ?無監(jiān)督。一個模式的得分正比于抽取出該模式所使用到的實例的個數(shù)。一個三元組的得分正比于抽取出該三元組所使用到的模式個數(shù)。