TransNet: Translation-Based Network Representation Learning for SocialRelation Extraction 閱讀筆記

轉載請註明出處:每周一篇機器學習論文筆記

論文來源:ijcai 2017

論文鏈接:TransNet: Translation-Based Network Representation Learning for Social Relation Extraction

論文原作者:Cunchao Tu, Zhengyan Zhang, Zhiyuan Liu, Maosong Sun;(侵刪)

以下內容均為個人理解,有誤解之處還請各位指出,謝謝大家!

Abstract

眾所周知,網路包含的節點與邊,節點通常代表物體,邊則代表關係,既然代表關係,那麼也就是說裡面應該含有豐富的情感,語義信息。然而,現有的大多網路特徵學習(Network Represent Learning, NRL)方法中, 往往都是側重於學習節點的特徵,而邊則僅僅通過二進位數或者一個權重值來表示, 導致裡面蘊含的特徵難以被表達出來。因此,為了能夠對網路中的邊進行特徵學習,作者提出了一種能夠學習交互關係的網路特徵學習模型,稱為基於轉移的網路特徵學習(TransNet此外,為了衡量該模型的好壞,作者另外設計了一個任務,稱為社交關係提取(Social Relation Extraction,SRE)。基於這個任務,作者在三個ArnetMiner數據集上進行了實驗,實驗效果證明了該模型的有效性。


Introduction

這部分首先介紹了現有NRL方法所面臨的問題:

    1. 僅僅用一個標量來代表邊的特徵,顯然無法表達出邊裡面蘊含的語義信息。
    2. 無法在學習節點特徵的同時學習邊的交互特徵。

針對上述兩個問題,作者提出了一個能夠提取交互特徵的模型Transnet,該模型的主要思路是將節點與邊映射到同一個隱式空間,然後去構建它們之間的聯繫。

然後,由於現在的網路表達學習評測任務,諸如分類,聚類,鏈接預測,都是用於評測點特徵的好壞程度的,因此對於衡量邊特徵的好壞程度,作者提出了一個新的評測任務,稱為社交關係提取(Social Relation Extraction, SRE)

那麼SRE是一個什麼樣的任務呢?

SRE是知識圖譜中的關係提取(Relation Extraction, RE)任務的一種延伸,即通過已知關係類標的邊,來預測沒有關係類標的邊的類標。但是不同點在於,在知識圖譜中,關係的種類已經提前設置好了,因此可以直接通過詞袋模型來描述一條邊。而在社交網路中,社交關係並沒有這樣的提前設置,作者為了解決這個問題,選擇人為地提取類標集。作者認為,社交網路中的一部分邊會有其對應的交互內容,而內容中的關鍵詞能夠很好的表示一個交互關係的語義信息,因此在SRE中,一條邊的特徵是通過這樣兩個步驟得到的:

  1. 將所有邊的交互內容中的關鍵詞都提取出來,然後將這種關鍵詞合成一個關鍵詞集
  2. 利用關鍵詞集,通過詞袋模型構建每一條邊的向量

在構建好 有交互內容的邊 的詞袋向量之後,SRE的目的是為了預測沒有關係類標(即一開始沒有交互內容)的邊的類標。


TransNet

現在已知某些邊的向量可以通過詞袋模型描述, 但是如何利用這些詞袋向量訓練一個模型,使其具有預測未知關係的邊的類標向量的能力呢?這個問題看起來有點苛刻,因為並沒有什麼監督信息進行學習,而是要求用無監督方法來訓練處這種預測能力。

但是作者非常巧妙地利用了點和邊之間固有的關係,設計了一個轉換模型,整體模型如下圖所示:

上圖的模型可以分為三個步驟:

  1. 對於每一條邊 mathbf{e} 的兩個端點,初始化兩個向量 mathbf{u}, mathbf{v} in mathbf{R}^k 來代表它們
  2. 將類標向量 mathbf{e} 作為深度自編碼器的輸入,通過encode過程得到特徵向量 mathbf{l}
  3. 利用點和邊之間的固有關係,得到轉化關係: mathbf{u} + mathbf{l} approx mathbf{v}
  4. 利用步驟3中的關係,利用hinge-loss描述這種轉化誤差: mathcal{L_{trans}}=max{(gamma + d(mathbf{u}+mathbf{l},mathbf{v}) -d(hat{mathbf{u}}+hat{mathbf{l}},hat{mathbf{v}}),0)} 。其中,(hat{mathbf{u}},hat{mathbf{v}},hat{mathbf{l}}) 的三個元素都是隨機採樣的到的,之間很大概率沒有關係,從而作為負樣本,而 gamma>0 則是一個超參數,目的是為了能夠使距離差足夠大。
  5. 結合步驟4中的誤差與自編碼器的重構誤差,加上正則化項,得到最終誤差:

mathcal{L}=mathcal{L_{trans}}+alpha(mathcal{L_{ae}(l)}+mathcal{L_{ae}(hat{l})})+etamathcal{L_{reg}}

其中 mathcal{L}_{ae}(l)mathcal{L}_{ae}(hat{l}) 分別代表正樣本與負樣本的重構誤差, mathcal{L}_{ae}(l)=Vert(l-l_o)odot IVertl_o 代表自編碼器解碼之後的輸出, I 代表指示向量,當輸入的向量對應位置有值的時候 I=1 ,否則 I=0 。(在這裡, I 其實和輸入的詞袋向量是一樣的),最後, 正則化項mathcal{L}_{reg}=sum_{i=1}^{k}(Vert W^{(i)}Vert_F^2+Vert b^{(i)}Vert)

通過優化上述公式,就能完成對自編碼器的參數的更新,同時也能訓練出各個節點的特徵。

那麼即便得到了這些特徵,又如何預測出未知關係的邊的類標向量呢?

在預測的時候,作者再一次利用了點與邊的固有關係。

由於訓練的時候,就是通過 mathbf{u}+mathbf{l}approx mathbf{v} 這種方式得到的節點特徵,因此反過來,在預測位置關係的邊特徵的時候,可以通過該邊對應端點的特徵相減得到 mathbf{l}=mathbf{u}-mathbf{v} ,得到該特徵之後,利用自編碼器將其解碼出來,得到的就是針對該邊的預測類標概率向量。


實驗

實驗數據是ArnetMiner數據集,其中包含1,712,433個作者, 2,092,356篇論文,以及4, 258,615個共同作者關係。由於數據集過大,作者根據小,中,大,三種設置,採取了三種數據集。實驗中節點代表作者,邊代表共同發表的關係。

其中類標是通過以下步驟獲取的:

  1. 在對應作者的主頁找到其對應的關鍵詞,如推薦系統,計算機視覺,社區發現等標籤,歸納為一個標籤集
  2. 在共同發表的論文的摘要中找到標籤集中出現的單詞,作為該邊的類標

然後將各個數據集按一定比例劃分訓練集與測試集,實驗設置與推薦系統中的Top-N推薦非常相似,通過對概率向量中的概率進行倒敘排序,將前N個關係標籤作為該邊的標籤。評測指標是 hits@N ,該指標的計算分為三步:

  1. 計算預測的前N個類標與實際類標的交集,進而算出交集長度
  2. tot\_hits = sum_{測試集中的邊}frac{交集長度}{實際類標總數}
  3. hits@N=frac{tot\_hits}{測試集邊數}

(公式比較魔性,實在不知道用什麼方法更好描述)

最後的實驗結果:

個人觀點:

這個模型本身並不複雜,但是不得不說設計的非常巧妙,通過利用點與邊的固有關係,成功提取出了交互特徵,並且得到了能夠有預測效果的節點特徵。

但是,在讀論文的時候始終有個問題,如果有一條未知類標的邊的兩個端點 都沒與已知類標的邊相連,那如何得到這兩個點的特徵呢?


推薦閱讀:

熟人社交APP派派更新新版本,都有哪些好玩的功能?
人人羅胖的跨年演講,你怎麼看?
互聯網上的強關係、弱關係
好姑涼,不將就,不回頭。
為什麼你的善良,有時得不到別人的善良

TAG:社交網路 | 深度學習DeepLearning | 推薦系統 |