一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于多头自注意力机制的在线问答社区专家推荐方法

2022-11-30 11:42:00 来源:中国专利 TAG:


1.本发明涉及智能推荐技术领域,特别涉及一种基于多头自注意力机制的在线问答社区专家推荐方法。


背景技术:

2.随着互联网的普及,在线问答社区成为重要的知识共享平台,然而,随着平台数据量的爆发式增长,如何将海量问题有效地推荐给专家用户得到解答是平台面临的严峻挑战。
3.常用的专家推荐方法主要有链接分析法和文本分析法。链接分析法是通过社区用户的问答关系发现专家,代表方法:网页排序法和超链接主题搜索法。文本分析法则是针对用户的解答记录进行建模,挖掘用户兴趣,计算兴趣标签和问题标签的匹配度,代表方法:概率潜在语义分析模型和潜在狄利克雷特分布主题模型。另外,一些工作将专家推荐问题转化为分类问题,利用机器学习中的决策树和支持向量机来解决问题,可以将多方面的特征应用于专家推荐。上述这些方法的缺点是:1.依赖人工构建的复杂特征质量,阻碍了推荐的可扩展性。2.难以学习到抽象的高阶特征交互信息。3.不能融入图像、文本等异构多源信息,数据挖掘不充分。
4.近年来,深度学习技术不断发展,其优势在于使机器像人类一样学习并处理复杂问题,通过深度网络结构提取高阶特征交互信息,无需手动构建复杂特征。而在深度学习方法的专家推荐应用中,最为流行的是卷积神经网络(cnn)和循环神经网络(rnn)。cnn擅长学习输入文本的上下文特征信息,利用cnn将用户兴趣和给定问题词嵌入特征表示,再通过软磁层输出结果,预测用户是否专家用户。rnn则是擅长处理时间序列特征,学习序列间的依赖关系,通过将用户历史解答信息抽象为序列信息,输入rnn中捕获用户的动态兴趣变化,该方法的代表模型有长短期记忆网络、门控循环网络等。上述方法的缺点为:1.忽略实际场景下的用户短期兴趣漂移,没有充分考虑用户的个性化需求,这会影响到推荐质量。2.rnn因其特有的顺序结构,只能逐个计算,不能并行计算,且容易丢失序列前端信息,影响到推荐的准确度。因此,现有的专家推荐方法往往忽略用户的动态兴趣变化,不能很好地提取动态兴趣特征,降低了推荐的准确度。


技术实现要素:

5.本发明要解决的技术问题,在于提供一种基于多头自注意力机制的在线问答社区专家推荐方法,通过多头自注意力机制提取用户的动态兴趣表征,根据用户的历史回答问题序列动态地捕捉用户的短期兴趣变化,为在线问答社区提供准确、个性、实时的专家推荐服务,提高问题解答率。
6.为了解决上述技术问题,本发明是这样实现的:
7.一种基于多头自注意力机制的在线问答社区专家推荐方法,包括:问题编码器构建过程、用户编码器构建过程、预测器构建过程、深度学习模型训练过程以及预测过程;
8.所述问题编码器构建过程包括:对问题进行特征编码,提取问题标题和问题主题中的信息作为问题标签,将其与专家用户的兴趣标签进行匹配;将数据集中的所有问题记录进行训练,构造出问题编码器;
9.所述用户编码器构建过程包括:对用户的历史回答问题序列和用户关注主题进行特征编码;利用多头自注意力机制从历史回答问题序列中提取用户的动态兴趣特征信息,再从用户关注主题中提取用户的静态兴趣特征信息,将用户的动态兴趣表示向量和静态兴趣表示向量进行拼接,获取用户的综合表示向量;
10.所述预测器构建过程包括:对给定的问题和邀请用户,通过计算目标问题的表示向量和邀请用户的综合表示向量的相似度,判断当前用户是否会接受该问题的邀请;
11.所述深度学习模型训练过程包括:采集问答社区的训练数据,通过用户-问题的邀请记录结合用户画像和用户回答记录以及问题的描述信息构建训练样本,样本标签标注为0或1,将专家识别问题转化为分类问题;利用训练样本对模型进行训练,获得训练后的模型;
12.所述预测过程包括:对给定的问题和邀请用户,通过训练后的模型计算目标问题的表示向量和邀请用户的表示向量的相似度,判断当前用户是否会接受该问题的邀请,从而产生专家推荐结果。
13.进一步地,所述问题编码器构建过程具体包括:
14.步骤a1、通过嵌入层,对问题的标题分词,并进行词嵌入表示,将其转换为隐含语义空间的词向量表示;
15.假设问题标题w中的词为w=[w1,w2,...w
l
],l代表w的长度,转化后的词向量表示为:
[0016]
w=embedding(w)=[w1,w2,

,w
l
]
[0017]
步骤a2、利用cnn捕捉局部语义信息学习上下文词的表示;
[0018]
假设隐含上下文词表示的标题词向量记为ci,其计算公式为:
[0019]ci
=relu(c
×w[i-m,i m]
b)
[0020]
其中,非线性激活函数relu(
·
)的公式为relu(x)=max(0,x),w
[i-m,i m]
指位于i-m和i m间的词嵌入连接,c和b是卷积神经网络的滤波器参数,m为1;
[0021]
步骤a3、通过注意力机制来分配标题词的权重;
[0022]
假设第i个词的注意力权重为ai,其计算公式为:
[0023]
αi=tanh(v
×ci
vb)
[0024][0025]
其中,tanh(
·
)函数公式为ai是注意力机制产生的中间变量,v和vb是可训练参数;
[0026]
问题标题的表征向量是由cnn所得的上下文词表示,经由注意力权重加权所得的,其计算公式为
[0027][0028]
步骤a4、对问题所属主题进行分词,并进行词嵌入表示,将其转换为隐含语义空间的词向量表示;
[0029]
假设问题主题t中的词为t=[t1,t2,...t
l
],l代表t的长度,转化后的词向量表示为:
[0030]
t=embedding(t)=[t1,t2,

,t
l
]
[0031]
步骤a5、对一个问题所属主题的词向量进行全局平均池化,获取平均词向量e
t
来表示该问题的主题信息,其计算公式为:
[0032]et
=v
gap
t
[0033]
步骤a6、对每个问题,执行上述步骤,产生该问题的标题和所属主题的向量表示,再通过向量拼接产生最终的问题向量表示e,如下式:
[0034]
e=[ew,e
t
]。
[0035]
进一步地,所述用户编码器构建过程具体包括:
[0036]
步骤b1、挖掘用户的历史回答问题序列信息,先将历史回答问题按时间先后排列;再利用上一节的问题编码器对序列中的每个问题进行处理,获取它们的问题向量表示;最后,得到序列e=[e1,e2,...,e
l
]
t
,l为序列长度;
[0037]
步骤b2、多头自注意力机制通过加入位置向量p=[p
(pos,0)
,p
(pos,1)
,...,p
(pos,2i)
,p
(pos,2i 1)
]
t
表示给序列中的问题表示向量添加时序信息,得到序列e'=[e1',e'2,...,e'
l
]
t
,其计算公式为:
[0038][0039]
e'=e p
[0040]
其中,pos是问题在序列中的位置,取值范围是[0,l],d
model
即位置向量维度;
[0041]
步骤b3、把序列e'输入多头自注意力机制网络结构来捕捉用户的动态兴趣变化,得到新的序列z=[z1,z2,...,z
l
]
t
,每一个输出元素zi都是输入元素ei经过多头自注意力机制学习到的用户动态兴趣表示向量ud;
[0042]
步骤b4、通过用户关注的主题学习用户的长期兴趣表示向量;
[0043]
从用户信息中提取用户关注主题d=[d1,d2,...,dj],j表示关注的主题数量,先获取词嵌入表示,再进行全局平均池化,得到用户的静态兴趣表示向量us,其计算公式为:
[0044][0045]
步骤b5、将用户的短期动态兴趣表示向量和长期静态兴趣表示向量进行拼接,获取用户的综合表示向量,如下式:
[0046]us d
=[us,ud]。
[0047]
进一步地,所述步骤b3中,多头自注意力机制网络包括多头自注意力网络层、第一残差连接和层标准化操作层,前馈神经网络层、第二残差连接和层标准化操作层以及全局
平均池化层;所述多头自注意力网络层包括h个并行计算的自注意力网络;将所得的序列矩阵全局平均池化,获得用户的动态兴趣表示向量ud。
[0048]
进一步地,所述预测器对给定的问题和邀请用户,通过计算目标问题q
x
的表示向量e
target
和邀请用户u
x
的综合表示向量u
s d
的相似度,判断当前用户是否会接受该问题的邀请,相似度计算公式为:
[0049]
score(u
x
,q
x
)=sigmoid(u
s dtetarget
)
[0050]
其中,sigmoid(
·
)函数的公式为其结果是取值范围在[0,1]的概率得分。
[0051]
本发明实施例中提供的技术方案,至少具有如下技术效果或优点:
[0052]
1、利用卷积神经网络和注意力机制对问题描述信息进行特征提取,卷积神经网络可以准确捕捉词的上下文信息,而注意力机制则对提取的特征赋予不同程度关注度。将两种方法结合构造问题编码器,既补充了预训练模型中遗忘的上下文信息,又强调了问题的重要信息,抑制了无关信息,提高了算法的准确性。
[0053]
2、采用多头自注意力机制处理用户的历史回答问题序列,动态地捕捉用户历史行为中所蕴含的兴趣变化的特征信息。该结构特性既避免了序列前端信息的丢失,又可以学习丰富的特征信息。另外,结合用户的长期关注主题对应的嵌入表示,作为用户的静态兴趣表征,构造了可有效提取用户动静态兴趣的用户编码器。
[0054]
3、使用预训练词嵌入模型获取问题主题和问题标题的词嵌入表示。将用户综合兴趣特征和目标问题特征进行点积运算,再通过全连接层获得相似度,产生推荐结果。
[0055]
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
[0056]
下面参照附图结合实施例对本发明作进一步的说明。
[0057]
图1为本发明方法的流程示意图;
[0058]
图2为本发明算法的总体框架示意图;
[0059]
图3为本发明问题编码器的结构示意图;
[0060]
图4为本发明用户编码器的结构示意图;
[0061]
图5为本发明多头自注意力机制网络结构示意图;
[0062]
图6为本发明多头自注意力层的并行结构示意图。
具体实施方式
[0063]
本发明实施例通过提供一种基于多头自注意力机制的在线问答社区专家推荐方法,通过多头自注意力机制提取用户的动态兴趣表征,根据用户的历史回答问题序列动态地捕捉用户的短期兴趣变化,为在线问答社区提供准确、个性、实时的专家推荐服务,提高问题解答率。
[0064]
本发明实施例中的技术方案,总体思路如下:
[0065]
针对用户的动态兴趣表征提取不足而导致的问答社区专家推荐准确度不足的问题,本发明提出了融合多头自注意力的问答社区专家推荐算法,其整体框架如图2所示,包含三个模块:问题编码器、用户编码器、预测器。在问题侧,采用卷积神经网络cnn和注意力机制attention相结合的方法来构造问题编码器,来处理目标问题和用户历史回答问题,从问题标题和问题主题中提取对应的问题表征。在用户侧,构造可以同时提取用户静态兴趣和动态兴趣表征的用户编码器,其核心网络层是能捕捉用户动态兴趣的多头自注意力机制层;根据用户历史回答问题序列,采用多头自注意力机制学习序列中所蕴含的动态兴趣表征,然后结合用户的静态兴趣表征,得到用户的综合兴趣表征。最后,通过预测器,将目标问题表征和用户综合表征进行相似性计算产生推荐结果。
[0066]
通过将问答社区的专家推荐问题定义为问题-用户的匹配问题,目标是通过训练集构建的模型获取问题-用户的匹配度,判断用户是否会接受某个问题的邀请。具体的问题描述为:假设q表示问题集合,u表示用户集合,问题样本表示为q
x
,用户样本表示为u
x
,给定问题-邀请用户对为[q
x
,u
x
],标签为y
x
∈{0,1},其中0表示用户未接收问题邀请,1表示为用户接收邀请并回答,n个训练样本[q
x
,u
x
,y
x
]即构成训练数据集,利用训练数据集构建模型f,并定义损失函数优化模型,判断用户是否会接受某个问题的邀请,即标签y
x
为0或为1。
[0067]
如图1所示,一种基于多头自注意力机制的在线问答社区专家推荐方法,包括:问题编码器构建过程、用户编码器构建过程、预测器构建过程、深度学习模型训练过程以及预测过程;
[0068]
所述问题编码器构建过程包括:对问题进行特征编码,提取问题标题和问题主题中的信息作为问题标签,将其与专家用户的兴趣标签进行匹配;将数据集中的所有问题记录进行训练,构造出问题编码器;
[0069]
所述用户编码器构建过程包括:对用户的历史回答问题序列和用户关注主题进行特征编码;利用多头自注意力机制从历史回答问题序列中提取用户的动态兴趣特征信息,再从用户关注主题中提取用户的静态兴趣特征信息,将用户的动态兴趣表示向量和静态兴趣表示向量进行拼接,获取用户的综合表示向量;
[0070]
所述预测器构建过程包括:对给定的问题和邀请用户,通过计算目标问题的表示向量和邀请用户的综合表示向量的相似度,判断当前用户是否会接受该问题的邀请;
[0071]
所述深度学习模型训练过程包括:采集问答社区的训练数据,通过用户-问题的邀请记录结合用户画像和用户回答记录以及问题的描述信息构建训练样本,样本标签标注为0或1,将专家识别问题转化为分类问题;利用训练样本对模型进行训练,获得训练后的模型;
[0072]
所述预测过程包括:对给定的问题和邀请用户,通过训练后的模型计算目标问题的表示向量和邀请用户的表示向量的相似度,判断当前用户是否会接受该问题的邀请,从而产生专家推荐结果。
[0073]
在一具体实施例中,各个过程的具体实现如下。
[0074]
一、问题编码器构建阶段
[0075]
1)通过嵌入层,对问题的标题分词,并进行词嵌入表示。将其转换为隐含语义空间的词向量表示。假设问题标题w中的词为w=[w1,w2,...w
l
],l代表w的长度,转化后的词向量表示为:
[0076]
w=embedding(w)=[w1,w2,

,w
l
]
ꢀꢀꢀ
(1)
[0077]
2)利用cnn捕捉局部语义信息学习上下文词的表示。假设隐含上下文词表示的标题词向量记为ci,其计算公式为:
[0078]ci
=relu(c
×w[i-m,i m]
b)
ꢀꢀꢀ
(2)
[0079]
其中,非线性激活函数relu(
·
)的公式为relu(x)=max(0,x),w
[i-m,i m]
指位于i-m和i m间的词嵌入连接,c和b是卷积神经网络的滤波器参数,m为1。
[0080]
3)通过注意力机制来分配标题词的权重。在一个问题标题中,不同的词有不同的信息量来代表问题。假设第i个词的注意力权重为ai,其计算公式为:
[0081]
αi=tanh(v
×ci
vb)(3)
[0082][0083]
其中,tanh(
·
)函数公式为ai是注意力机制产生的中间变量,v和vb是可训练参数。
[0084]
问题标题的表征向量是由cnn所得的上下文词表示ci,经由注意力权重ai加权所得的ew,其计算公式为:
[0085][0086]
4)对问题所属主题进行分词,并进行词嵌入表示,将其转换为隐含语义空间的词向量表示。假设问题主题t中的词为t=[t1,t2,...t
l
],l代表t的长度,转化后的词向量表示为:
[0087]
t=embedding(t)=[t1,t2,...,t
l
]
ꢀꢀꢀ
(6)
[0088]
5)对一个问题所属主题的词向量进行全局平均池化,获取平均词向量e
t
来表示该问题的主题信息,其计算公式为:
[0089]et
=v
gap
t
ꢀꢀꢀ
(7)
[0090]
6)对每个问题,执行上述步骤,产生该问题的标题和所属主题的向量表示,再通过向量拼接产生最终的问题向量表示e,如公式(8)所示:
[0091]
e=[ew,e
t
]
ꢀꢀꢀ
(8)
[0092]
构建问题编码器的总体流程如图3所示。
[0093]
二、用户编码器构建阶段
[0094]
1)挖掘用户的历史回答问题序列信息,先将历史回答问题按时间先后排列;再利用上一节的问题编码器对序列中的每个问题进行处理,获取它们的问题向量表示;最后,得到序列e=[e1,e2,...,e
l
]
t
,l为序列长度。
[0095]
2)多头自注意力机制通过加入p=[p
(pos,0)
,p
(pos,1)
,...,p
(pos,2i)
,p
(pos,2i 1)
]
t
这种位置向量表示给序列中的问题表示向量添加时序信息,得到序列e'=[e1',e'2,...,e'
l
]
t
,其计算公式为:
[0096]
[0097]
e'=e p
ꢀꢀꢀ
(10)
[0098]
其中,pos是问题在序列中的位置,取值范围是[0,l],d
model
即位置向量维度。
[0099]
3)把序列e'输入多头自注意力机制网络结构来捕捉用户的动态兴趣变化,得到新的序列z=[z1,z2,...,z
l
]
t
,每一个输出元素zi都是输入元素ei经过多头自注意力机制学习到的用户动态兴趣表示。如图5所示,多头自注意力机制网络实施例的结构包括了多头自注意力网络层(multi-head self-attention network layer,mha)、第一残差连接(residual connection)和层标准化(layer normalization)操作层、前馈神经网络层(feed forward neural network layer,ffn)、第二残差连接和层标准化操作层以及全局平均池化层;其中,将残差连接和层标准化操作层其简记为add&norm层。
[0100]
1多头自注意力网络层(mha)
[0101]
mha层是由h个并行计算的自注意力(self attention)网络组成的,如图6所示。
[0102]
a.首先初始化三个权重矩阵wq、wk、wv,它们会随着模型训练优化和更新,将权重矩阵分别与矩阵e'相乘,计算得到矩阵q、k、v,其公式为:
[0103]
q=e'wqꢀꢀꢀ
(11)
[0104]
k=e'wkꢀꢀꢀ
(12)
[0105]
v=e'wvꢀꢀꢀ
(13)
[0106]
其中,q表示查询矩阵,k表示键矩阵,v表示值矩阵,矩阵的每一行分别对应矩阵e'的每个问题表示向量的“查询”、“键”、“值”向量,q和k的维度相等。
[0107]
b.计算每个头的自注意力输出headi,其计算公式为:
[0108][0109]
其中,softmax(
·
)函数的作用是将矩阵进行归一化处理,为缩放因子,作用是使得归一化的结果更稳定,其大小为k的维度。
[0110]
c.并行地进行h次自注意力的计算,h表示头数,将每个头得到的自注意力矩阵拼接在一起,再乘以权重矩阵wy得到最终矩阵y,其计算公式为:
[0111]
y=mha(e')=concat(head1,head2,

,headh)wyꢀꢀꢀ
(15)
[0112]
其中,concat(
·
)函数的作用是将所有自注意力输出矩阵横向拼接,wy是线性变换矩阵。
[0113]
2第一add&norm层
[0114]
add操作:
[0115]
e' mha(e')
ꢀꢀꢀ
(16)
[0116]
layer normalization操作:
[0117]
y'=layernorm(e' mha(e'))
ꢀꢀꢀ
(17)
[0118]
3前馈神经网络层(ffn)
[0119]
经过第一个全连接层使用relu(
·
)激活函数,其计算公式为:
[0120]
f1=max(0,y'*w
y'
b
y'
)
ꢀꢀꢀ
(18)
[0121]
经过第二个全连接层不使用激活函数,其计算公式为
[0122][0123]
其中,w
y'
和b
y'
为第一个全连接层的权重矩阵和偏置,是可训练参数,而和是第二个全连接层的权重矩阵和偏置,也是可训练参数。
[0124]
4第二个add&norm层
[0125]
add操作:
[0126]
e' ffn(y')
ꢀꢀꢀ
(20)
[0127]
layer normalization操作:
[0128]
z=layernorm(e' ffn(y'))
ꢀꢀꢀ
(21)
[0129]
最后,将所得的序列矩阵z全局平均池化,获得用户的动态兴趣表示向量ud,其计算公式为:
[0130][0131]
4)用户关注的主题可以学习用户的长期兴趣表示。从用户信息中提取用户关注主题d=[d1,d2,...,dj],j表示关注的主题数量,先利用公式(6)获取词嵌入表示d=[d1,d2,...,dj],再利用公式(7)全局平均池化,得到用户的静态兴趣表示us,其计算公式为:
[0132][0133]
5)将用户的短期动态兴趣表示向量和长期静态兴趣表示向量进行拼接,获取用户侧的最终表示向量,如公式(24)所示。
[0134]us d
=[us,ud]
ꢀꢀꢀ
(24)
[0135]
构建用户编码器的总体流程如图4所示。
[0136]
三、预测器构建阶段
[0137]
对给定的问题和邀请用户,通过计算目标问题q
x
的表示向量e
target
和邀请用户u
x
的表示向量u
s d
的相似度,判断当前用户是否会接受该问题的邀请。相似度计算公式为:
[0138]
score(u
x
,q
x
)=sigmoid(u
s dtetarget
)
ꢀꢀꢀ
(25)
[0139]
其中,sigmoid(
·
)函数的公式为其结果是取值范围在[0,1]的概率得分。
[0140]
四、深度学习模型训练阶段
[0141]
1)采集问答社区的训练数据,通过用户-问题的邀请记录结合用户画像和用户回答记录以及问题的描述信息构建训练样本,样本标签标注为0或1,将专家识别问题转化为分类问题,通过所提出的基于多头自注意力机制的cqa专家推荐方法进行智能处理。
[0142]
2)利用该模型对训练样本进行训练,获得训练后的模型。模型参数设置为:词向量的嵌入维度为64维。cnn的过滤器数量为64,窗口滑动步长为1,窗口大小为3。多头自注意力网络设置为单层结构,有2个head,嵌入矩阵e大小为6
×
64。在最终的预测器模块中,全连接层结构为4层,其神经元节点大小逐层递减,分别为1024、512、256、128。批处理大小设置为2048,损失函数采用二元交叉熵,学习率为0.00001。
[0143]
五、预测阶段
[0144]
对给定的问题和邀请用户,通过训练后的模型计算目标问题的表示向量和邀请用
户的表示向量的相似度,判断当前用户是否会接受该问题的邀请,从而产生专家推荐结果。
[0145]
本发明利用卷积神经网络和注意力机制对问题描述信息进行特征提取,卷积神经网络可以准确捕捉词的上下文信息,而注意力机制则对提取的特征赋予不同程度关注度。将两种方法结合构造问题编码器,既补充了预训练模型中遗忘的上下文信息,又强调了问题的重要信息,抑制了无关信息,提高了算法的准确性;采用多头自注意力机制处理用户的历史回答问题序列,动态地捕捉用户历史行为中所蕴含的兴趣变化的特征信息。该结构特性既避免了序列前端信息的丢失,又可以学习丰富的特征信息。另外,结合用户的长期关注主题对应的嵌入表示,作为用户的静态兴趣表征,构造了可有效提取用户动静态兴趣的用户编码器;使用预训练词嵌入模型获取问题主题和问题标题的词嵌入表示。将用户综合兴趣特征和目标问题特征进行点积运算,再通过全连接层获得相似度,产生推荐结果。
[0146]
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献