【論文筆記】Open Relation Extraction: Relational Knowledge Transfer

Open Relation Extraction: Relational Knowledge Transfer from Supervised Data to Unsupervised Data

Abstract

  • 多數的OpenRE問題都限定在了unsupervised的模式中,沒有利用Knowledge Base中的知識和標註數據。
  • 所以提出RSN,學習預定義relation中的相似metric,並遷移至新的關係中進行識別。(學習relation中的共性,通過共性來判斷兩個entity是否存在某種relation的關係。)

Introduction

  • relation extraction專注於抽取出實體之間的關係,其實就是relation classification。現在越來越多的方法使用訓練數據集(因爲DL的廣泛使用和進步)。
  • 也有非常多的人研究如何使用更少的標註數據去進行RE,例如boot strapping 類型的semi-supervised learning. distant supervision等等。但這些都只能抽取預定義的relation
  • OpenRE嘗試在開放領域的文本中抽取未被預定義的relation。Banko(2008 首次提出open information extraction) 直接將句子中出現的短語作爲關係。e.g. received
  • 也有一些人嘗試用 unsupervised方法,聚類來解決問題,然而大多數的聚類都是unsupervised。很難篩選出中有用的relation和濾去不相關的relation
  • 預定義的relation和全新的relation之間存在着一定的gap,因此我們提出了RSN網絡,從預定義的類別和標註數據中抽取出relation指標,通過這個可遷移的relation metric來度量兩個entity之間是否存在relation(這是這篇文章最核心的觀點,兩個domain之間的relation存在gap,需要transfer的去measure
  • 此外作者的RSN也可以用於semi-supervised 和distantly-supervised training paradigm.

在list自己的contribution的時候,作者也提到了自己是所知的第一個提出knowledge transfer的概念的

Related Work

  • OpenRE 可以被分爲幾個簡單的類別:tagging-based & cluster-based,但是tagging-based經常會面對提取出過於細粒度的relation(relation是有層級的)。cluster-based往往需要非常多的feature,語義模式(e.g. noun-verb-noun)等信息。

few shot learning中的learning image metric啓發了我們使用siamese network 去學習relation中的metric

Methodology

主要是兩個component:

  • relation similarity calculation module: RSN 判斷兩個句子是否是同一類的relation
  • relation similarity clustering module:hierarchical agglomerative clustering (HAC) and Louvain clustering algorithms. 聚類出target relation.

Relational Siamese Network (RSN)

  • 每一個word representation 有word embedding和隨機初始化的position embedding2014 Zeng
    CNN作爲sentence encoder
    這邊的Siamese network share同樣的parameter

v=CNN(s)(1)v = CNN(s) \tag{1}
其中 ss 是sentence, vv是通過CNN encoder之後,得到的relation sentence representation

因此,度量兩個relation sentence的distance:
vd=vlvr(2)v_{d} = |v_{l} - v_{r}| \tag{2}
再將計算所得的distance vdv_{d}
通過一個簡單的linear並且讓sigmoid歸一化至[0, 1]區間,即可得到相似的probability pp
p=σ(kvd+b)(3)p = \sigma(\textbf{kv}_d+b) \tag{3}

Ll=EdlDl[qln(pθ(dl))+(1q)ln(1pθ(dl))](4)\mathcal{L_l} = \mathbb{E}_{d_l \sim D_l}[ qln(p_θ(d_l))+(1−q)ln(1−p_θ(d_l))] \tag{4}
其中θ\theta是所有可訓練的參數,dld_l對應一個屬於DlD_l數據集中的 data pair

使用的是cross entropy loss,即僅有0 1兩個label而已。非常簡單
Supervised RSN

Semi-supervised RSN

Weakly-supervised RSNs

unlabeled dataset爲DuD_u unlabeled data pair 爲dud_u
semi-supervised RSN沒有非常多的labeled data,需要使用大量的unlabeled data。所以一個比較好的決策是將所有在semantic space中的embedding儘可能的遠離decision boundary(0/1 決策邊界,是否屬於同一類relation? )
此處使用conditional entropy loss Grandvalet and Bengio, 2005 來解決問題,文中表達的意思爲: It’s safe to increase the margin of decision boundary.
直覺上說,在pp=0.5時,兩個sentence中,至少有一個接近decision boundary(其實我覺得這個直覺沒有那麼的strong…抽空和坐我後面的作者聊一下…)
草圖如下:

對於decision boundary 0.5的理解
如果兩個點reverse也一樣可以得出結論
因此接近decision boundary是非常不利於聚類或者使用RSN度量的。因此Loss修改爲:
Lu=EduDu[duln(pθ(du))+(1du)ln(1pθ(du))](5)\mathcal{L_u} = \mathbb{E}_{d_u \sim D_u}[ d_uln(p_θ(d_u))+(1−d_u)ln(1−p_θ(d_u))] \tag{5}
注意式4中的qq已經不見了,因爲此處使用的是unlabeled data

Virtual Adversarial Loss

由於神經網絡的超強擬合能力,使用了conditional entropy loss(式5) 也許會使網絡學習出一個非常複雜的超平面,導致所有的training data全部遠離decision boundary. 針對這個問題又使用了virtual adversarial lossMiyato et al., 2016,搜索每一個在超平面上的data point的neighbor points,並且使得sharp change不會發生(也就是超平面變化更爲平滑,否則一個離羣點或者一個離羣的pair就會導致RSN構成的超平面變化非常巨大)
使用 unlabled data訓練的Virtual adversarial loss爲 Lvu\mathcal{L}_{vu}
所以,semi-supervised learning RSN的L\mathcal{L}
Lall=Ll+λvLvl+λu(Lu+λvLvu)(6)\mathcal{L}_{all} = \mathcal{L}_l + \lambda_v\mathcal{L}_{vl}+\lambda_u(\mathcal{L}_{u}+\lambda_v\mathcal{L}_{vu}) \tag{6}
其中λv\lambda_vλu\lambda_u都是可調的超參數

Distantly-supervised RSN

Distantly-supervised RSN 可以從unlabeled data以及Distantly-supervised data中學習
具體來說,label爲:
Lall=Ll+λu(Lu+λvLvu)(7)\mathcal{L}_{all} = \mathcal{L}_l + \lambda_u(\mathcal{L}_{u}+\lambda_v\mathcal{L}_{vu}) \tag{7}
此處直接將auto-labeled data(也就是distant supervised data)當作labeled data來進行處理,移除adv loss的labeled data的原因是因爲會加重錯誤label的數據對模型的影響(很自然,會算兩遍,當然有問題)
作者認爲不需要其他去噪的方法因爲RSN本身就能夠tolerate這些噪音數據(wrong labeled data in distant supervision)

  • negative samples 纔是數據中的大部分內容,不會影響太多
  • 其次真正做new relation detect的時候,重點在與密集的cluster區域,那些噪音數據不會影響太多。

上述三類訓練RSN的方法適用於不同的場景,訓練出來的RSN一定會結合聚類方法來進行使用!

Open Relation Clustering

訓練出來的RSN會用於計算兩個包含relation的 sentence之間的similarity。

Hierarchical Agglomerative Clustering

HAC是一個自底向上的聚類方法,首先將每一個instance都作爲一類,通過計算距離來將instance合成一類。距離的計算方法是使用 complete-linkage criterion
然而HAC很難決定什麼時候停止聚類,一般是通過設置distance閾值,但是這個閾值也非常很確定。而且這個方法有很大的缺點是,只有可能存在了一些cluster之後,纔可以開始聚類。因此作者引入第二個聚類方法

Louvain

Louvain是基於圖的聚類方法,通常用於community detection。 此處作者使用如果兩個instance之間的similarity 爲0,那麼就代表這兩個instance之間有一個edge(我感覺是1才代表了有一條edge?需要去看一下Louvain的原論文,才應該有更確切的解釋)。通過構建graph來使用Louvain。此外Louvain也不需要有potential clusters之後纔可以去使用。直接使用即可

實驗證明了Louvain perform better than HAC

Experiments

實驗是在FewRel 和FewRel-distant上進行的,效果非常好

Future Work

  • 會嘗試使用其他的sentence encoder。
  • 以及思考relation中的層級關係
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章