情感预测SHINE: Signed Heterogeneous Information Network Embedding for Sentiment Link Prediction引介

原文链接:https://zhuanlan.zhihu.com/p/34437681?utm_source=wechat_session&utm_medium=social&from=singlemessage#showWechatShareTip

原文作者:本文作者:陈俊华,来自中国人民大学大数据管理与分析方法研究北京市重点实验室(BDAI)。学术型硕士研究生,研究方向为Network Embedding,Tag Recommendation等。

论文:SHINE: Signed Heterogeneous Information Network Embedding for Sentiment Link Prediction 原文链接

发表会议: WSDM'2018

论文方向: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


前言:本文所要解决的问题是挖掘用户对于其他用户的潜在情感倾向,这种潜在的情感倾向可能在该用户自身所携带的文字信息中并没有体现。而且在现在机器学习领域中,针对用户的情感工作大多聚焦于用户文本的情感分类。也就是根据用户的文字叙述来对这段文字进行积极,中立,消极的情感判断。这对于用户的真实的情感挖掘,仅仅是冰山一角。人们经常关注的用户,通过电子设备经常浏览的信息等等,无一不在体现着他们对于某一个人,某一个事件的情感。为此,该文提出的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 的情感倾向。 s\in\left\{ +1,0,-1\right\}+1 表示positive, -1 表示negative, 0(?) 表示未观察到的情感倾向。

<img src="https://pic1.zhimg.com/v2-afd5b245d8748fdab7e6ce34ca6df657_b.jpg" data-size="normal" data-rawwidth="185" data-rawheight="183" class="content_image" width="185"> Fig.1 Sentiment Network

3.2 社会网络(Social Network)

该文收集了微博用户的关注关系网络,由形如 (a,b) 的有向边构成。 a 表示关注人, b 表示被关注人。


<img src="https://pic4.zhimg.com/v2-0d6a93124eda42320044f152f77edad8_b.jpg" data-size="normal" data-rawwidth="181" data-rawheight="179" class="content_image" width="181">Fig.2 Social Network

3.3 资料网络(Profile Network)

收集了来自微博的广大用户的2大属性信息:性别,地址。分别被表示成one-hot向量。该文利用Microsoft Satori的知识库抽取名人信息,随后根据经常出现在微博上的行为将部分名人进行过滤。对这些人,抽取了9种属性信息:出生地,出生日期,种族,国籍,专业,性别,身高,体重,星座。而这些值都是离散的。因此可以用one-hot向量在低维空间中表示。同时删除了那些名字不清楚的名人以及其他噪声。

<img src="https://pic2.zhimg.com/v2-48114cfba32f8d8645910706cf7be08f_b.jpg" data-size="normal" data-rawwidth="172" data-rawheight="187" class="content_image" width="172"> 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模型进行情感链接预测。可用下图来简单表示模型的架构。

<img src="https://pic1.zhimg.com/v2-0841ff7565a90be81995053b61f8bfee_b.jpg" data-size="normal" data-rawwidth="1115" data-rawheight="366" class="origin_image zh-lightbox-thumb" width="1115" data-original="https://pic1.zhimg.com/v2-0841ff7565a90be81995053b61f8bfee_r.jpg">
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) 对每一个用户 i\in V ,定义了它的情感邻接向量 x_{i}=\left\{ s_{ij}丨j\in V \right\}\cup\left\{ s_{ji}丨j\in V \right\}

注意这里 x_{i} 的维度为2 \left| V \right| ,包含了user对其他人的情感倾向以及其他人对user的情感倾向。当然,这个向量不可能是最终的用户表示,维度的巨大,向量的稀疏使得进一步的工作难以继续进行。那么,Network Embedding就应运而生了。在众多模型中,深度自动编码器(deep autoencoder)是最新的解决方法之一。它是一种无监督的神经网络模型,能够学习到数据的嵌入式表示。AutoEncoder包含2个部分,encoder和decoder,这和经典的机器翻译(Machine Translate)框架类似。不同的是,后者的每个部分是一个LSTM model,而本文的每个部分是类似DNN的模型。

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

<img src="https://pic1.zhimg.com/v2-b5a526b1c996c702c216c4799348585c_b.jpg" data-size="normal" data-rawwidth="644" data-rawheight="297" class="origin_image zh-lightbox-thumb" width="644" data-original="https://pic1.zhimg.com/v2-b5a526b1c996c702c216c4799348585c_r.jpg"> Fig.5 A 6-layer autoencoder for sentimentnetwork embedding

可以看到autoencoder先将用户映射到低维空间中,在这幅图中就是 x_{i} \rightarrow x_{i}^{3} 的过程。随后通过多个全连接层再将情感邻接网络重构,在这幅图中就是 x_{i}^{3}\rightarrow 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):

<img src="https://pic1.zhimg.com/v2-5f7b71995b69881c7979266992d8f875_b.jpg" data-caption="" data-size="normal" data-rawwidth="308" data-rawheight="59" class="content_image" width="308"&g

\odot 表示哈达马乘积(hadamard product), l_{i} 是一个 2\left| V \right| 长度的向量,表示情感重构权重向量(sentiment reconstruction weight vector):

<img src="https://pic3.zhimg.com/v2-1da6103489336c0967dfdd93ad9141bc_b.jpg" data-caption="" data-size="normal" data-rawwidth="324" data-rawheight="92" class="content_image" width="324">

原文中对上述损失函数的解释用比较通俗的话来说就是,对于非确定情感倾向的元素(即 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,损失函数定义为:

<img src="https://pic2.zhimg.com/v2-40619704d189da7b01024389079a135c_b.jpg" data-caption="" data-size="normal" data-rawwidth="349" data-rawheight="53" class="content_image" width="349">

i,j相连时 m_{ij} = \alpha > 1 ,否则 m_{ij}=1 。用户的社会网络表示(social embedding)同样用隐藏层中的中间层向量表示。

5.2.3 资料网络嵌入(Profile Network Embedding)

这个网络在定义时与前2个网络有少许不同。首先它是一个无向的二部图网络(undirected bipartite graph)由用户集合、属性集合这2个内部不相交的集合构成。对于任一用户 i\in V ,它的资料邻接向量被定义为 z_{i} = \left\{ p_{ij} 丨j\in U \right\} 。其余的隐藏层表示以及损失函数表示都与上述2个网络类似:

<img src="https://pic1.zhimg.com/v2-03539a858a6afc97edc8825ec2756b21_b.jpg" data-caption="" data-size="normal" data-rawwidth="438" data-rawheight="59" class="origin_image zh-lightbox-thumb" width="438" data-original="https://pic1.zhimg.com/v2-03539a858a6afc97edc8825ec2756b21_r.jpg"> <img src="https://pic4.zhimg.com/v2-fa5a569653422d77b86656f43ad428e9_b.jpg" data-caption="" data-size="normal" data-rawwidth="317" data-rawheight="63" class="content_image" width="317">

5.3 表示融合以及情感预测(Representation Aggregation and Sentiment

Prediction)

在得到5.2中三种网络的Embedding表示( \bar{x_{i}},\bar{y_{i}},\bar{z_{i}} )后,我们通过一些特殊的融合(Aggregation)手段得到最终的异构嵌入式表示(Heterogeneous Embedding) \bar{e_{i}} ,该文列举了三种方式:

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

Refer:Collaborative Knowledge Base Embedding for Recommender Systems(KDD'16)

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

Refer:Learning Hierarchical Representation Model for Next Basket Recommendation(SIGIR'15)

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

Refer:LINE: Large-scale Information Network Embedding(WWW'15)

最后,给定2个用户以及他们的异构表示 e_{i},e_{j} ,情感的预测可通过特定的计算函数进行计算: \bar{s_{ij}} = f(i,j) ,该文也列举了三种方式:

1)Inner Product:\bar{s_{ij}}=e_{i}\top e_{j}+b , b 是可训练的偏置参数。

Refer:Heterogeneous Network Embedding via Deep Architectures(KDD'15)

A Hybrid Collaborative Filtering Model with Deep Structure for Recommender Systems(AAAI'17)

2)Euclidean distance: \bar{s_{ij}} = -\left|\right| e_{i}-e_{j}\left| \right|_{2}+b , b 是可训练的偏置参数。

Refer:Structural Deep Network Embedding(KDD'16)

3)Logistic regression: \bar{s_{ij}} = W^{T}<e_{i},e_{j}>+b , W,b为可训练的权重参数以及偏置参数。

Refer:Deepwalk: Online learning of social representations(KDD'14)

5.4 优化

完整的SHINE模型目标函数如下:

<img src="https://pic1.zhimg.com/v2-bb732df7cba738f9607dc557d8770e18_b.jpg" data-size="normal" data-rawwidth="536" data-rawheight="114" class="origin_image zh-lightbox-thumb" width="536" data-original="https://pic1.zhimg.com/v2-bb732df7cba738f9607dc557d8770e18_r.jpg"> Fig.6 complete objective function of SHINE

\lambda_{i} 为平衡参数。等式中的前三式为三大网络各自的损失函数,第四式为预测情绪与真实答案之间的损失部分,最后一式为正则化以防止过拟合:

<img src="https://pic1.zhimg.com/v2-7c930b3cfbb60a7daa2195549d071a9c_b.jpg" data-caption="" data-size="normal" data-rawwidth="474" data-rawheight="76" class="origin_image zh-lightbox-thumb" width="474" data-original="https://pic1.zhimg.com/v2-7c930b3cfbb60a7daa2195549d071a9c_r.jpg">

使用AdamOptimizer来优化目标函数。AdamOptimizer是Tensorflow中一种最常见的优化方法,如有疑惑可阅读Tensorflow官方文档中关于AdamOptimizer的部分。

六、实验
6.1 Link Prediction

选用了Weibo以及Wiki数据集。隐藏了情感网络中20%的情感链接边用作测试集,以AccuracyMicro-F1作为评价指标,同时为了更加深入分析,将训练集的比例从10%逐渐提升到100%,具体结果如下:

<img src="https://pic2.zhimg.com/v2-ed383c34721909a6d444c975369b43eb_b.jpg" data-size="normal" data-rawwidth="1125" data-rawheight="262" class="origin_image zh-lightbox-thumb" width="1125" data-original="https://pic2.zhimg.com/v2-ed383c34721909a6d444c975369b43eb_r.jpg"> Fig.7 Accuracy and micro-F1 on Weibo-STC and Wiki-RfA for link prediction

可以看到,相对于其他baseline,SHINE在2大数据集上的2大指标均有更精确的预测结果。同时为了展现SHINE和其他baseline在冷启动问题上的表现,建立了一批新加入用户的微博数据集,结果如下:

<img src="https://pic1.zhimg.com/v2-58f9d50be589a42aef5ca46d51e52521_b.jpg" data-size="normal" data-rawwidth="463" data-rawheight="196" class="origin_image zh-lightbox-thumb" width="463" data-original="https://pic1.zhimg.com/v2-58f9d50be589a42aef5ca46d51e52521_r.jpg"> 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作为评价指标:

<img src="https://pic3.zhimg.com/v2-020b65627dac7e2ff6f9a89439ed0c1a_b.jpg" data-size="normal" data-rawwidth="1152" data-rawheight="450" class="origin_image zh-lightbox-thumb" width="1152" data-original="https://pic3.zhimg.com/v2-020b65627dac7e2ff6f9a89439ed0c1a_r.jpg"> 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方向的研究者们一读。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值