一种利用循环随机游走网络进行微博情感分类预测的方法与流程

文档序号:13943830阅读:236来源:国知局

本发明涉及微博情感分类预测,尤其涉及一种利用循环随机游走网络进行微博情感分类预测的方法。



背景技术:

对于当前蓬勃发展的微博而言,用户微博情感预测是一项重要的问题。该项问题的目标是基于当前网络中已经观察到的用户关系及用户所发的微博的情感分类对于用户未来微博的情感分类进行预测。

现有的技术主要是将微博情感分类当作一种文本情感分类任务来做,只是对于用户过去所发的微博进行训练,得到其用户微博的情感分类模型,从而预测未来该用户所发微博的情感分类,该方法受困于对于微博进行有效性表达的困难。

本发明将利用一种异质微博情感分类网络进行用户微博情感分类的预测,该网络可以同时提取用户微博内容的深度语义表达与用户之间的社交关系,该网络附带有一随机游走层来学习异质微博语义分类网络映射,该网络可以从一开始便进行端到端的学习。



技术实现要素:

本发明的目的在于解决现有技术中的问题,为了克服现有技术中缺乏对于用户微博博文的有效表达的问题,本发明提供一种利用循环随机游走网络进行微博情感分类预测的方法。本发明所采用的具体技术方案是:

利用循环随机游走网络解决微博情感分类预测的问题,包含如下步骤:

1、针对于一组社交网络用户及其微博博文,构建综合包括用户之间社交关系及用户与微博博文之间相互关系的网络。

2、利用循环随机游走网络获取用户未来所发微博情感分类的交叉熵损失项与某用户在其他用户的影响下的所发微博博文的一致性损失项,并将这两者相加得到最终的损失项。通过学习,将这个最终的损失项最小化,来训练得到最终的用户微博情感分类预测函数。

3、利用学习得到的用户微博情感分类预测函数获取用户微博的预测情感分类。

上述步骤可具体采用如下实现方式:

1、对于所给出的用户及用户所发的微博,按照实际数据集中的用户之间社交关系及用户与微博博文的发布关系形成异质的微博情感分类网络,记为msc网络。

2、对于构建完成的msc网络,对于给定的微博博文,将其单词通过预先训练好的单词映射网络获取其单词映射。对于由一个单词序列构成的微博博文xi,设其第t个单词通过预先训练好的单词映射网络获取的单词映射为xit,则将序列(xi1,xi2,...,xik)作为微博博文xi的单词映射表达,之后,将博文xi分成若干段,并将各段的单词映射序列作为lstm网络的输入,以lstm网络的最后一个隐藏层的输出作为该段博文的映射表达,之后将各段的输出同时输入一个最大池化层,将池化层的输出ti∈rd作为微博博文xi的映射表达,ti为一个d维向量。

3、利用softmax函数来设计用户个性化情感分类模型,给定第j条微博博文的映射表达tj,则对于第i个用户的个性化语义函数如下:

其中,c为所有的情感分类的种类数,向量为第j条微博博文的预测情感分类向量,为所要学习出的对于第i个用户的某条微博的情感预测函数,u0∈rd*c为对于所有用户的总体语义映射矩阵,ui∈rd*c为对于第i个用户的特定语义映射矩阵,softmax(.)为softmax函数。

则对于上式最终所得向量的每一维fu,k(tj),其由如下公式计算得到:

其中u0,k与ui,k分别为u0与ui对应第k维的向量。

4、结合上一步得到的用户微博博文的情感预测向量与真实的训练集中的用户微博博文情感分类向量y,利用如下公式得到用户未来所发微博情感分类的交叉熵损失项:

其中,集合ai为第i个用户所有的微博博文构成的集合,为第j条微博的预测情感分类,yj为第j条微博的真实情感分类,m为总体用户数,对于yj向量,其只有对应于正确情感分类的维度值为1,其余维度的值为0。

5、结合所得到的msc网络,得到用户之间的相互关系矩阵s∈rm*m,m为总体的用户数,若第i个用户在关注第j个用户,则sij=1,否则,sij=0。得到微博博文与用户之间的关系矩阵a∈rn*m,其中n为总体的微博博文的数目,若第i条微博博文是由第j个用户发出,则aij=1,否则,aij=0。

由s矩阵与a矩阵得到一维微博博文关系矩阵b=asat,则若第i条微博博文与第j条微博博文是由同一个用户发出或者由在msc网络中之间只有1跳距离的两用户发出,则bij=1,否则,bij=0。指定|ai|为在b矩阵中与第i条微博博文相关的微博博文条数,则可得到对角矩阵d=diag(|a1|,|a2|,...,|an|),随后得到一阶微博博文转移矩阵w=d-1b。则在bij=1的前提下,针对于第i条与第j条微博博文的转移概率为若第i条与第j条微博博文之间没有相互关系,则wij=0。

6、给定一阶微博博文转移矩阵w,第j条微博博文的初始预测情感分类向量本发明结合随机游走的思路进行多次迭代,得到第j条微博博文在第k+1步的预测情感分类向量其中,代表第j条微博博文在第k步的预测情感分类向量,w(k)代表w的k次幂。则第j条微博博文的语义一致性保留情感预测可以由如下公式得到:

其中,为w(k)矩阵中的元素,代表第i条微博博文与第j条微博博文在k阶微博博文转移矩阵w(k)的相互关系。

则第i条微博博文的第k阶语义一致性的损失项如下公式所示:

其中,代表2阶frobenius范数。

7、则综合用户未来所发微博情感分类的交叉熵损失项与微博博文的语义一致性的损失项,可得到最终的损失函数如下:

其中,α为对于交叉熵损失项与语义一致性的损失项的权衡参数,k为随机游走层的层数。

8、对于步骤2至步骤7所构建的循环随机游走网络,将该网络中所有的参数集合设为θ,结合利用步骤7中所得到的损失函数,得到循环随机游走网络模型的最终目标函数如下:

其中,θ为模型中的所有参数,λ为训练损失值与正则项之间的权衡参数。

对于步骤8中的最终的目标函数,本发明使用随机梯度下降的方法来更新参数,并且使用adagrad的学习率更新方法进行网络中的所有参数的更新,获取最终的所有用户的微博博文情感分类预测函数

9、利用步骤8所形成的排序标准预测函数对于某一用户所发出的微博文本的映射表达,求得该微博博文的情感分类预测值,将具有最大概率的情感类别作为预测的该微博的情感分类。

附图说明

图1是本发明所使用的利用用户间已有的社交关系及用户与微博博文直接按的相互关系构建的msc网络的整体示意图。图2是本发明所使用的进行微博情感分类预测的循环随机游走网络学习模型的示意图。

具体实施方式

下面结合附图和具体实施方式对本发明做进一步阐述和说明。

如图1所示,本发明一种利用循环随机游走网络进行微博情感分类预测的方法包括如下步骤:

1)针对于一组用户及微博,构建综合包括用户之间社交关系及用户与微博博文之间相互关系的网络;

2)对于步骤1)所得到的综合包括用户之间社交关系及用户与微博博文之间相互关系的网络,利用循环随机游走网络获取用户未来所发微博情感分类的交叉熵损失项与某用户在其他用户的影响下的所发微博博文的语义一致性损失项,并将这两者相加得到最终的损失项;通过学习,将这个最终的损失项最小化,来训练得到最终的用户微博情感分类预测函数;

3)利用步骤2)学习得到的用户微博情感分类预测函数获取用户微博的预测情感分类。

所述的步骤2)采用循环随机游走网络获取最终的用户微博情感分类预测函数,其具体步骤为:

2.1)对于步骤1)形成的综合包括用户之间社交关系及用户与微博博文之间相互关系的网络,利用预训练的单词映射网络、lstm网络与softmax函数获得用户未来所发微博情感分类的交叉熵损失项;

2.2)对于步骤1)形成的综合包括用户之间社交关系及用户与微博博文之间相互关系的网络,利用随机游走网络获取某用户在其他用户影响下的所发微博博文的语义一致性的损失项,并结合步骤2.1)获得的用户未来所发微博情感分类的交叉熵损失项得到最终目标函数;

2.3)利用步骤2.2)找出的最终目标函数,通过训练学习出所有用户的微博情感分类预测函数。

所述的步骤2.1)具体为:

针对于步骤1)获得的综合包括用户之间社交关系及用户与微博博文之间相互关系的网络,对于给定的微博博文,将其单词通过预先训练好的单词映射网络获取其单词映射。对于由一个单词序列构成的微博博文xi,设其第t个单词通过预先训练好的单词映射网络获取的单词映射为xit,则将序列(xi1,xi2,...,xik)作为微博博文xi的单词映射表达,之后,将博文xi分成若干段,并将各段的单词映射序列作为lstm网络的输入,以lstm网络的最后一个隐藏层的输出作为该段博文的映射表达,之后将各段的输出同时输入一个最大池化层,将池化层的输出ti∈rd作为微博博文xi的映射表达,ti为一个d维向量。

之后利用softmax函数来设计用户个性化情感分类模型,给定第j条微博博文的映射表达tj,则对于第i个用户的个性化语义函数如下:

其中,c为所有的情感分类的种类数,向量为第j条微博博文的预测情感分类向量,为所要学习出的对于第i个用户的某条微博的情感预测函数,u0∈rd*c为对于所有用户的总体语义映射矩阵,ui∈rd*c为对于第i个用户的特定语义映射矩阵,softmax(.)为softmax函数。

则对于上式最终所得向量的每一维fu,k(tj),其由如下公式计算得到:

其中u0,k与ui,k分别为u0与ui对应第k维的向量。

再结合上一步得到的用户微博博文的情感预测向量与真实的训练集中的用户微博博文情感分类向量y,利用如下公式得到用户未来所发微博情感分类的交叉熵损失项:

其中,集合ai为第i个用户所有的微博博文构成的集合,为第j条微博的预测情感分类,yj为第j条微博的真实情感分类,m为总体用户数,对于yj向量,其只有对应于正确情感分类的维度值为1,其余维度的值为0。

所述的步骤2.2)具体为:

针对于步骤1)所获得的综合包括用户之间社交关系及用户与微博博文之间相互关系的网络,得到用户之间的相互关系矩阵s∈rm*m,m为总体的用户数,若第i个用户在关注第j个用户,则sij=1,否则,sij=0。得到微博博文与用户之间的关系矩阵a∈rn*m,其中n为总体的微博博文的数目,若第i条微博博文是由第j个用户发出,则aij=1,否则,aij=0。

由s矩阵与a矩阵得到一维微博博文关系矩阵b=asat,则若第i条微博博文与第j条微博博文是由同一个用户发出或者由在msc网络中之间只有1跳距离的两用户发出,则bij=1,否则,bij=0。指定|ai|为在b矩阵中与第i条微博博文相关的微博博文条数,则可得到对角矩阵d=diag(|a1|,|a2|,...,|an|),随后得到一阶微博博文转移矩阵w=d-1b。则在bij=1的前提下,针对于第i条与第j条微博博文的转移概率为若第i条与第j条微博博文之间没有相互关系,则wij=0。

则给定一阶微博博文转移矩阵w,第j条微博博文的初始预测情感分类向量结合随机游走的思路进行多次迭代,得到第j条微博博文在第k+1步的预测情感分类向量其中,代表第j条微博博文在第k步的预测情感分类向量,w(k)代表w的k次幂。则第j条微博博文的语义一致性保留情感预测可以由如下公式得到:

其中,为w(k)矩阵中的元素,代表第i条微博博文与第j条微博博文在k阶微博博文转移矩阵w(k)的相互关系。

则第i条微博博文的第k阶语义一致性的损失项如下公式所示:

其中,代表2阶frobenius范数。

则综合用户未来所发微博情感分类的交叉熵损失项与微博博文的语义一致性的损失项,可得到最终的损失函数如下:

其中,α为对于交叉熵损失项与语义一致性的损失项的权衡参数,k为随机游走层的层数。

步骤2.3)具体为:

对于步骤2)所构建的循环随机游走网络,将该网络中所有的参数集合设为θ,结合利用步骤2)得到的最终的损失函数,将如下公式作为循环随机游走网络模型整体的目标函数值:

其中,θ为模型中的所有参数,λ为训练损失值与正则项之间的权衡参数。

之后,使用随机梯度下降的方法来更新参数,并且使用adagrad的学习率更新方法进行网络中的所有参数的更新,获取最终的所有用户的微博博文情感分类预测函数

所述的步骤3)具体为:

利用步骤2)所形成的所有用户的微博博文情感分类预测函数对于某一用户所发出的微博文本的映射表达,求得该微博博文的情感分类预测值,将具有最大概率的情感类别作为预测的该微博的情感分类。

下面将上述方法应用于下列实施例中,以体现本发明的技术效果,实施例中具体步骤不再赘述。

实施例

本发明在stanfordtwittersentiment数据集及obama-mccaindebate数据集上面分别进行实验验证。stanfordtwittersentiment数据集中共包括22262条带标签的微博博文,其中11959条微博博文被标记为正向情感,10303条微博博文被标记为负向情感,stanfordtwittersentiment数据集中平均每个用户的微博博文数为2.63。obama-mccaindebate数据集中共包括1827条带标签的微博博文,其中747条微博博文被标记为正向情感,1080条微博博文被标记为负向情感,obama-mccaindebate数据集中平均每个用户的微博博文数为2.49。

为了客观地评价本发明的算法的性能,本发明在所选出的测试集中,使用了accuracy来对于本发明的效果进行评价。按照具体实施方式中描述的步骤,所得的实验结果如表1及表2所示,本发明所用的方法记为rrwnl,且分别针对于所有训练集的10%、25%、50%、100%的训练数据作为最终训练集得到实验结果:

表1本发明针对于stanfordtwittersentiment数据集的测试结果

表2本发明针对于obama-mccaindebate数据集的测试结果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1