論文導讀 | OpenAI的實體消歧新發現

AI前線發表於2018-02-26
本文由 「AI前線」原創,原文連結:論文導讀 | OpenAI的實體消歧新發現
作者|JONATHAN RAIMAN
譯者|郝毅
編輯|Emily

AI 前線導讀:本文使用一種神經網路自決策的方法,判斷一個詞是否屬於 100 個自動發現的型別,從而確定單詞的實體物件。例如,對於一句話“the prey saw the jaguar cross the jungle”,不同於以往的直接推斷“jaguar”是車、動物還是其他東西,該系統會用“20 個問題”來分析 jaguar 究竟屬於哪個預選類別。這種方法相較於幾個實體消歧 (Entity Disambiguation) 資料集上的最好方法有顯著的提升。


論文原文地址:
arxiv.org/abs/1802.01…
Github 專案地址:
github.com/openai/deep…
論文導讀 | OpenAI的實體消歧新發現
論文導讀 | OpenAI的實體消歧新發現

上圖是對該型別系統的一個簡單說明。在訓練資料中 jaguar 被認為是捷豹汽車的概率是 70%,被認為是美洲豹的概率是 29%,被認為是豹式飛機的概率是 1%。使用我們的“型別”方法進行判斷,對第一個例子中的消岐效果影響不大,因為模型認為美洲豹沿著高速公路奔跑的情況是可能存在的,但是在第二個例子中,模型認為捷豹汽車穿越叢林這件事顯然是不太可能出現的。

我們在 CoNLL(YAGO) 取得了 94.88% 的準確率,之前最好的準確率是 91.50% 和 91.70%。並在 TAC KBP 2010 挑戰賽上取得了 90.85% 的準確率,而之前的最好的準確率是 87.20% 和 87.70%。之前的方法均使用了詞向量的方法,但是對於實體消歧這類任務,基於型別的方法往往能夠更好的勝出,因為完美的“型別”預測可以得到 98.6% 至 99% 的準確率。


整體框架

我們的系統分為下面幾個步驟:

  1. 提取每個單詞的維基百科內部連結, 以確定每個單詞可供參考的實體集合。例如,當我們在維基百科的頁面遇到連結 jaguar 時, 我們就認為連結可能是 jaguar 的一個含義。

en.wikipedia.org/wiki/Jaguar

  1. 通過對維基百科類別樹的遍歷 (使用 Wikidata 知識圖) 來決定每個實體所屬的類別集合。比如說,在頁面的底部,是下表中的這些類 (它們都有其專屬類別,比如 Automobiles):Categories: [British barnds] [Car brands] [Jaguar Car] [Jaguar vechicles]

en.wikipedia.org/wiki/Jaguar…’s

  1. 選擇一個含有 100 種類別的列表當作你的型別系統,然後優化該系統,使選取的類別可以更緊湊的表示任何實體。這樣我們就知道了實體到類別的對映關係,所以對於我們的型別系統,可以將每個類別中的每個實體表示為約 100 維的唯一的二值向量,這個向量表示了該實體與每個類別的從屬關係。
  2. 使用每個維基百科的內部連結以及其上下文來產生訓練資料,我們需要使用神經網路來學習一種對映關係,即單詞到 100 維的二值向量之間的對映。這一步將之前的步驟聯絡起來:維基百科的連結將單詞與實體相連,通過第二步我們知道了每一個實體的類別,而第三步則在我們的型別系統中選擇了實體所屬的類別。
  3. 在測試階段,給定一個詞語以及其上下文,我們的神經網路將輸出該詞語屬於其型別系統中每一個類別的概率。如果我們知道了類別成員的準確集合,我們可以將結果縮小到一個實體 (假設分類結果是完美的)。但實際上,我們必須計算大概 20 個概率問題:對於該單詞的每一個可能對應的實體,都需要使用貝葉斯理論來計算其概率。


更多的例子

下面是型別系統的一些例項,更多內容請點選原文檢視:

論文導讀 | OpenAI的實體消歧新發現
論文導讀 | OpenAI的實體消歧新發現


清洗資料

Wikidata 的知識圖可以轉化為訓練資料來源,完成細粒度實體到型別的對映。對於給定的實體,我們使用它的實體 (instance of ) 遞迴關係來決定其型別集,比如說,huamn 節點的子節點中有 human 這個型別。維基百科通過其類別連結也會提供一種實體到類別的對映。

對於一些實體,維基百科內部連結的統計可以提供一個比較好的相關短語。然而,有些時候連結到的是具體的例項而不是類別本身,這樣就會產生資訊上的噪聲 (anaphora-- 例如,國王 (king) 這個詞就會被連結到英格蘭查理一世 (Charles I of England))。這種情況會導致相關例項的數量的爆炸增長與連結有效性的下降 (例如,queen 被連結到了樂隊 Queen(皇后樂隊)4920 次,Elizabeth II(伊麗莎白二世)1430 次,monarch(君主) 只有 32 次)。

最簡單的方法是刪除少見的連結,但是這會造成有效資訊的丟失。而我們使用 Wikidata 屬性圖啟發式地將連結轉化為更加“通用”的含義,詳細說明可以看下圖。

論文導讀 | OpenAI的實體消歧新發現


經過這一步的處理,king 這個單詞的相關實體從 974 降到 14 個,並且 queen 到 monarch 的連線數從 32 增加到 3553。


選擇一個好的型別系統

我們需要選擇一個最好的型別系統和引數使得消岐準確率最大化。由於存在大量的可能型別集,找到一個精確解是十分困難的。因此我們使用了啟發式的搜尋和隨機優化 (進化演算法) 來選擇型別系統,並使用梯度下降訓練型別分類器來預測型別系統的表現。


論文導讀 | OpenAI的實體消歧新發現

ROC 曲線繪製了真陽性率 (true positive) 隨假陽性率 (false positive) 增加時的變化情況,上圖是一個 AUC 為 0.76 時的 ROC 曲線。一個隨機的分類器將會得到一條直線作為其 ROC 曲線 (圖中的虛線)。

我們需要選擇易於區分的型別 (這樣可以快速地減少可能的實體集合),同時易於學習 (即上下文可以為神經網路的型別推斷提供有效的資訊)。我們使用兩種啟發式的準則對搜尋方法進行了評估與優化:可學習性與準確性。可學習性的判定準則是使用 ROC 曲線下的面積 (AUC) 的平均值,使用 AUC 訓練分類器來預測型別成員。而型別預測準確率的提高可以從另一個方面說明歧義的消除。


型別系統評價

論文導讀 | OpenAI的實體消歧新發現

在給定的單詞範圍中,我們使用二分類器在資料的 150,000 個公共型別中對其成員做可能性預測。某個型別的分類器的 AUC 成為了“可學習性分數”的標誌。高的 AUC 意味著從上下文中可以很輕鬆的對這一型別做預測,效能不好的分類器可能是由於對於這一類對應的訓練資料不夠或者因為給定的單詞範圍不理想 (這一現象常發生在一些非自然的類中,如 ISBNs)。完整模型的訓練需要耗費幾天的時間,所以我們使用更小的模型作為評估“可學習性分數”的一個示例,這樣只需要 2.5 秒就可以完成訓練。

現在我們可以使用這些學習能力分數和統計資料來評估我們的型別系統中的一些子集的效能。下圖是使用交叉熵進行優化的效果,點選原文可以檢視動態優化過程。

論文導讀 | OpenAI的實體消歧新發現

為了更好的瞭解在設計一個型別系統時,哪些部分比較容易哪些部分比較困難,原文提供了一個互動式的系統讓使用者可以手動訓練自己的型別系統,通過選擇你認為正確的連線關係,可以達到消歧的目的。在這個系統中,你可以選擇一個大類,比如下圖中的 Politics&Business, 然後對其中有歧義的詞語開始進行訓練。

論文導讀 | OpenAI的實體消歧新發現

每個大類中的選項如下圖所示,對於例句中的詞語有可能的答案顯示在頂端,正確的答案是有顏色的那個,底部的是一些可用的型別。連線表示的是頂部的節點與底部節點之間的繼承關係,通過選擇你想使用的繼承關係可以對分類器進行訓練。直到你所選擇的繼承關係數量足夠將正確答案與其它選項劃分出來,這時就達到了消歧的目的。

論文導讀 | OpenAI的實體消歧新發現


神經型別系統

現在我們可以使用訓練好的型別系統對維基百科的資料進行標註。用這個資料 (在我們的試驗中,每個英文和法文都有 40 億個標註樣本),我們可以訓練一個雙向 LSTM 網路來獨立預測每個單詞的所有型別成員。在維基百科源文字上,我們只有內部連結的監督資訊,然而這些足以訓練一個在 F1 上預測精度超過 0.91 的網路。

這裡有一個有趣的事情,通過定向搜尋發現,基本所有的型別系統都包含了 Aviation、Clothing 和 Games 這些類 (這就像是 1754 in Canada 這個詞條,這表明在這個資料庫中,1754 是一個非常令人激動的一年),點選這裡可以檢視完整的型別列表。

分析

預測文件中的實體通常依賴於不同實體之間的“一致性”度量。例如,測量每個實體相互之間的匹配程度,其演算法時間複雜度是 O(N^2)。但是我們的方法時間複雜度是 O(N),因為我們只需要在樹中查詢每個短語,將短語對映到其可能的含義。我們根據維基百科中採集的連結頻次對所有可能的實體進行排序,並使用每個實體在分類器下的似然概率對其進行加權。新的實體可以通過指定其型別成員 (人、動物、原國籍、時間段等) 來新增。

未來工作

在實體消歧的問題上,本文的方法和之前的其他方法有許多的不同點。端到端的詞向量學習方法與本文講述的基於型別推斷的方法之間的效能比較,這是作者目前非常感興趣的一點。本文提到的型別系統僅使用了維基百科的很小的子集,當然你也可以擴充套件到所有的維基百科資料上,以得到更廣泛的應用。

檢視原文:

blog.openai.com/discovering…

更多幹貨內容,可關注AI前線,ID:ai-front,後臺回覆「AI」、「TF」、「大資料」可獲得《AI前線》系列PDF迷你書和技能圖譜。


相關文章