情感預測SHINE: Signed Heterogeneous Information Network Embedding for Sentiment Link Prediction引介

論文:SHINE: Signed Heterogeneous Information Network Embedding for Sentiment Link Prediction 原文鏈接

發表會議: WSDM2018

論文方向:Network Embedding,Deep Learning,Sentiment Link Prediction

作者:Hongwei Wang, Fuzheng Zhang, Min Hou, Xing Xie, Minyi Guo, Qi Liu

單位:1.Shanghai Jiao Tong University 2.Microsoft Research Asia 3.University of Science and Technology of China

本文作者:陳俊華,來自中國人民大學大數據管理與分析方法研究北京市重點實驗室(BDAI)。學術型碩士研究生,研究方向為Network Embedding,Tag Recommendation等。

前言:本文所要解決的問題是挖掘用戶對於其他用戶的潛在情感傾向,這種潛在的情感傾向可能在該用戶自身所攜帶的文字信息中並沒有體現。而且在現在機器學習領域中,針對用戶的情感工作大多聚焦於用戶文本的情感分類。也就是根據用戶的文字敘述來對這段文字進行積極,中立,消極的情感判斷。這對於用戶的真實的情感挖掘,僅僅是冰山一角。人們經常關注的用戶,通過電子設備經常瀏覽的信息等等,無一不在體現著他們對於某一個人,某一個事件的情感。為此,該文提出的SHINE模型通過建立一個大型異構網路(Heterogeneous-Network),將用戶,屬性,情感注入其中,利用多層自動深度編碼器(multiple deep autoencoder,你可以先簡單的把它當作Deep Learning中的隱藏層,方便你進行之後的模型理解)將用戶映射到一個低維特徵空間(a low-dimension feature space )中,並且保留了異構網路的結構完整性。

一、寫作動機

在線社交網路的崛起我們有目共睹,如FaceBook,Twitter,微博等。在這些複雜且十分巨大的社交網路中,每個人能夠毫無保留的表達自己對於某一位名人,政客,政策等等的看法。你同時也可以通過轉發別人的表述來聲明自己與他有相同或不同的看法。這些文字構成了用戶之間一個巨大的情感網路。之前關於情感的工作大多關注於用戶所發推文的情感分類,顧名思義,這些工作必須依賴用戶所攜帶的文字信息,當用戶並沒有攜帶任何先前的內容信息時,它們是無法挖掘出該用戶潛在的情感傾向,這也就是眾所周知的冷啟動問題。這也是本文想要解決的問題,這個問題一旦解決,在個性化廣告推薦,新用戶推薦,公共輿情分析等問題上都會受益匪淺。同時,現在最新的Network Embedding大多僅在同質網路(Homogeneous Network)中表現優秀,而真實情感網路包含了許多不同實體,異構網路(Heterogeneous Network)的特殊性也限制了它們的發揮。

二、難點挑戰

2.1 在主流社會網路中,明確的情感傾嚮往往是缺乏的,因此需要去維護一個帶標籤的現實的異構情感網路(a labeled heterogeneous sentiment network);

2.2 情感的複雜性(complexity)以及情感鏈接的稀疏性(sparsity)使得沒有一個高效的演算法去實現這個理想的鏈接預測,現在的部分工作嘗試去解決這問題,但太過於依賴人工手動標註以至於根本無法實踐於現實網路。

三、數據集準備

該文情感原始數據來源於中國最受歡迎的在線社交網路之一---微博。抽取了2009.8.14-2014.5.23之間共約29.9億條微博推文。

3.1 情感網路(Sentiment Network)

利用Jieba分詞器將包含對名人有情感傾向的有用推文過濾出來。對這些推文進行情感抽取(詳細的情感抽取工作課參考原文3.2節Sentiment Extraction)。最終的數據集都是由形如 (a,b,s) 的有向邊構成。 a 表示發文用戶, b 表示名人, s 表示 a 對於 b 的情感傾向。 sinleft{ +1,0,-1
ight}+1 表示positive, -1 表示negative, 0(?) 表示未觀察到的情感傾向。

Fig.1 Sentiment Network

3.2 社會網路(Social Network)

該文收集了微博用戶的關注關係網路,由形如 (a,b) 的有向邊構成。 a 表示關注人, b 表示被關注人。

Fig.2 Social Network

3.3 資料網路(Profile Network)

收集了來自微博的廣大用戶的2大屬性信息:性別,地址。分別被表示成one-hot向量。該文利用Microsoft Satori的知識庫抽取名人信息,隨後根據經常出現在微博上的行為將部分名人進行過濾。對這些人,抽取了9種屬性信息:出生地,出生日期,種族,國籍,專業,性別,身高,體重,星座。而這些值都是離散的。因此可以用one-hot向量在低維空間中表示。同時刪除了那些名字不清楚的名人以及其他雜訊。

Fig.3 Profile Network

數據集總體上是圍繞著網路圖(Network Graph)構建的,對於信息網路嵌入(Network Embedding)不甚了解的讀者可參考本專欄之前由我撰寫的關於LINE(Large-scale Information Network Embedding)模型的論文解讀。

四、問題定義

情感鏈接預測(Sentiment links prediction):給定情感網路 G_{s} ,社會網路 G_{r} ,資料網路 G_{p} 。目標是預測 G_{s} 中還未被觀察到的情感鏈接,即 s=0 (?) 的情感鏈接。

五、模型構建

5.1 架構總覽

該文提出end-to-end的SHINE模型進行情感鏈接預測。可用下圖來簡單表示模型的架構。

Fig.4 Framework of the end-to-end SHINE model

總體上看,包含三大部分:

5.1.1 情感抽取及異構網路建立(Sentiment Extraction & Heterogeneous Network Construction)

在這個部分中,針對每一條推文,先計算出情感傾向(sentiment),用戶(user),名人(celebrity)。隨後利用本文第四部分提到的三大網路分別抽取出用戶的情感網路表示(sentiment Embedding),社會網路表示(social Embedding),信息網路表示(profile Embedding)。從而建立起一個低維特徵空間中的異構網路。這個特徵網路保留了原有網路的結構性。以社會網路舉例,假定共有4個用戶,其中第1個用戶僅關注了第3個用戶,那麼他的初始社會網路表示就是(1,0,1,0);這裡我們假定每個節點都有一個自身閉環。情感網路和資料網路的表示與社會網路類似。

5.1.2 用戶嵌入式表示的計算(The representation of users calculation)

我們針對三個網路建立了三個自動編碼器(autoencoder),也就是類似於深度神經網路(DNN)的結構,去獲取用戶全新的Embedding表示,這個Embedding與5.1.1中的原始的Embedding不同的是:新的Embedding維度更低(short),稠密性更大(dense)。

5.1.3 嵌入式表示的融合以及情感預測(Representation Aggregation & Sentiment

Prediction )

這一步我們將5.1.2得到的三個Embedding進行融合(aggregation),隨後應用特定的相似度測量函數(向量內積或logistics回歸)得到最終結果,並可以根據這個結果與正確答案來訓練整個模型。

下面,我們針對這個模型中最核心的部分,自動編碼器(autoencoder)進行詳細解讀。

5.2 探究Network Embedding

5.2.1 情感網路嵌入(Sentiment Network Embedding)

之前在5.1.1中我們提到了異構網路建立時的用戶情感網路初始表示,這裡再詳細說明一下:給定情感網路G_{s}=(V,S) 對每一個用戶 iin V ,定義了它的情感鄰接向量 x_{i}=left{ s_{ij}丨jin V 
ight}cupleft{ s_{ji}丨jin V 
ight}

注意這裡 x_{i} 的維度為2 left| V 
ight| ,包含了user對其他人的情感傾向以及其他人對user的情感傾向。當然,這個向量不可能是最終的用戶表示,維度的巨大,向量的稀疏使得進一步的工作難以繼續進行。那麼,Network Embedding就應運而生了。在眾多模型中,深度自動編碼器(deep autoencoder)是最新的解決方法之一。它是一種無監督的神經網路模型,能夠學習到數據的嵌入式表示。AutoEncoder包含2個部分,encoder和decoder,這和經典的機器翻譯(Machine Translate)框架類似。不同的是,後者的每個部分是一個LSTM model,而本文的每個部分是類似DNN的模型。

我們把Fig.4 中的sentiment autoencoder部分放大:

Fig.5 A 6-layer autoencoder for sentimentnetwork embedding

可以看到autoencoder先將用戶映射到低維空間中,在這幅圖中就是 x_{i} 
ightarrow x_{i}^{3} 的過程。隨後通過多個全連接層再將情感鄰接網路重構,在這幅圖中就是 x_{i}^{3}
ightarrow x_{i}^{6} 的過程。對於原始的輸入 x_{i},每一個隱藏層的表示為:

x_{i}^{k} = sigma(W_{s}^{k}x_{i}^{k-1} + b_{s}^{k}),k = 1,2,...,K_{s}

W_{s}^{k},b_{s}^{k} 分別為第K個隱層的權值矩陣和偏置矩陣。 sigma(cdot) 是一個非線性激活函數。 K_{s} 是autoencoder層的總數,Fig.5中 K_{s} 就為6。我們將最後的輸出 x_{i}^{K_{s}}x_{i}^{} 表示,代表 x_{i} 的重構向量。以encoder-decoder的交界層表示作為用戶的情感表示(sentiment-embedding),即Fig.5 中的 x_{i}^{3}

接下來根據輸入輸出來定義損失函數(loss function):

odot 表示哈達馬乘積(hadamard product), l_{i} 是一個 2left| V 
ight| 長度的向量,表示情感重構權重向量(sentiment reconstruction weight vector):

原文中對上述損失函數的解釋用比較通俗的話來說就是,對於非確定情感傾向的元素(即 s_{ij} = 0 )的損失程度和確定情感傾向(即 s_{ij} = ±1 )的元素損失程度,我們更加看重後者,這也就是 alpha 為什麼大於1的原因。

5.2.2 社會網路嵌入(Social Network Embedding)

Social Network Embedding的方式與5.2.1中介紹的方式相似。我們講autoencoder中的每一層表示為:

y_{i}^{k} = sigma(W_{r}^{k}y_{r}^{k-1} + x_{r}^{k}),K=1,2...,K_{r}

所有參數,變數的含義請參考5.2.1,損失函數定義為:

i,j相連時 m_{ij} = alpha > 1 ,否則 m_{ij}=1 。用戶的社會網路表示(social embedding)同樣用隱藏層中的中間層向量表示。

5.2.3 資料網路嵌入(Profile Network Embedding)

這個網路在定義時與前2個網路有少許不同。首先它是一個無向的二部圖網路(undirected bipartite graph)由用戶集合、屬性集合這2個內部不相交的集合構成。對於任一用戶 iin V ,它的資料鄰接向量被定義為 z_{i} = left{ p_{ij} 丨jin U 
ight} 。其餘的隱藏層表示以及損失函數表示都與上述2個網路類似:

5.3 表示融合以及情感預測(Representation Aggregation and Sentiment

Prediction)

在得到5.2中三種網路的Embedding表示( ar{x_{i}},ar{y_{i}},ar{z_{i}} )後,我們通過一些特殊的融合(Aggregation)手段得到最終的異構嵌入式表示(Heterogeneous Embedding) ar{e_{i}} ,該文列舉了三種方式:

1)Summation: ar{e_{i}} = ar{x_{i}}+ar{y_{i}}+ar{z_{i}}

Refer:Collaborative Knowledge Base Embedding for Recommender Systems(KDD16)

2)Max pooling: e_{i} = element-wise-max(ar{x_{i}},ar{y_{i}},ar{z_{i}})

Refer:Learning Hierarchical Representation Model for Next Basket Recommendation(SIGIR15)

3)Concatenation: e_{i} = <x_{i},y_{i},z_{i}>

Refer:LINE: Large-scale Information Network Embedding(WWW15)

最後,給定2個用戶以及他們的異構表示 e_{i},e_{j} ,情感的預測可通過特定的計算函數進行計算: ar{s_{ij}} = f(i,j) ,該文也列舉了三種方式:

1)Inner Product:ar{s_{ij}}=e_{i}	op e_{j}+b , b 是可訓練的偏置參數。

Refer:Heterogeneous Network Embedding via Deep Architectures(KDD15)

A Hybrid Collaborative Filtering Model with Deep Structure for Recommender Systems(AAAI17)

2)Euclidean distance: ar{s_{ij}} = -left|
ight| e_{i}-e_{j}left| 
ight|_{2}+b , b 是可訓練的偏置參數。

Refer:Structural Deep Network Embedding(KDD16)

3)Logistic regression: ar{s_{ij}} = W^{T}<e_{i},e_{j}>+b , W,b為可訓練的權重參數以及偏置參數。

Refer:Deepwalk: Online learning of social representations(KDD14)

5.4 優化

完整的SHINE模型目標函數如下:

Fig.6 complete objective function of SHINE

lambda_{i} 為平衡參數。等式中的前三式為三大網路各自的損失函數,第四式為預測情緒與真實答案之間的損失部分,最後一式為正則化以防止過擬合:

使用AdamOptimizer來優化目標函數。AdamOptimizer是Tensorflow中一種最常見的優化方法,如有疑惑可閱讀Tensorflow官方文檔中關於AdamOptimizer的部分。

六、實驗

6.1 Link Prediction

選用了Weibo以及Wiki數據集。隱藏了情感網路中20%的情感鏈接邊用作測試集,以AccuracyMicro-F1作為評價指標,同時為了更加深入分析,將訓練集的比例從10%逐漸提升到100%,具體結果如下:

Fig.7 Accuracy and micro-F1 on Weibo-STC and Wiki-RfA for link prediction

可以看到,相對於其他baseline,SHINE在2大數據集上的2大指標均有更精確的預測結果。同時為了展現SHINE和其他baseline在冷啟動問題上的表現,建立了一批新加入用戶的微博數據集,結果如下:

Fig.8 Comparison of models in terms of Accuracy andMicro-F1 on Weibo-STC in cold start scenario

6.2 Node Recommendation

除開Link Prediction,向用戶推薦其他用戶也是Network Embedding的任務之一。在本模型中,對每一位用戶,計算他對其他所有用戶的情感得分,取出前K個得分最高的用戶作為推薦用戶。為了完整性,不僅向他推薦喜歡的用戶,也向他推薦不喜歡的用戶。使用推薦系統中最常見的Precision@K以及Recall@K作為評價指標:

Fig.10 Positive and negative Precision@K and Recall@K on Weibo-STC and Wiki-RfA for node recommendation

七、討論

7.1 不對稱性

試著這樣考慮,倘若5.3中的情感計算函數 f 是對稱函數(如5.3中的inner和Euclidean),那麼 ij 的情感得分與 ji 的情感得分在任何情況下都是相同的,這在現實世界中幾乎是不成立。人們對於互相的看法存在偏頗甚至迥然不同。SHINE Model能夠輕鬆的擴展2套不同的autoencoder,用以抽取每個用戶作為源節點和目標節點的Embedding表示。

7.2 冷啟動問題

現實的社交網路每天都會有新的用戶加入,到底該如何去學習他們的Embedding表示呢?這就是冷啟動問題。現在大多數模型對這個問題束手無策因為他們用到的target Netwrok幾乎不含有新節點信息(比如這裡的Sentiment Network),但SHINE克服了這一點,他充分利用了其他的輔助信息,並在學慣用戶Embedding時將它們融入到了target Network。

7.3 靈活性

SHINE的模型架構具有很高的靈活性,如果需要利用一個新的輔助信息網路,如用戶瀏覽歷史等。我們可以輕鬆的設計一個相似的處理組件來生成新的一個網路並將它插入到我們的autoencoder中。同樣的,當一些輔助信息網路變得不再可靠,我們可以直接將這樣的autoencoder從框架刪除而不影響整個框架的正常計算。當然,不同的融合函數,不同的情感計算函數也是靈活性的體現之一。

八、總結

本文面向人們的社交網路中人與人之間的情感關係提出SHINE模型,根據人們已有的情感傾向,關注群體,自身屬性,通過一個類似Encoder-Decoder框架的深度自動編碼器和融合函數得到用戶的低維嵌入式表示。再通過情感計算函數得到最終用戶之間的情感分數。突破傳統的無監督機器學習方法,將Deep Learning與Network Embedding相結合,值得NE方向的研究者們一讀。


推薦閱讀:

【用Sklearn進行機器學習】第一篇 - 介紹Scikit-Learn
機器學習入門:泰坦尼克號生存概率預測
[機器學習入門] 李宏毅機器學習課程從這裡開始
直覺版:CNN解讀part1
機器學習不僅僅是模型

TAG:深度學習DeepLearning | 數據融合 | 機器學習 |