基于文本和用户表示学习的文本立场检测方法转让专利

申请号 : CN202110233476.X

文献号 : CN112949318B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 彭愈翔罗绪成

申请人 : 电子科技大学

摘要 :

本发明公开了一种基于文本和用户表示学习的文本立场检测方法,从社交媒体平台上获取文本数据集,生成用户社交关系图并获取对应的拉普拉斯矩阵,并确定每个文本的立场标签向量,采用预训练的BERT模型获取每个文本的文本向量,构建并训练立场检测模型,当需要对用户文本进行立场检测时,生成用户社交关系图并获取对应的拉普拉斯矩阵,将文本向量输入立场检测模型得到立场检测结果。本发明分别获取文本和用户两个模态特征并进行跨模态融合,从而实现准确的文本立场检测。

权利要求 :

1.一种基于文本和用户表示学习的文本立场检测方法,其特征在于,包括以下步骤:S1:确定需要进行文本立场检测的社交媒体平台,从该社交媒体平台上收集需要进行文本立场检测的话题的文本数据集,文本数据集包括若干与该话题相关的文本,以及发布这些文本的用户之间的关注列表与被关注列表;

根据用户之间的关注列表与被关注列表,生成一个有向无环的用户社交关系图G=,其中V表示所有用户ID集合,E表示用户之间有向边的集合,如果用户i关注了用户j,则存在一条从用户i到用户j的有向边,i,j∈V;然后根据构建用户社交关系图G=的邻rw

接矩阵A和度矩阵D;对邻接矩阵A与度矩阵D进行拉普拉斯矩阵变换得到拉普拉斯矩阵L ;

将用户在文本中的立场规范为反对、中立、赞成三个取值,并以one‑hot的形式编码得到3维立场向量,根据每个文本的立场确定其对应的立场向量作为立场标签向量;

S2:将文本数据集中的文本统一为预设长度W:如果文本长度大于W,则删除超出部分文本,如果文本长度小于W,则填充预设字符;将处理得到的各个文本分别输入预训练的BERT模型,将其输出的d维向量作为文本向量vt,其中t表示文本,t∈Φ,Φ表示文本数据集中文本集合,d的大小根据实际需要设置;

S3:构建立场检测模型,包括GCN网络、交互层、决策层、全连接层,其中:GCN网络用于生成用户向量,具体方法为:将用户社交关系图的拉普拉斯矩阵作为GCN网络的邻接矩阵,GCN网络对用户初始向量矩阵进行处理,得到的输出矩阵作为用户向量矩阵,每行向量作为对应用户的用户向量;

交互层用于将文本向量和GCN网络得到的文本所属用户的用户向量进行语义融合得到交互向量;交互层包括隐藏层和attention层,其中隐藏层用于对文本向量和用户向量求外积得到d×d的交互矩阵;attention层用于对交互矩阵进行降维得到d维交互向量;

决策层用于对用户向量、文本向量以及交互向量进行加权求和,得到加权合成向量;决策层包括拼接层、MLP网络、softmax层和加权合成模块,其中拼接层用于将用户向量、文本向量和交互向量进行拼接,得到3×d的拼接矩阵;MLP网络用于获取拼接矩阵中每个行向量的隐含表示向量uj,j=1,2,3;softmax层用于根据3个隐含表示向量uj确定归一化的权重αj,其计算公式如下:

其中,uw为d维向量,用于将隐含表示uj降维为一个数值;

加权合成模块用于根据权重αj对用户向量、文本向量以及交互向量进行加权求和,得到加权合成向量s,加权求和公式如下:s=∑αjhj

其中,h1,h2,h3分别表示用户向量、文本向量以及交互向量;

全连接层用于对加权合成向量s进行处理得到3维向量,其中每个元素表示文本属于反对、中立、赞成三种立场的概率;

rw

S4:将步骤S1中的拉普拉斯矩阵L 作为立场检测模型中GCN网络的邻接矩阵,随机生成文本数据集中每个用户的d维初始向量并作为行向量构成用户初始向量矩阵U,将用户初始向量矩阵U和步骤S2得到的文本向量作为输入,文本向量所对应的立场标签向量作为期望输出,对立场检测模型进行训练;

S5:当需要对社交媒体平台用户所发布的文本进行立场检测时,首先获取社交媒体平台当前用户之间的关注列表与被关注列表,生成有向无环的用户社交关系图G′,构建邻接rw′

矩阵A′和度矩阵D′并采用步骤S1相同方法进行拉普拉斯矩阵变换得到拉普拉斯矩阵L ;

将所需进行立场检测的文本采用步骤S2中的相同方法得到d维的文本向量v′;

rw′

将拉普拉斯矩阵L 作为立场检测模型中GCN网络的邻接矩阵,随机生成用户社交关系图G′中各个用户的d维初始向量并作为行向量构成用户初始向量矩阵U′,将用户初始向量矩阵U′和文本向量v′输入立场检测模型,得到立场检测结果。

说明书 :

基于文本和用户表示学习的文本立场检测方法

技术领域

[0001] 本发明属于自然语言处理技术领域,更为具体地讲,涉及一种基于文本和用户表示学习的文本立场检测方法。

背景技术

[0002] 立场检测是自然语言处理(Natural Language Processing,NLP)领域中的前沿研究分支之一,其目的是从文本信息中自动检测出人对个体、事物、事件所表现出来的看法或
者态度,如“支持、反对或中立”。
[0003] 目前,现有的立场检测方法主要采用的还是以CNN(Convolutional Neural Networks,卷积神经网络)、RNN(Recurrent Neural Network,循环神经网络)模型为主的经
典模型。现有的立场检测方法大部分只使用了文本维度的信息进行立场检测,而没有将与
立场高度相关的用户特征利用起来。用户本身的属性、用户之间的社交关系,都会影响到用
户发表言论的立场。其次,CNN、RNN模型在NLP任务上都有其局限性,比如CNN只能看到局部
领域,RNN由于其结构的原因,越往前的输入随着距离的增加,信息就衰减得越多。近年来随
着预训练语言模型BERT的提出,NLP各个子任务的性能都得到了极大的提升。通过BERT模型
能获得更好的文本维度的向量表示。最后,由于用户与文本的信息维度不同,可以视为不同
的模态。不同模态拥有不同的语义,而简单的拼接,无法实现模态间语义的有效混合。

发明内容

[0004] 本发明的目的在于克服现有技术的不足,提供一种基于文本和用户表示学习的文本立场检测方法,分别获取文本和用户两个模态特征并进行跨模态融合,从而实现准确的
文本立场检测。
[0005] 为了实现上述发明目的,本发明基于文本和用户表示学习的文本立场检测方法包括以下步骤:
[0006] S1:确定需要进行文本立场检测的社交媒体平台,从该社交媒体平台上收集需要进行文本立场检测的话题的文本数据集,文本数据集包括若干与该话题相关的文本,以及
发布这些文本的用户之间的关注列表与被关注列表;
[0007] 根据用户之间的关注列表与被关注列表,生成一个有向无环的用户社交关系图G=,其中V表示所有用户ID集合,E表示用户之间有向边的集合,如果用户i关注了用户
j,则存在一条从用户i到用户j的有向边,i,j∈V;然后构建用户社交关系图G=的邻
rw
接矩阵A和度矩阵D;对邻接矩阵A与度矩阵D进行拉普拉斯矩阵变换得到拉普拉斯矩阵L ;
[0008] 将用户在文本中的立场规范为反对、中立、赞成三个取值,并以one‑hot的形式编码得到3维立场向量,根据每个文本的立场确定其对应的立场向量作为立场标签向量;
[0009] S2:将文本数据集中的文本统一为预设长度W:如果文本长度大于W,则删除超出部分文本,如果文本长度小于W,则填充预设字符;将处理得到的各个文本分别输入预训练的
BERT模型,将其输出的d维向量作为文本向量vt,其中t表示文本,t∈Φ,Φ表示文本数据集
中文本集合,d的大小根据实际需要设置;
[0010] S3:构建立场检测模型,包括GCN网络、交互层、决策层、全连接层,其中:
[0011] GCN网络用于生成用户向量,具体方法为:将用户社交关系图的拉普拉斯矩阵作为GCN网络的邻接矩阵,GCN网络对用户初始向量矩阵进行处理,得到的输出矩阵作为用户向
量矩阵,每行向量作为对应用户的用户向量;
[0012] 交互层用于将文本向量和GCN网络得到的文本所属用户的用户向量进行语义融合得到交互向量;交互层包括隐藏层和attention层,其中隐藏层用于对文本向量和用户向量
求外积得到d×d的交互矩阵;attention层用于对交互矩阵进行降维得到d维交互向量;
[0013] 决策层用于对用户向量、文本向量以及交互向量进行加权求和,得到加权合成向量;决策层包括拼接层、MLP网络、softmax层和加权合成模块,其中拼接层用于将用户向量、
文本向量和交互向量进行拼接,得到3×d的拼接矩阵;MLP网络用于获取拼接矩阵中每个行
向量的隐含表示向量uj,j=1,2,3;softmax层用于根据3个隐含表示向量uj确定归一化的权
重αj,其计算公式如下:
[0014]
[0015] 其中,uw为d维向量,用于将隐含表示向量uj降维为一个数值;
[0016] 加权合成模块用于根据权重αj对用户向量、文本向量以及交互向量进行加权求和,得到加权合成向量s,加权求和公式如下:
[0017] s=∑αjhj
[0018] 其中,h1,h2,h3分别表示用户向量、文本向量以及交互向量;
[0019] 全连接层用于对加权合成向量s进行处理得到3维向量,其中每个元素表示文本属于反对、中立、赞成三种立场的概率;
[0020] S4:将步骤S1中的拉普拉斯矩阵Lrw作为立场检测模型中GCN网络的邻接矩阵,随机生成文本数据集中每个用户的d维初始向量并作为行向量构成用户初始向量矩阵U,将用户
初始向量矩阵U和步骤S2得到的文本向量作为输入,文本向量所对应的立场标签向量作为
期望输出,对立场检测模型进行训练;
[0021] S5:当需要对社交媒体平台用户所发布的文本进行立场检测时,首先获取社交媒体平台当前用户之间的关注列表与被关注列表,生成有向无环的用户社交关系图G′,构建
邻接矩阵A′和度矩阵D′并采用步骤S1相同方法进行拉普拉斯矩阵变换得到拉普拉斯矩阵
rw′
L ;将所需进行立场检测的文本采用步骤S2中的相同方法得到d维的文本向量v′;
[0022] 将拉普拉斯矩阵Lrw′作为立场检测模型中GCN网络的邻接矩阵,随机生成用户社交关系图G′中各个用户的d维初始向量并作为行向量构成用户初始向量矩阵U′,将用户初始
向量矩阵U′和文本向量v′输入立场检测模型,得到立场检测结果。
[0023] 本发明基于文本和用户表示学习的文本立场检测方法,从社交媒体平台上获取文本数据集,生成用户社交关系图并获取对应的拉普拉斯矩阵,并确定每个文本的立场标签
向量,采用预训练的BERT模型获取每个文本的文本向量,构建并训练立场检测模型,当需要
对用户文本进行立场检测时,生成用户社交关系图并获取对应的拉普拉斯矩阵,将文本向
量输入立场检测模型得到立场检测结果。
[0024] 本发明具有以下有益效果:
[0025] 1)在用户维度上充分利用不同用户相互之间的内在联系来建模用户,学习到的用户向量包含了用户之间的社交拓扑关系以及关系的紧密程度,具有更强的特征表达能力;
[0026] 2)在立场检测模型中将文本向量和用户向量进行跨模态融合,实现用户与文本两个模态间语义的有效混合,以实现针对用户的文本立场检测,提高立场检测的效率和准确
性。

附图说明

[0027] 图1是本发明基于文本和用户表示学习的文本立场检测方法的具体实施方式流程图;
[0028] 图2是本发明中立场检测模型的结构图。

具体实施方式

[0029] 下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许
会淡化本发明的主要内容时,这些描述在这里将被忽略。
[0030] 实施例
[0031] 图1是本发明基于文本和用户表示学习的文本立场检测方法的具体实施方式流程图。如图1所示,本发明基于文本和用户表示学习的文本立场检测方法的具体步骤包括:
[0032] S101:文本数据预处理:
[0033] 确定需要进行文本立场检测的社交媒体平台,从该社交媒体平台上收集需要进行文本立场检测的话题的文本数据集,文本数据集包括若干与该话题相关的文本,以及发布
这些文本的用户之间的关注列表与被关注列表。
[0034] 在社交媒体平台上的关注行为,表达了用户之间的单向兴趣,而这种单向兴趣,往往是由于志趣相投、观点相近所产生的,直观上,关注列表越相近的两个人,其用户特征表
示,也是相近的。更进一步来说,如果两个用户处于相互关注的关系,相比处于单方向关注
关系的两个用户,其紧密程度要更高。最后,同一个用户在短期内发表的多段文本中蕴含对
同一话题的立场大概率是相同的。
[0035] 因此在本发明中,根据用户之间的关注列表与被关注列表,生成一个有向无环的用户社交关系图G=,其中V表示所有用户ID集合,E表示用户之间有向边的集合,如果
用户i关注了用户j,则存在一条从用户i到用户j的有向边,i,j∈V。然后构建用户社交关系
图G=的邻接矩阵A和度矩阵D。
[0036] 邻接矩阵A用于存储用户之间的邻接关系,大小为|V|×|V|,|V|表示用户数量,其元素ai,j采用如下公式确定:
[0037]
[0038] 度矩阵D用于存储用户存在联系的用户数量,是大小为|V|×|V|的对角矩阵,对角上的元素即为相应用户存在联系的用户数量。
[0039] 对邻接矩阵A与度矩阵D进行拉普拉斯矩阵变换得到拉普拉斯矩阵Lrw,拉普拉斯矩阵变换函数如下:
[0040] Lrw=D‑1(D‑A)
[0041] 其中,上标‑1表示求逆矩阵。
[0042] 将用户在文本中的立场规范为反对、中立、赞成三个取值,并以one‑hot的形式编码得到3维立场向量,根据每个文本的立场确定其对应的立场向量作为立场标签向量。
[0043] S102:利用预训练的BERT模型得到文本向量:
[0044] 将文本数据集中的文本统一为预设长度W:如果文本长度大于W,则删除超出部分文本,如果文本长度小于W,则填充预设字符。将处理得到的各个文本分别输入预训练的
BERT(Bidirectional Encoder Representation from Transformers)模型,将其输出的d
维向量作为文本向量vt,其中t表示文本,t∈Φ,Φ表示文本数据集中文本集合。
[0045] BERT模型是Google在2018年提出的一种NLP(Natural Language Processing,自然语言处理)模型,成为最近几年NLP领域最具有突破性的一项技术。该模型采用了
Transformer的Encoder结构,BERT‑base模型包含12个Encoder block,BERT‑large包含24
个Encoder block。BERT模型的具体结构和工作过程可以参见文献“《Pre‑training of 
Deep Bidirectional Transformers for Language Understanding》”
[0046] S103:构建立场检测模型:
[0047] 为了实现文本立场检测,本发明设计了一个立场检测模型。图2是本发明中立场检测模型的结构图。如图2所示,本发明中立场检测模型包括GCN(Graph Convolutional 
Network,图卷积神经网络)网络、交互层、决策层、全连接层,其中:
[0048] GCN网络用于生成用户向量,具体方法为:将用户社交关系图的拉普拉斯矩阵作为GCN网络的邻接矩阵,GCN网络对用户初始向量矩阵进行处理,得到的输出矩阵作为用户向
量矩阵,每行向量作为对应用户的用户向量u。
[0049] 交互层用于将文本向量和GCN网络得到的文本所属用户的用户向量进行语义融合得到交互向量。交互层包括隐藏层和attention(注意力)层,其中隐藏层用于对文本向量和
用户向量求外积得到d×d的交互矩阵,该交互矩阵包含了文本向量与用户向量之间的交互
关系。attention层用于对交互矩阵进行降维得到d维交互向量r。由于用户与文本的信息维
度不同,可以视为不同的模态。不同模态拥有不同的语义,而简单的拼接,无法实现模态间
语义的有效混合。因此本发明设置交互层,通过跨模态训练来学习联合表示,实现用户与文
本的特征级融合。
[0050] 决策层用于对用户向量、文本向量以及交互向量进行加权求和,得到加权合成向量。决策层包括拼接层、MLP(Multilayer Perceptron,多层感知机)网络、softmax层和加权
合成模块,其中拼接层用于将用户向量、文本向量和交互向量进行拼接,得到3×d的拼接矩
阵。该拼接矩阵可以看作是长度为3的序列,序列上每个单元隐层表示的维度为d。MLP网络
用于获取拼接矩阵中每个行向量的隐含表示向量uj,j=1,2,3。softmax层用于根据3个隐
含表示向量uj确定归一化的权重αj,其计算公式如下:
[0051]
[0052] 其中,uw为d维向量,由训练得到,用于将隐含表示向量uj降维为一个数值。
[0053] 加权合成模块用于根据权重αj对用户向量、文本向量以及交互向量进行加权求和,得到加权合成向量s,加权求和公式如下:
[0054] s=∑αjhj
[0055] 其中,h1,h2,h3分别表示用户向量、文本向量以及交互向量。
[0056] 在决策层中使用了注意力机制,对文本特征、用户特征以及交互特征进行特征层面的加权评分,以此来表明不同特征的重要性差别,
[0057] 全连接层用于对加权合成向量s进行处理得到3维向量,其中每个元素表示文本属于反对、中立、赞成三种立场的概率。
[0058] S104:训练立场检测模型:
[0059] 将步骤S101中的拉普拉斯矩阵Lrw作为立场检测模型中GCN网络的邻接矩阵,随机生成文本数据集中每个用户的d维初始向量并作为行向量构成用户初始向量矩阵U,将用户
初始向量矩阵U和步骤S102得到的文本向量作为输入,文本向量所对应的立场标签向量作
为期望输出,对立场检测模型进行训练。
[0060] 本实施例在进行立场检测模型训练时,损失函数采用softmax交叉熵函数,最终的损失由立场检测任务的损失和正则化项相加构成,联合训练如下目标函数:
[0061] J=L+λLreg
[0062] 其中,L表示立场检测任务的交叉熵损失,Lreg表示L2‑范数正则化项,用于防止神经网络的过拟合,λ是超参数,用于平衡正则化项在整个目标函数中所占权重。
[0063] 训练过程中采用Adam算法优化损失函数,利用反向传播(BP)算法进行参数更新。同时为了防止过拟合,在最后的全连接层前加入了Droupout训练模型,最终学习到用户和
文本的低维向量表示和立场的向量表示之间的非线性映射函数。对于社交媒体上的文本,
可利用训练好的立场检测模型对其文本中的立场进行检测分类。
[0064] S105:文本立场检测:
[0065] 当需要对社交媒体平台用户所发布的文本进行立场检测时,首先获取社交媒体平台当前用户之间的关注列表与被关注列表,生成有向无环的用户社交关系图G′,构建邻接
矩阵A′和度矩阵D′并采用步骤S101中相同方法进行拉普拉斯矩阵变换得到拉普拉斯矩阵
rw′
L ;将所需进行立场检测的文本采用步骤S102中的相同方法得到d维的文本向量v′;
[0066] 将拉普拉斯矩阵Lrw′作为立场检测模型中GCN网络的邻接矩阵,随机生成用户社交关系图G′中各个用户的d维初始向量并作为行向量构成用户初始向量矩阵U′,将用户初始
向量矩阵U′和文本向量v′输入立场检测模型,得到立场检测结果。
[0067] 本实施例在Semval2016 Task6A数据集上与经典的立场检测方法进行了立场检测准确率的对比实验,该数据集中有约4,000条推特,每条推特属于一个话题,共有5个话题,
分别为Atheism(AT)、Climate Change is a real concern(CC)、Feminist Movement(FM)、
Hillary Clinton(HC)、Legalization of Abortion(LA)。每个推特有对于其中一个话题的
立场标签,共有三个立场标签,即赞成、反对和中立。所选择的对比方法包括基于TAN(注意
力机制网络)的文本立场检测方法,基于LSTM(长短期记忆网络)的文本立场检测方法和基
于CNN(卷积神经网络)的文本立场检测方法。表1是本实施例中本发明和3种对比方法对五
个话题的立场检测准确率对比表。
[0068]
[0069] 表1
[0070] 如表1所示,在五个话题中,本发明基于用户与文本表示学习的方法都接近甚至超过了以往方法的基线,尤其是在AT、CC与HC三个话题。证明了基于用户与文本表示学习的方
法提高了立场检测的准确率。
[0071] 尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技
术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些
变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。