[論文筆記]聯合關係抽出:CoType

[論文筆記]聯合關係抽出:CoType

來自專欄 NLP相關筆記

提示 : 這篇文章與其看做是一個關係抽出任務, 不如看作是很多任務的結合體, 這篇論文是真的複雜, 工作量感覺是一般論文的幾倍. 但是不知道效果怎麼樣, 如果只想看思想, 可以忽略各小節中的細節.

這篇文章中出現的數學公式和符號由於太多沒有進行轉換, 有興趣的可以賦值下面鏈接中的內容到自己的電腦上,用markdown編輯軟體查看. 想直接要pdf的留言即可.

raw.githubusercontent.com

1. Introduction

1.1 出發點

傳統方法 : 大量的人工標註語料庫 和 incremental pipeline.

incremental pipeline : 指的是引入很多工具, 比如說實體識別, 句法標註等等. 這些含有誤差的工具管道式連接在一起, 誤差也逐漸放大.

這裡提出的方案是 : 使用DS獲取的數據聯合的抽出entities and relations, 這裡就避免了實體識別工具等等帶來的誤差累加. 也就是說, 相比於其他的模型(例如PCNN), 這裡的優點在於一起抽出實體和關係, 利用了他們之間的約束.

這個任務的名字叫做: joint extraction of typed entities and relations with distant supervision.

那如果這樣說, 現在的實體識別豈不是都不能用在下流任務中了? 都聯合抽出就好了, 要什麼有誤差的工具? 這個地方有點無法理解. 不知道是不是多次一舉.

1.2 domain-independent

(個人猜想)文中一直強調這是一個 domain-independent 的方法, 應該是說這個模型適用於各種各樣的情況, 不會局限於某種特殊的領域的語料.

1.3 CoType 演算法步驟

提前提醒, 這個模型的結構特別複雜, 一開始看這裡根本就不看不懂, 不要灰心, 接著看就好了.

  • 使用一個數據驅動文本分割演算法去抽取出 entity mentions. 這裡的數據驅動文本分割演算法是指一類演算法, 比如形態素分析演算法也屬於這一類演算法.
  • 利用將文本中的檢測出來的實體, 再加上知識圖譜的信息, 外部知識庫的信息, 將一個句子可能呈現的實體和關係的組合狀態列舉出來.(詳見2.2)
  • 聯合地對 entity mentions , relation mentions, text features, type labels

    進行了向量化, 即賦予了其向量. 並且將其分別投射進了兩個低維空間, 分別是entity mention的相關空間和relation

    mentions的相關空間. (詳見2.3)
  • 然後用這些向量去估計 test (unlinkable) mention 的

    type,關於unlinkable的說明在3.2.2中解釋. 這一步就是說, 利用在語料庫中訓練得到的兩個低維空間,

    可以對一個新的句子進行分析, 得到他的 Entity type 和 Relation type. 詳見2.1節.

1.4 學習向量的方法

公式化一個優化問題, 這個問題的輸入為語料庫和KB. 求解優化問題後得到上面的向量.

具體的話,

  1. 採用了一個部分標註的損失函數(partial-label loss function)迎來應對有誤差的標註數據. (顧名思義, 部分標註就是從標註數據中挑出一個使用來進行優化.)
  2. 並且, 使用了一個 object "translation" function 來使得兩個低位空間中的向量進行

    cross-constraint(相互約束), 進而得到更好的效果. 這裡的相互約束的 motivation 是, 在上面的兩個低維空間中,

    Entity type 和Relation type 分屬於兩個空間, 但是兩者之間也是應該存在一定的約束性的,

    因此需要兩個空間進行交互.具體見下面的分析.

1.5 一些其他的補充

額外知識, 不看也行

  • Weak supervision : 指的是利用一部分高質量的標註數據作為引子, 在此基礎上訓練出一定質量的模型後, 引進一些預測效果很高的數據到數據集中, 擴充訓練集數量.
  • Distant supervision :

    之前我的理解 : 將KB中擁有關係的entity作為索引, 在語料庫中搜索. 將同時出現兩個擁有entity的句子抽出, 假設這個句子含有這兩個entity的關係信息. 將這樣的句子加上關係標籤, 加入訓練集.

    但是在這個任務中, 情況有所改變, 像Obama這樣的 entity mentions 在KB中可能對應著多重Entity type, 因此需要:

    • 先識別出語料庫中的 entity mentions.
    • 將可能的 Entity type 映射給句子中間兩個 entity mentions.
    • 找到這些查看這兩個entity mentions可能的 Entity type的組合.

2. 模型框架和問題設定

2.1 概念和Notation

1) 概念的定義

Sentence instance ($s$) : 指數據中某個含有兩個entity mentions的句子.

  • Entity 相關

    $m$ : Entity mentions ,具體指的是數據集中的代表實體的字元串, 是一種具體的數據."奧巴馬"這三個字就是一個 Entity mentions

    $e$ : Entity instance ,指的是, 知識庫中的實體, 是一個概念 "奧巴馬"這三個字表達的概念是一個實體,.

    $mathcal{y}$ : Entity type , 這裡對應的是KB(knowledge base)中的概念, 是抽象的符號. 例如, "奧巴馬"可能對應的是KB中,人的概念. 也可能是總統的概念. 比如說, "奧巴馬是一個person" 這句話中, "奧巴馬"代表的就是一個entity instance, person就是一個Entity type.

    ?
  • Relation相關

    $z=(m_1,m_2,s)$ : Relation mention 其中 s 是句子, 代表的是數據集中的代表關係的字元串, 這裡就比較特殊一點, 因為使用字元串去表示關係, 而關係是用句子表達的, 那麼這裡的 relation mention 就是包含兩個entity mentions的句子.

    $r(e_1,e_2,...,e_n)$ : Relation instance : 注意這裡是有具體的e作為參數的, e不同代表不一樣的Relation.

    $r$ : Relation type , 也是KB中的概念, 相當於謂詞的感覺, 例如, "出生於"就可以是一種關係. 和參數無關.
  • Target Types相關

    $y$ : Entity type, 上面講過了.

    $r$ : Relation type , 上面講過了.

    $mathcal{Y}$ : Entity type 的外部類型知識庫, 原名叫做Target Types hierarchy Tree, 這個知識庫里的基本單位是 Entity type, 並且是有上下義的樹狀結構.如下圖所示:

我們最後要預測的就是一個 Entity Mentions 在 其中的路徑, 即這個Entity Mentions的真實 Entity Type. 一個Entity Mentions可能有多個Entity Type. 如下圖的藍色區域所示:

$mathcal{R}$ : Relation type 的外部關係類型庫. 如下圖:

  • 知識圖譜相關

    $Psi$ : 知識圖譜

    $mathcal{E}_{Psi}$ : Set of entities instances, 知識圖譜中所有 entity instances 的集合.

    $mathcal{I}Psi={r(e_1,e_2}subset mathcal{R}{Psi} imes mathcal{E}{Psi} imesmathcal{E}{Psi}$ : Set of Relation instances, 知識圖譜中所有 relation Instance的集合.

    $mathcal{T}Psi={(e,y)}subset mathcal{E}{Psi} imesmathcal{Y}_{Psi}$ : Set of entity-type facts, 知識圖譜中所有的實體和這個實體的類型組成的對的集合. 例如, (奧巴馬,person), (奧巴馬,president),(奧巴馬,father) 都應該是其中的成員.

    $mathcal{Y}{Psi}$ : 知識圖譜中的實體類型庫, $mathcal{Y}in mathcal{Y}{Psi}$

    $mathcal{R}{Psi}$ : 知識圖譜中的關係類型庫, $mathcal{R}in mathcal{R}{Psi}$
  • 語料庫相關

    $mathcal{D}$ : POS-tagged 語料庫

    $mathcal{M}={m_i}_{i=1}^N$ : Set of entity mentions , 代表從語料庫 $mathcal{D}$ 抽出的所有的 entity mentions 的集合.

    如圖所示:

2) 概念之間的對應關係

對於兩個Entity mentions而言, 比如說 "奧巴馬" 和 "美國".

在不同的Sentence instance中, 其Entity type 可能是不同的, 在有的句子中, 奧巴馬可能是作為總統出現的, 而在有的句子中, 奧巴馬可能是作為父親出現的.

而不同的Sentence instance, 這兩個 Entity mentions之間的關係也可能是不同的, 比如下圖的S1和S3就分別代表了 "Born_in" 和 "President_of".

因此在一個Sentence instance中, 一個Entity mention對應著一個可能的Entity type的集合. 而這個Sentence instance對應了一個可能的Relation type的集合.

3) 具體的例子

Type 在數據集中並沒有其位置, 因為它是一種用來組織認知的概念; 而mention就是單純的指概念(Type) 在實際數據中的instanse. 有點像類和實例的關係.具體見下圖:

2.2 從語料庫到知識圖譜的映射

映射是指從語料庫到知識圖譜的映射.經過了兩步.

2.2.1 從mentions到instance

由於語料庫非常巨大, 知識圖譜無法涵蓋所, 因此並不是所有在語料庫中出現的 entity mention 都可以 映射到 entity instance $mathcal{E}_{Psi}$. 即 $m o e$

$L$ : 可以映射過去的 entity mentions 的 index.

$mathcal{M}_L$ : linkable entity mentions , 可以映射過去的 entity mentions. 一般, $mathcal{M}_L$ 只佔不到全部的一半.

unlinkable entity mentions : 不可以映射過去的 entity mentions

而 relation instance的映射也是伴隨著這個發生的 $z$:

$z_i$ : z中的 $m_1,m_2$ 都可以映射到 $e_1,e_2$ 的情況下的 $z=(m_1,m_2,s)$.

$mathcal{R}_i?$ : 映射到的 $e_1,e_2?$ 之間可能有的關係. $mathcal{R}i={r|r(e_1,e_2)in mathcal{R}{Psi}}?$

2.2.2 從entity instance 到 Entity type

$mathcal{Y}{i,x}$ : $mathcal{Y}{i,x}={y|(e_x,y)inmathcal{Y}_{Psi}}$, entity instance $e_x$ 可能的 Entity type 的集合.

2.2.3 信息匯總

到這裡,圖示如下:

  • 整體的一些符號

    $mathcal{Z}L={z_i}{i=1}^{N_L}$ : 代表的是, 可以成功從entity mentions到entity instance 再到Entity type的 relation mentions 的集合.

    $mathcal{D}_L$ : $mathcal{D}L={(z_i,mathcal{R}i,mathcal{Y}{i,1},mathcal{Y}{i,2}}$

    在整個映射中的所有信息的集合, 用於後續的使用方便.這裡的這個信息量是非常大的, 第一個是可以成功映射的 relation

    mentions的集合, 第二個是成功映射後兩個實體之間可能有的關係, 後兩個是兩個entity instance可能屬於的Entity

    type.圖示如下:

2.3 結合兩者信息映射文本到特徵空間

1) 名詞解釋

文中說道, jointly embeds entity mentions, relation mentions, text features and type labels into two low-dimensional spaces. 這裡具體的意思如下:

entity mentions, relation mentions : 這個上面已經解釋過了就不重複了.

text feature : 是指在兩個entity mentions附近的辭彙.

type label : 是指Type of XX, 這裡的XX是指在不同的空間內是不同的. 例如, 在 Relation mention Embedding Space中, type label就是指的 Relation type; 反之亦此.

2) 對應關係

具體見下圖:

從這個裡面可以看出, 在每個空間內各有三種類型的數據.

Relation mention Embedding Space : 有

  • Relation type
  • Text feature
  • Relation mention embedding

Entity mention Embedding Space : 有

  • Entity type
  • Text feature
  • Entity mention embedding

3) 映射的規則

很簡單的思想, 語義相近的向量離得近.

2.4 問題設定

上面我們介紹了 $mathcal{Z}L={z_i}{i=1}^{N_L}$, 是可以成功將自身的實體與知識圖譜知識庫結合的 relation mentions 的集合(其實就是句子了, 因為relation mentions 包含句子, $z=(m_1,m_2,s)$)

但是還有其他的部分, 我們把語料庫 $mathcal{D}$ 中所有的 $mathcal{Z}$ 分為三部分:

  • linkable relation mentions : $mathcal{Z}_L$
  • unlinkable relation mentions
  • false relation mention (i.e., no target relation expressed between).

其中把後兩者的集合稱為 : $mathcal{Z}_U$ (不清楚2和3的區別)

我們把 $mathcal{Z}_U$ 當做unlabeled relation mentions, 這個就是我們的test集.

任務就是

  • 預測 $mathcal{Z}_U$ 中的 Relation type
  • $mathcal{Z}_U$ 中所有 z 中的 entity mentions 的 Entity type.

Non-goals

這裡作者提出了兩個本文不會涉及到內容:

  • 外部entity linking system的錯誤, 錯誤的識別映射之後也是錯誤的.但是這裡不著手去解決.
  • 假設 外部實體知識庫, 即有上下義的知識庫是給出的, 不需要自己去設計.

3. CoType Framework

3.1 問題與模型

有兩個基本問題:

  • Type prediction task : 從entity mentions 和 relation mentions 到 Entity Type 和Relation Type 的映射是有噪音的, 我們需要從中選擇正確的一組.
  • Relational learning task: Entity Mentions 和 entity 相關句子描述上(即文本特徵)有相關關係.

這兩個問題的解決方案為:

  • Type prediction task : weakly-supervised learning, 找到 mention 和 tyoe 之間的映射關係和映射條件.
  • Relational learning task : 找到 Relation Mentions 和 Entity Mentions Arguement 之間的關係. 也就是根據句子的內容去預測這個句子的 Relation Type.

整個模型的框架是:

  1. 語料庫 $mathcal{D}$ 中 $ o$ Entity Mentions $mathcal{M}$.

    主要內容見3.2
  2. Entity Mentions $mathcal{M}$ $ o$ Relation Mentions $mathcal{Z}$ $large{+}$ 每個$z$中的text feature $large{+}$ Entity Mentions Argument

    主要內容見3.2

    再結合知識圖譜的信息利用遠程監督去生成 $mathcal{D}_L$, $mathcal{D}L={(z_i,mathcal{R}i,mathcal{Y}{i,1},mathcal{Y}{i,2}}$ 見2.2.3節

    1. 其中, $mathcal{R}_i$ 是 $mathcal{R}i={r|r(e_1,e_2)in mathcal{R}{Psi}}$ , 講的是將 m 映射到 e 之後的, 組成的對. 這裡首相需要將m 映射到 e, 這裡只需要進行字元匹配即可. 其中, e 是 Entity Instance.
    2. $mathcal{Y}{i,x}={y|(e_x,y)inmathcal{Y}{Psi}}$ 是, 實體與實體類型的可能的組合. 這裡就需要用到知識圖譜中關於類型的信息, 即實體類型庫 $mathcal{Y}_{Psi}$.
  1. 結合上面的信息, 映射文本到特徵空間, 這裡做的就是2.3介紹的工作. 具體使用的輸入是什麼見3.3.

    . 2中得到的 $mathcal{D}_L$ $large{+}$ 3中得到的各種embedding $ o$ 對$mathcal{Z}_U$所有Relation Mentions的類型預測 $r^$ (根據外部關係類型庫) $large{+}$ $mathcal{Z}_U$所有Entity Mentions的類型預測(即找到每個Entity Mentions所屬的外部類型知識庫的路徑 $mathcal{Y}^$)

3.2 Candidate Generation

重複一下問題:

  1. 語料庫 $mathcal{D}$ 中$ o$ Entity Mentions $mathcal{M}$ 和

    . Entity Mentions $mathcal{M}$ $ o$ Relation Mentions $mathcal{Z}$ $large{+}$ 每個$z$中的text feature $large{+}$ Entity Mentions Argument

將這兩個問題分為三個:

  1. Entity Mention Detection
  2. Relation Mention Generation
  3. Text Feature Extraction

3.2.1 Entity Mention Detection

這裡可以看做是一個 NER.

本文拒絕使用單純結合distant supervision的序列標註模型(因為distant supervision的數據很少) ,

而設計了一個 Distantly-supervised text segmentation algorithm for

domain-agnostic entity detection. 也就是

適用於任何領域文本的遠距離監督文本分割演算法去解決實體檢測任務.(名字好長)

segment quality : 評價一個分割的辭彙段是否像是一個實體的指標

主要思想是 : $評估(segment quality)$ = $mathcal{F}( 評估(phrase quality), 評估(POS pattern quality) )$

這個方法中使用了三種信息:

  1. 語料庫的信息
  2. 句子層級的辭彙信息
  3. 語法的限制(比如說POS-tagging)

流程如下:

  1. 從POS付き的語料庫中挖掘出常出現的辭彙組合模式POS組合模式
  2. 利用從語料庫中提取的特徵從句子中提取的特徵去訓練兩個隨機森林, 分別計算出 $評估(phrase quality)$ 和 $評估(POS pattern quality)$

    舉個例子, 下面就是 $評估(POS pattern quality)$ 大概感覺:

  1. 計算並最優化 $評估(segment quality)$

    計算:

    首先這個評估是基於整個語料庫 $mathcal{D}$ 的, 設其中的句子(或者文檔)為 d, 設其分割形式為 $S_d$, 那麼我們要最大化兩種的聯合概率, 即 $sum_d^Dlog p(S_d,d)$ .其公式為:

為了方便說明, 假設一個句子為 ZHAO is 21 years old

上面的式子右邊出現的概率函數中, $c^{(d)}$ 是指一個分段片段, 那麼 ZHAO 就是一個片段. $b_t$ 為文本中的辭彙的index. 那麼, $c^{(d)}$ 就是在句子中, 起始索引為 $b_t^{(d)}$ , 結束於 $b_{t+1}^{(d)}$ 的一個片段.

右式的具體公式為:

這個式子中, $Q(c)$ 利用到了 2. 中計算的 $評估(phrase quality), 評估(POS pattern quality)$.

優化:

使用Viterbi演算法去最大化上面的概率.

  1. 一開始使用的是從KB中distant supervision的可靠數據去進行上面的的計算, 通過2和3後, 對新的數據進行預測, 把高概率的數據加入訓練數據集後, 重複上面的運算.

下面是結果:

3.2.2 Relation Mention Generation

這個部分對應的是2.2節.

1) 生成 z

這裡的思想比較簡單, 從3.2.1中生成的 Entity Mentions 中, 對照KB中的辭彙. 生成 Relation Mentions : $z=(m_1,m_2,s)$

但是, 這裡由於關係是有方向的, 即 KB 是有向圖, 所以一個句子可以構建兩個 Relation Mentions.

$z=(m_a,m_b,s)$ 和 $z=(m_b,m_a,s)$. 對語料庫中的每一個句子進行這裡的處理, 得到了所有的 z 的集合

$mathcal{Z}$

2) 按照是否可映射分割 $mathcal{Z}$

這裡就可以將 $mathcal{Z}$ 分為三部分:

  1. $mathcal{Z}_L$ : linkable Relation Mentions , 這種Relation Mentions滿足兩個條件 :

  • 這個裡面的 $m_a,m_b$ 是可以映射到KB中的node($e_a,e_b$)的, 即 其中的Entity Mentions都屬於 $mathcal{M}_L$ (定義看上面). 即, $m_a,m_bin mathcal{M}_L$
  • 並且他們之間有連接. 也就是映射到的兩個node之間是有edge的.

這部分數據是 positive samples, 可以用來建模 Type label 的關係.

  1. unlinkable entity mentions , 這種Relation Mentions滿足兩個條件 :

  • 這個裡面的 $m_a,m_b$ 是可以映射到KB中的node($e_a,e_b$)的. 即, $m_a,m_bin mathcal{M}_L$
  • 但是在KB中這兩個node ($e_a,e_b$) 之間沒有edge.

這部分數據可以用來建模 None relation label 的關係.

  1. false relation mention : 即, $m_a
    otin mathcal{M}_L || m_b
    otin mathcal{M}_L$

    這部分數據可以用來建模 None entity label 的關係.

後兩部分作為 negative examples 存在.

3) 構建 $mathcal{D}_L$

先回顧 $mathcal{D}_L$ 的內容 : $mathcal{D}_L$ : $mathcal{D}L={(z_i,mathcal{R}i,mathcal{Y}{i,1},mathcal{Y}{i,2}}$. 這個四元組中, 後面的三個都可以結合KB(只是圖譜)的信息和 $z_i$ 的信息來實現生成. 具體的看上面的定義.

關於 $mathcal{D}_L$ 使用的 $z_i$ 的範圍的定義, 這個地方和上面的地方有一些出入 :

  • 這裡說的是不論 $z_i$ 中的 $m_a,m_b$ 是否可以被映射到KB中, 這裡的都可以將其作為 $mathcal{D}_L$ 的一部分.
  • 而上面說的是 只有可以被映射過去的部分才可以, 也就是說這裡的 negative example 不可以.

3.2.2.3 Text Feature Extraction

這裡要做的事情很容易明白, 如下圖所示:

需要注意這個裡面用了詞性信息

然而, 符號難以理解.

這裡對於一個句子有兩種特徵,

  • $mathcal{F}_z$ 這個句子的專有特徵
  • $mathcal{F}_m$ 這個句子中的Entity Mentions 的全局特徵. 也就是說對於擁有相同的Entity Mentions的不同句子, 這個部分是一樣的.

那麼一個句子的特徵就是 $(mathcal{F}_z,mathcal{F}_m)$.

3.2.2.4 圖示

一個 $mathcal{D}_L$ 的圖示:

3.3 Joint Entity and Relation Embedding

這個部分對應的是第2.3節.

首先這個投射的方法很簡單, 就是讓同一個句子中的 Entity Mentions, Relation Mentions, Relation Type, Entity Type, Text features 的向量在空間上也距離的近.

但是面臨著兩個問題:

  1. 如上面的圖所示, 對於一個句子而言, 其對應的 $mathcal{R}_i$ 有可能含有多種 r, 這樣就會出現很多錯誤的 Relation Type, 會影響整體的向量分配.
  2. 一個特徵向量空間無法捕捉到 Entity Type 和 Relation Type 的不同. 原因如下:

    因為我們進行編碼的依據是co-occurrence次數多的辭彙可以擁有相近的向量, 但是這對於 Relation Mentions

    的向量和 Entity Mentions的向量來說並不是好事, 因為, 即使他們兩個擁有很高的 co-occurrence次數,

    他們之間也沒有相關性. 只是單純的 Relation Mentions 包括 Entity Mentions而已.

    使用這樣的方法會導致兩者向量相近, 這樣的後果是:

    Entity Mentions 的向量和 Entity Type 的向量相近

    Relation Mentions 的向量和 Relation Type 的向量相近

    這樣的話, Entity Type 的向量就會和 Relation Type 的向量相近, 而兩者是沒有必然聯繫的.

    因此這裡使用了兩個空間, 而不是使用一個空間.

我們的理想向量空間的狀態如下, 注意兩個空間使用的text feature也是不同的:

下面分別針對兩個空間的embedding來進行說明.

3.3.1 Modeling Types of Relation Mentions

這個裡面我們要編碼的部分有三個, Relation Mentions, Relation Type 和 體現Relation的text features. 這裡對三者的向量進行約束的方法是, 兩兩分開進行約束.

3.3.1.1 Relation Mentions 和 Text features 的約束

$z_i$ 是 Relation Mentions, $f_i$ 是 Text features.

$w_{ij}$ 是 Relation Mentions 和 Text features co-occurrence 的頻度.

這個式子其實比較好理解的, 最小化負的共現概率就是最大化共現概率.

其中重要的是 $p(f_i|z_i)$ 的計算方法, 這裡就用到了兩者(Entity Mentions和Text features)的向量.如下:

注意這裡的分母是對所有的特徵進行了計算, 然後為了簡便計算用了負採樣:

最大化這個函數之後, 就可以使得擁有相同特徵的Entity Mentions具有相近的向量, 也可以使得語義相近的Entity Mentions和Text features擁有相近的向量.

3.3.1.2 Relation Mentions 和 Relation Type 的約束

我們知道, 在 $mathcal{D}_L$ 中的 $mathcal{R}_i$ 其實是包含了Entity Mentions對應的Entity Instance之間的所有可能的Relation Type. 即: $mathcal{R}i={r|r(e_1,e_2)in mathcal{R}{Psi}}$

但是我們可以用其他完全無關的 r 來和這裡的r進行對比, 再利用大量的數據, 就可以獲得好的效果.

公式為:

其中, 第二個max就是從 非$mathcal{R}_i$ 中進行的採樣, 就是利用了負採樣中的絕對不可能性, 再加上大數據成功學得向量. 其中, $phi(z_i,r_k)=mathbb{z}_i^Tmathbb{r}_k$.

並且要注意, 這裡是對每個句子進行的計算, 因此我們還需要累加所有 $mathcal{M}_L$ 中的句子.

3.3.1.3 兩者的結合

後面的是正則項, 但是奇怪為什麼沒有Text features的正則約束.

3.3.2 Modeling Types of Entity Mentions

這裡不贅述, 用相同的方法去計算:

3.3.3 Modeling Entity-Relation Interactions

這一個建模的是 :

上面雖然表達了各種向量的相近關係, 但是忽略了一個很重要的關係, 那就是 距離函數, 即:

$Vector(m1) + Vector(z) = Vector(m2)$

由此得來損失函數:

其中,

其中第二個 $z_v$ 是負採樣.

3.3.4 聯合優化

優化目標是 :

最重要的優化方法在下一節說

3.4 Model Learning and Type Inference

3.4.1 優化方法的簡介

這裡使用的是, 隨機子梯度下降法, 之所以稱為子梯度是因為, 這裡的參數是所有的向量, 而要採樣隨機法去進行學習的話, 就每次只能對一部分參數(即向量)進行更新, 因此這裡叫做 子梯度下降法.

然後, 文獻46保證了這個學習過程會收斂.

3.4.2 Type Inference

對於Relation Type和Entity Type, 採用了相似的策略:

  • 先根據 z 的Text features, 確定索引向量, 即:

    對於Entity Mentions :

對於Relation Mentions :

  • 其次通過在外部類型庫中利用上面的索引向量作為輸入, 利用cosine函數查找最近的值.

    對於Entity Mentions : 使用的外部實體類型知識庫, 由於是樹狀結構所以需要使用遞歸查找.

    對於Relation Mentions : 遍歷查找即可.

4. EXPERIMENTS

文章在三個實驗上進行了測試:

  • Entity Recognition and Typing

    效果如下:

  • Relation Classification

    這個任務利用向量空間的向量對一個具體的 Relation Mention 預測其真實關係.

    效果如下:

  • Relation Extraction

    其實我有點不明白這裡和上面的分類有什麼區別, 知道的還望告知一下:

    效果如下:


推薦閱讀:

人工智慧時代,學編程勢在必行
關於強化學習的一二三
1.4 機器學習中的一些基本概念
如何計算卷積層中對應參數個數?

TAG:自然語言處理 | 機器學習 |