CN110188272B - 一种基于用户背景的社区问答网站标签推荐方法 - Google Patents
一种基于用户背景的社区问答网站标签推荐方法 Download PDFInfo
- Publication number
- CN110188272B CN110188272B CN201910445656.7A CN201910445656A CN110188272B CN 110188272 B CN110188272 B CN 110188272B CN 201910445656 A CN201910445656 A CN 201910445656A CN 110188272 B CN110188272 B CN 110188272B
- Authority
- CN
- China
- Prior art keywords
- text
- user
- question
- vector
- influence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000007246 mechanism Effects 0.000 claims abstract description 20
- 239000013598 vector Substances 0.000 claims description 90
- 238000012549 training Methods 0.000 claims description 34
- 238000005070 sampling Methods 0.000 claims description 20
- 239000011159 matrix material Substances 0.000 claims description 16
- 238000002360 preparation method Methods 0.000 claims description 16
- 238000007781 pre-processing Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 10
- 230000006399 behavior Effects 0.000 claims description 9
- 230000004913 activation Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000003062 neural network model Methods 0.000 abstract description 6
- 230000000694 effects Effects 0.000 abstract description 5
- 238000013528 artificial neural network Methods 0.000 abstract description 4
- 238000013135 deep learning Methods 0.000 abstract description 3
- 230000007547 defect Effects 0.000 abstract description 3
- 230000000306 recurrent effect Effects 0.000 abstract description 2
- 230000003068 static effect Effects 0.000 abstract 1
- 238000012360 testing method Methods 0.000 description 10
- 238000000605 extraction Methods 0.000 description 7
- 230000006872 improvement Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 210000004027 cell Anatomy 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000011158 quantitative evaluation Methods 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种基于用户背景的社区问答网站标签推荐方法。综合考虑了待推荐问题文本信息和用户背景信息及两者的关联性,将标签推荐问题建模为一个基于深度学习的多分类预测问题。方法的核心是深度神经网络模型PcTagger,通过动态建模用户背景信息,解决了已有个性化标签推荐方法中存在的用户背景静态建模难以匹配不同推荐任务的不足。模型主要包括:1)基于循环神经网络和注意力机制的文本特征建模;2)基于用户历史提问记录的用户背景影响动态建模;3)融合文本特征和用户背景影响的标签推荐。在真实数据集上的实验结果显示,与已有的同类标签推荐方法相比,本方法能够显著提高预测精度。
Description
技术领域
本发明涉及一种基于用户背景的社区问答网站标签推荐方法,属于文本标签推荐技术领域。本发明利用序列化的文本内容,以及从用户历史行为中提取的用户背景影响,基于深度神经网络模型,提升了社区问答网站问题标签的推荐精度,有效改善了针对新问题的标签推荐效果。
背景技术
互联网的发展使知识的交流和分享变得方便快捷。以Stackoverflow为代表的社区问答网站为广大技术人员提供了交流问题、分享方法的平台,极大地提升了学***台的用户都不同程度地面临信息过载问题,如答案检索困难、问题难以引起关注等。信息过载问题严重影响社区总体活跃度和用户使用体验。为缓解信息过载问题,各平台通常引入标签机制对内容进行索引,并且会自动为用户推荐一定数量的标签。
针对社区问答网站问题的标签推荐属于基于文本内容的标签推荐。在已有的文本标签推荐方法中,一类是基于LDA模型的方法。这类方法使用LDA模型及其变体,基于文本内容计算其主题分布情况,然后根据主题分布计算候选标签被推荐的概率。已有方法中还有一类是基于深度学习的方法。这类方法首先将输入文本离散化表示,然后用特定的深度神经网络模型处理,得到文本的高阶语义特征,最后根据高阶语义特征推荐标签。总的来说,这两类方法都是直接根据文本语义特征推荐标签,诸多已有的工作尝试尽可能地提升语义特征提取的精确度。
然而,单纯的基于文本内容的方法还不足以推荐高质量的标签。首先由于社区问答网站的文本内容的长度是有限的,并且用户在表述问题时极有可能会省略技术领域等信息,所以单纯从文本内容无法得知这一类型的信息,也就无从推荐与此相关的标签。其次,文本歧义性可能造成同一段文本对应多个可能的标签。如在不同的技术领域存在共有的关键词,当关键词出现时可能无法判断所属技术领域,从而产生歧义。所以还有一些标签推荐方法试图引入用户个性化信息。如建立用户的个性化标签列表或从用户历史信息中提取出某种表示作为用户个性化表示。但是这种方式存在用户个性化信息固定,在面对多变的待推荐内容时不能准确反映用户背景的影响。
发明内容
发明目的:已有方法存在用户个性化信息表示固定,面对不同的待推荐内容时无法反映出不同的历史影响,所以提取出的用户背景信息灵活性不足,造成推荐精度低,难以满足实际需求。
针对现有技术中存在的问题与不足,本发明综合考虑待推荐问题的文本信息和当前用户的个性化背景信息,提出了一种新的用户背景影响建模方法。首先从用户的历史记录中采样出一定数量的问题,保存问题的文本及其对应的标签。随后使用相同的文本特征提取模型提取出当前问题文本和采样问题文本的表示,计算两者之间的相关性,并将其映射为一系列权重。然后根据相关性权重将采样问题所包含标签的离散化表示向量加权求和,得到用户背景信息的影响向量。
用户背景提取模型和文本特征提取模型共同组成一个新的标签推荐模型PcTagger。PcTagger结合当前问题文本特征和用户背景信息影响向量给出可能被使用的标签。
技术方案:本发明建立了一个新的针对问答社区问题的标签推荐模型PcTagger。该模型基于深度神经网络,能够准确提取问题的文本特征表示,同时根据当前问题文本与用户历史的相关性动态获取用户个人背景对当前推荐行为的影响向量。融合文本特征向量和历史影响向量,模型为当前问题推荐合适的标签。
一种基于用户背景的社区问答网站标签推荐方法,包括数据准备、模型训练和标签推荐三个阶段;数据准备阶段用于统计数据集中各用户的提问记录,并随机采样一定数量的提问记录作为用户背景信息建模的依据,是进行后续两个阶段的先决条件;训练阶段通过从数据集中已有的提问记录的问题文本和对应标签中学习模型参数,确定模型,命名为PcTagger;标签推荐阶段由已建立的PcTagger模型接受新的问题文本和对应的用户编号作为输入,输出候选的标签列表。
进行数据准备阶段时,首先进行预处理,将问题文本信息处理为单词序号列表的形式,供后续步骤使用。
在预处理完成后,开始数据准备阶段;数据准备阶段的操作包括整理各用户的历史提问记录,对于每个用户从历史提问记录中随机采样出一部分,从数据集中删除被采样的部分;假设数据集中用户u的历史提问记录为集合Hu,从历史提问记录中随机采样一部分保存,记为保存的内容包括被采样的问题文本及问题对应的标签集由于已被采样的样本不参与训练,则对于每一个用户,训练步骤实际使用的数据集为
训练阶段确定的模型包括四个模块:输入、内容建模模块、用户背景影响建模模块以及预测输出;模型的输入包括当前待推荐问题文本和用户id;内容建模模块根据问题文本提取文本特征;用户背景影响建模模块建模用户背景信息对当前推荐的影响,并得到一个量化的影响向量;预测输出模块结合内容建模模块和用户背景影响建模模块的输出给出候选标签。
(1)内容建模模块
内容建模模块接受经过预处理的文本序列,能够提取出文本内容的高层语义特征。该模块主要基于长短程记忆单元网络(LSTM)和注意力机制。
在数据预处理阶段,已经将文本内容处理为词汇序号序列;进一步将单词表示为嵌入向量,则每一段输入文本可以表示为:
Q=[x1,x2,...,xN]
其中,xi∈Rd为文本序列中第i个单词的嵌入向量,N为文本序列的最大长度;接下来使用LSTM提取文本内容的语义特征;经过LSTM处理初步得到文本的语义特征:
q′=[h1,h2,...,hN]
ht∈Rd为文本序列中第t个单词位置对应的LSTM单元的输出向量。
为了进一步提升文本语义特征的准确性,引入注意力机制;注意力机制接受经过初步处理的文本语义信息作为输入,输出文本总体表征;注意力机制包含一系列参数,在训练过程中能够自主地为在语义上更重要的部分分配更多的权重,从而使这些部分在总体表征中有更大的影响;
使用注意力机制提取高层语义特征的过程可以表示为:
H=tanh(Whq′)
a=softmax(WHH+bH)
其中,q∈Rd是最终的文本语义特征向量。H是q′经过激活函数tanh处理之后的中间变量。a={ai|i=1,2…N},ai则是表征文本序列中每个单词的语义在文本整体语义中重要性的权重值。参数矩阵Wh,WH以及偏置参数bH能够分别对q′和H进行线性变换,都是待训练的参数。
可知对于每一个输入文本序列,内容建模模块都会输出一个相应的文本语义的总体表征。
(2)用户背景信息影响建模模块
为数据集中的每一个用户分配了一系列的记忆单元,用于保存在数据准备阶段被抽样的若干用户提问文本及问题对应的标签集为建模用户背景信息的影响,首先应用内容建模模块提取历史提问的文本特征,随后衡量当前待推荐文本与历史文本间的相似性;最后根据相似性计算出一系列的权重值,并基于权重定义加权求和的操作求得一个历史影响向量。
对于每个问题对应的标签集首先将标签用嵌入向量表示。则每个标签集对应的表示可以写作:其中Nt是标签集的最大标签个数。由于每个文本所对应的标签数量可能是不同的,故在得到嵌入表示后增加一个注意力机制,将标签集对应的多个向量综合为单个向量;计算过程总结如下:
Ht=tanh(Wtti)
at=softmax(WHtHt+bHt)
得到了被采样的历史提问记录所对应的影响向量之后,还需要得到每个影响向量所对应的影响因子;利用采样文本与当前文本的语义相似性计算对应的影响权重;定义一个历史文本与当前文本的相似性向量:
其中⊙表示元素乘法,即将两个等长向量的元素的依次乘积作为结果向量对应位置的元素;si则可以被视为衡量当前待推荐问题与历史提问之间语义关联程度的向量。
将所有被采样问题对应的关联程度向量结合起来形成相似性矩阵:
s=[s1,s2,...,sL]
基于矩阵s使用softmax激活函数,便可映射得到一组权重,代表各个历史提问对当前推荐行为的影响程度:
最后,在得到历史记录对应的影响向量和影响程度权重之后,可以通过一个加权求和的操作得到用户背景信息对当前推荐行为的总体影响向量:
是向量as的第i个元素,表示第i个历史记录对当前推荐行为的相对重要性。影响向量t反映了用户背景信息对当前问题的标签推荐的影响;该向量是由对应历史记录的标签嵌入向量组合而成的,在组合的过程中考虑当前问题与历史提问的相似性,从而动态地建模用户背景信息影响,使其能够根据待推荐问题的具体内容做出调整。
(3)融合信息与预测
利用问题内容建模模块和用户背景信息影响建模模块,得到了内容特征向量q和用户背景信息影响向量t。将二者结合得到当前问题的整体特征p,可以直接用来进行推荐:
p=Concat(q,t)
y=softmax(Wpp+bp)
其中,Concat()表示拼接操作,即将两向量首尾相连接拼合成一个向量。Wp和bp是可训练参数。y为一个由概率值组成的向量,表示相应的候选标签被推荐给当前问题文本的概率。在输出时,将y中概率值最大的K个值对应的标签提供给用户作为备选标签。
在训练过程中,问题对应的标签是已知的,采用多位有效编码(multi-hotencoding)表示,表示有哪些标签被发布者使用了。在预测阶段,得到每个新问题文本对应的标签概率分布之后,按照概率值排序,选择概率值最大的K个标签作为备选标签。
针对技术问答网站的标签推荐具有重要应用价值。已有的标签推荐方法在用户个性化背景信息建模上存在灵活性不足的缺陷,限制了标签推荐精度的提升。为克服该问题,本发明提出了一种新的用户背景影响提取模型——根据当前待推荐问题文本与用户历史提问文本的内容相关性,动态建模用户背景的影响。结合答题推荐问题文本的语义高层次特征,提出了一个端到端的一体化标签推荐模型PcTagger。将新方法应用到真实世界数据集的实验表示,新方法在预测精度上全面超越了已有方法。
附图说明
图1为本发明方法的工作流程图;
图2为基于用户背景的社区问答网站标签推荐模型的总体架构示意图;
图3为用户背景影响建模模块网络结构示意图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
一种基于用户背景的社区问答网站标签推荐方法,主要分为数据准备、模型训练和标签推荐三个阶段。数据准备阶段的主要任务是用户历史记录采样,统计数据集中各用户的提问记录,从中随机采样一定数量的历史提问保存在记忆单元中。训练阶段建立网络结构,在数据集上训练模型参数,确定PcTagger模型。标签推荐阶段由已建立的PcTagger模型接受新的问题文本和对应的用户编号作为输入,输出候选的标签列表。
附图1是本发明方法的大致流程。其中左侧是训练步骤,而右侧是标签推荐步骤。需要说明的是,数据预处理步骤对于训练步骤和标签推荐步骤都是相同的,用户历史采样后保存在记忆单元中的数据由训练和推荐阶段共用。下面将根据流程图介绍方法使用时的具体细节。
(1)数据预处理
数据预处理阶段主要目的是将问题文本序号化,即将文本处理为单词序号列表的形式,供后续步骤使用。首先将数据集中出现的所有词汇做词频统计,得到一个词典,然后依次将所有数据样例中的词汇替换为其对应的编号。如在某问题文本中包含片段“differences between Tensorflow and PyTorch”。假设词典为:
{“python”,“and”,“tensorflow”,“pytorch”,“differences”,“between”}
则问题文本的序号化表示可以写作:
Q=[4,5,2,1,3]
注意到文本中的大写字母开头的词汇在词典中都转换为了小写字母,该操作可以减小词典规模,是自然语言处理中常见做法。
需要指出的是,上述数据预处理过程是针对本发明中牵涉的所有文本数据的,不管是被抽样的用户历史提问文本、训练集文本,抑或是用于测试的问题文本。对于这些数据,预处理流程都是相同的
(2)用户历史采样
在预处理完成后,可以开始数据准备阶段。数据准备阶段的操作包括整理各用户的历史提问记录,对于每个用户从历史提问记录中随机采样出一部分并保存在记忆单元中,从数据集中删除被采样的部分,以避免在训练时重复使用提问记录。假设数据集中用户u的历史提问记录为集合Hu,从历史提问记录中随机采样一部分保存,记为保存的内容包括被采样的问题文本及问题对应的标签集由于已被采样的样本不参与训练,则对于每一个用户,训练步骤实际使用的数据集为
需要指出的是,对用户历史记录进行采样时可以采用多种采样策略,如均匀随机采样以及考虑历史提问时序的采样。本申请书中采用的是面向用户的均匀随机采样,采用其他采样策略同样属于本申请所要求的权利范围。
(3)模型训练
训练模型前首先需要建立模型。本发明所提出的模型总体架构如图2所示。模型包括四个模块:输入、内容建模模块、用户背景影响建模模块以及预测输出。模型的输入包括当前待推荐问题文本和用户id。利用内容建模模块提取问题文本特征。利用用户背景影响建模模块建模用户背景信息对当前推荐的影响,得到量化的影响向量。将问题文本特征和影响向量结合输入预测输出模块中,经过计算给出候选标签列表。
在数据预处理阶段,已经将文本内容处理为单词编号的序列。进一步将单词表示为嵌入向量,则每一段输入文本可以表示为:
Q=[x1,x2,...,xN]
其中,xi∈Rd为文本序列中第i个单词对应的嵌入向量,N为文本序列的最大长度。接下来使用LSTM提取文本内容的语义特征。LSTM网络是一种循环神经网络结构,即上一个网络单元的输出作为下一单元的一部分输入。则对于某一个单元的输出ht有:
ht=LSTM(ht-1,xt)
LSTM网络单元中包括一些独特的门控设计,其所包含的计算如下:
it=σ(Wi·[ht-1,xt]+bi)
ft=σ(Wf·[ht-1,xt]+bf)
ot=σ(Wo·[ht-1,xt]+bo)
ct=ftct-1+ittanh(Wc·[ht-1,xt]+bc)
ht=ottanh(ct)
其中中间参数it,ft,ot分别为单元中的输入门、遗忘门和输出门的控制参数。ct是一个中间数据。Wi,Wf,Wo,Wc是可训练的参数矩阵,bi,bf,bo,bc则是与各参数矩阵配合使用的偏置参数。
经过LSTM处理初步得到文本的语义特征:
q′=[h1,h2,...,hN]
为了进一步提升文本语义特征的准确性,我们引入注意力机制。注意力机制接受经过初步处理的文本语义信息作为输入,输出文本总体表征。注意力机制包含一系列参数,在训练过程中能够自主地为在语义上更重要的部分分配更多的权重,从而使这些部分在总体表征中有更大的影响。使用注意力机制提取高层语义特征的过程可以表示为:
H=tanh(Whq′)
a=softmax(WHH+bH)
其中,q∈Rd是文本序列最终的语义表示向量。H是q′经过激活函数tanh处理之后的中间变量。ai是第i个单词对应的语义特征的相对重要性权重。参数矩阵Wh,WH以及偏置参数bH能够分别对q′和H进行线性变换,都是待训练的参数。
可知对于每一个输入文本序列,内容建模模块都会输出一个相应的文本语义的总体表征。
为建模用户背景影响,首先应用上述的内容建模模块提取历史提问的文本特征,随后衡量当前待推荐文本与历史文本间的相似性。最后根据相似性计算出一系列的权重值,并基于权重定义加权求和的操作求得一个历史影响向量。建模用户背景影响的网络结构如图3所示。
对于每个问题对应的标签集我们首先将标签用嵌入向量表示。则每个标签集对应的表示可以写作:其中Nt是标签集的最大标签个数。由于每个文本所对应的标签数量可能是不同的,故在得到嵌入表示后增加一个注意力机制,将标签集对应的多个向量综合为单个向量。计算过程总结如下:
Ht=tanh(Wtti)
at=softmax(WHtHt+bHt)
其中与前述注意力机制的变量含义相似,Ht是经激活函数处理的中间变量。是表征标签序列中每个标签的表示向量相对重要性的权重值。Wt,WHt是可训练的深度神经网络模型权重参数,bHt是可训练的偏置参数,用来对向量ti和Ht进行线性变换。
得到了被采样的历史提问记录所对应的影响向量之后,还需要得到每个影响向量所对应的影响因子。我们利用采样文本与当前文本的语义相似性计算对应的影响权重。定义一个历史文本与当前文本的相似性向量:
其中⊙表示元素乘法,即将两个等长向量的元素的依次乘积作为结果向量对应位置的元素。si则可以被视为衡量当前待推荐问题与历史提问之间语义关联程度的向量。
将所有被采样问题对应的关联程度向量结合起来形成相似性矩阵:
s=[s1,s2,...,sL]
基于矩阵s使用softmax激活函数,便可映射得到一组权重,代表各个历史提问对当前推荐行为的影响程度:
最后,在得到历史记录对应的影响向量和影响程度权重之后,可以通过一个加权求和的操作得到用户背景信息对当前推荐行为的总体影响向量:
是向量as的第i个元素,表示第i个历史记录的相对重要性。影响向量t反映了用户背景信息对当前问题的标签推荐的影响。该向量是由对应历史记录的标签嵌入向量组合而成的,在组合的过程中考虑当前问题与历史提问的相似性,从而动态建模用户背景信息的影响,使其能够根据待推荐问题的具体内容做出调整,克服了已有个性化方法用户个性化信息建模缺乏灵活性的问题。
利用问题内容建模模块和用户背景影响建模模块,得到了内容特征向量q和用户背景信息影响向量t。将二者结合得到当前问题的整体特征p,可以直接用来进行推荐:
p=Concat(q,t)
y=softmax(Wpp+bp)
其中,Concat()表示拼接操作,即将两向量首尾相连接拼合成一个向量。Wp和bp是可训练参数。y为一个由概率值组成的向量,表示相应的候选标签被推荐给当前问题文本的概率。在输出时,将y中概率值最大的K个值对应的标签提供给用户作为备选标签。
定义训练损失函数如下:
其中,S表示训练数据集,(Qi,Ti)表示在数据集中存在的问题-标签集对,z则表示标签集中存在的标签,P(z|Qi)是指在给定问题文本Qi时推荐标签z的概率。损失函数的目标是最大化所有在训练集中出现的标签的预测概率之积。
在训练过程中,问题对应的标签是已知的,采用多位有效编码(multi-hotencoding)表示,表示有哪些标签被发布者使用了。在预测阶段,得到每个新问题文本对应的标签概率分布之后,按照概率值排序,选择概率值最大的K个标签作为备选标签。
(4)标签预测精度量化测评
为测评本发明所述方法的实际预测效果,我们在真实数据集上进行了一系列实验。我们从程序员技术问答网站StackOverflow上收集一个数据集并在该数据集上进行实验。我们搜集的信息包括问题标题、问题正文、问题标签、提问者id。数据开源网址为https://stackoverflow.blog/tags/cc-wiki-dump/。我们下载数据集并从中随机抽取一部分数据进行预处理。
在预处理时将问题标题和问题正文合并作为问题文本,依次将文本内容分词、词根化,仅保留文本长度不小于25的问题。保留在数据集中的问题标签数量至少为1。被保留的提问者在数据集中包括至少30个历史提问记录。同时去除出现频率过小的单词和标签。保留的词典规模为53,000。最终的数据集的部分统计数据如表1所示。
在采样用户历史提问记录时,采样数目为5,并从数据集中删除被采样的数据子集。进一步在剩余的数据集中划分训练集、测试集和验证集。具体做法是,随机将数据集的10%选作测试集,剩余的数据中再随机抽取10%作为验证集(9%),其余所有数据作为训练集(81%)。需要指出的是,为保证每个用户在三个数据集中都有被采样的问题,采样、划分都是以用户为单位做的,而非将全部数据一起操作。
在数据集准备完毕后,可以开始模型的训练和测试步骤。我们按照上面描述的步骤建立预测模型,在训练数据集上训练调整模型参数,在验证数据集上判断模型训练的进度。由于模型属于深度神经网络模型,有许多常用的深度学习做法是领域内常用的,这些做法与本发明的主要创新点无关,所以在上边的技术方案和建模步骤中没有叙述。首先是在建立模型时使用Dropout策略,该策略随机地在网络层中遮蔽一定比例的神经元的输出,能够用来提升神经网络模型的泛化能力。其次,在训练时使用Adam优化算法调整参数,Adam算法是常用的参数优化算法之一,主要特点是收敛快、效果好。另外还有其他的一些模型的超参数,如学习率、Dropout比例、批规模大小等。这些超参数虽同样与本发明的主要创新性无关,但对模型的性能有较大影响,特将之总结在表2中。
当验证集上的模型损失值变化很小时,可以判定模型已训练至收敛。模型收敛后,便可固定模型参数,确定模型。然后用模型在测试数据集上进行预测,输出并保存测试数据对应的备选标签列表。在对模型进行量化测评时,我们选用命中率(Hit rate)、准确率(Precision)、查全率(Recall)和F1score作为评价指标。
命中率指标代表模型推荐标签包含用户实际使用标签的比例。对于每个测试样本,模型会输出K个备选标签,若备选标签中存在至少一个用户实际使用的标签,则记一次命中(hit)。假设测试集中包含N个样本,命中次数为n,则在输出K个备选标签时的命中率HitRate@K定义为:
另外三个指标的定义依赖于推荐结果的混淆矩阵。表3所示为一个混淆矩阵中各元素的含义。准确率指标代表模型推荐的标签中有多大比例是测试集中实际出现过的。用混淆矩阵元素表示输出K个备选标签时的准确率Precision@K可以写作:
查全率指标代表模型推荐的标签覆盖了多大比例测试集中实际出现的标签。用混淆矩阵元素表示输出K个备选标签时的查全率Recall@K可以写作:
准确率表示推荐的标签中有多少是用户真正使用的,查全率则表示用户真正使用的标签有多少被推荐出来。两项指标相互矛盾,通常具有相反的变化趋势。F1score则是对准确率指标和查全率指标的综合,能够对模型性能有一个直观的量化评价。F1@K定义为:
我们选择了三种同类任务的方法与本发明方法进行比较,分别是TagSpace方法,Tag2Word方法,TLSTM方法。其中TagSpace方法于2014年提出,从分类任务的角度解决标签推荐问题,采用CNN提取文本语义特征。Tag2Word方法基于一种改进的LDA模型提取文本内容的主题,基于文本主题分布进行标签推荐。TLSTM则将基于LSTM的深度神经网络和利用LDA模型提取的文本主题分本结合起来,基于两部分信息共同推荐。
对于PcTagger方法、TagSpace方法、Tag2Word方法和TLSTM方法,改变推荐的备选标签数目K,分别计算了三组量化指标:K=1,K=3,K=5。三组量化指标分别记录在表4、表5和表6中。从表中数据不难看出,PcTagger方法要优于所有对比方法,在K取1、3、5时,数据对比都具有类似的情况,故以K=3为例进行分析。
首先当K=3时,PcTagger的推荐命中率已经达到了0.8939,即当模型输出3个候选标签时有近90%的概率包含至少一个用户想要使用的标签。在与同类方法对比时,可以发现相对于表现最好的对照方法TLSTM,在命中率上的相对提升为3.5%,在预测准确率上的相对提升为5.8%,在查全率上的相对提升为15.7%,在F1分数上的相对提升为4.5%。对于另外两种对照方法而言,模型的推荐精度提升更加的显著。可以得出结论,与已有方法相比,新方法可以显著提升标签推荐精度。
附表:
表1实验数据集的部分统计数据
表2模型的超参数设置
表3分类结果混淆矩阵
表4 推荐Top 1时各方法的量化指标比较
表5 推荐Top 3时各方法的量化指标比较
表6 推荐Top 5时各方法的量化指标比较
Claims (5)
1.一种基于用户背景的社区问答网站标签推荐方法,其特征在于,包括数据准备、模型训练和标签推荐三个阶段;数据准备阶段用于统计数据集中各用户的提问记录,并随机采样一定数量的提问记录作为用户背景信息建模的依据;训练阶段通过从数据集中已有的提问记录的问题文本和对应标签中学习模型参数,确定模型;标签推荐阶段由已建立模型接受新的问题文本和对应的用户编号作为输入,输出候选的标签列表;
训练阶段确定的模型包括四个模块:输入、内容建模模块、用户背景影响建模模块以及预测输出;模型的输入包括当前待推荐问题文本和用户id;内容建模模块根据问题文本提取文本特征;用户背景影响建模模块建模用户背景信息对当前推荐的影响,并得到一个量化的影响向量;预测输出模块结合内容建模模块和用户背景影响建模模块的输出给出候选标签。
3.如权利要求1所述的基于用户背景的社区问答网站标签推荐方法,其特征在于,内容建模模块接受经过预处理的文本序列,能够提取出文本内容的高层语义特征;该模块基于长短程记忆单元网络和注意力机制;
在数据预处理阶段,已经将文本内容处理为词汇序号序列;进一步将单词表示为嵌入向量,则每一段输入文本表示为:
Q=[x1,x2,...,xN]
其中,xi∈Rd,N为文本序列的最大长度;接下来使用LSTM提取文本内容的语义特征,LSTM指的是长短程记忆单元网络;经过LSTM处理初步得到文本的语义特征:
q′=[h1,h2,...,hN]
为了进一步提升文本语义特征的准确性,引入注意力机制;注意力机制接受经过初步处理的文本语义信息作为输入,输出文本总体表征;使用注意力机制提取高层语义特征的过程表示为:
H=tanh(Whq′)
a=softmax(WHH+bH)
其中,q∈Rd;参数矩阵Wh,WH以及偏置参数bH都是可训练的;
可知对于每一个输入文本序列,内容建模模块都会输出一个相应的文本语义的总体表征。
4.如权利要求1所述的基于用户背景的社区问答网站标签推荐方法,其特征在于,用户背景信息影响建模模块中,为数据集中的每一个用户分配了一系列的记忆单元,用于保存在数据准备阶段被抽样的若干用户提问文本及问题对应的标签集使用内容建模模块提取历史提问的文本特征;被抽样的历史提问记录的文本特征表示为
对于每个问题对应的标签集首先将标签用嵌入向量表示;则每个标签集对应的表示写作:其中Nt是标签集的最大标签个数;由于每个文本所对应的标签数量可能是不同的,故在得到嵌入表示后增加一个注意力机制,将标签集对应的多个向量综合为单个向量;计算过程总结如下:
Ht=tanh(Wtti)
at=softmax(WHtHt+bHt)
利用采样文本与当前文本的语义相似性计算对应的影响权重;定义一个历史文本与当前文本的相似性向量:
其中⊙表示元素乘法,即将两个等长向量的元素的依次乘积作为结果向量对应位置的元素;si则被视为衡量当前待推荐问题与历史提问之间语义关联程度的向量;
将所有被采样问题对应的关联程度向量结合起来形成相似性矩阵:
s=[s1,s2,...,sL]
基于矩阵s使用softmax激活函数,便可映射得到一组权重,代表各个历史提问对当前推荐行为的影响程度:
其中Ws和bs是可训练参数;as∈RL是一组权重值组成的向量,与历史记录采样数量相同;
最后,在得到历史记录对应的影响向量和影响程度权重之后,通过一个加权求和的操作得到用户背景信息对当前推荐行为的总体影响向量:
影响向量t反映了用户背景信息对当前问题的标签推荐的影响;该向量是由对应历史记录的标签嵌入向量组合而成的,在组合的过程中考虑当前问题与历史提问的相似性,从而动态地建模用户背景信息影响,使其能够根据待推荐问题的具体内容做出调整。
5.如权利要求4所述的基于用户背景的社区问答网站标签推荐方法,其特征在于,利用问题内容建模模块和用户背景信息影响建模模块,得到了内容特征向量q和用户背景信息影响向量t;将二者结合得到当前问题的整体特征,直接用来进行推荐:
p=Concat(q,t)
y=softmax(Wpp+bp)
其中,Concat()表示拼接操作,即将两向量首尾相连接拼合成一个向量;Wp和bp是可训练参数;y为一个由概率值组成的向量,表示相应的候选标签被推荐给当前问题文本的概率;在输出时,将y中概率值最大的K个值对应的标签提供给用户作为备选标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910445656.7A CN110188272B (zh) | 2019-05-27 | 2019-05-27 | 一种基于用户背景的社区问答网站标签推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910445656.7A CN110188272B (zh) | 2019-05-27 | 2019-05-27 | 一种基于用户背景的社区问答网站标签推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110188272A CN110188272A (zh) | 2019-08-30 |
CN110188272B true CN110188272B (zh) | 2023-04-21 |
Family
ID=67717983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910445656.7A Active CN110188272B (zh) | 2019-05-27 | 2019-05-27 | 一种基于用户背景的社区问答网站标签推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110188272B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674417B (zh) * | 2019-09-24 | 2022-03-11 | 中国人民大学 | 一种基于用户关注关系的标签推荐方法 |
CN110909146B (zh) * | 2019-11-29 | 2022-09-09 | 支付宝(杭州)信息技术有限公司 | 用于推送反问标签的标签推送模型训练方法、装置及设备 |
CN111026853B (zh) * | 2019-12-02 | 2023-10-27 | 支付宝(杭州)信息技术有限公司 | 目标问题的确定方法、装置、服务器和客服机器人 |
CN111078854B (zh) * | 2019-12-13 | 2023-10-27 | 北京金山数字娱乐科技有限公司 | 问答预测模型的训练方法及装置、问答预测方法及装置 |
CN111078885B (zh) * | 2019-12-18 | 2023-04-07 | 腾讯科技(深圳)有限公司 | 一种标签分类的方法、相关装置、设备以及存储介质 |
CN111488524B (zh) * | 2020-04-08 | 2022-08-16 | 吉林大学 | 一种面向注意力的语义敏感的标签推荐方法 |
CN111767371B (zh) * | 2020-06-28 | 2024-03-12 | 微医云(杭州)控股有限公司 | 一种智能问答方法、装置、设备及介质 |
CN112365159A (zh) * | 2020-11-11 | 2021-02-12 | 福建亿榕信息技术有限公司 | 一种基于深度神经网络的后备干部推荐方法及*** |
CN112487172B (zh) * | 2020-12-16 | 2023-07-18 | 北京航空航天大学 | 一种面向深度答案推荐模型的主动学习方法 |
CN113641897B (zh) * | 2021-07-28 | 2024-04-19 | 上海明略人工智能(集团)有限公司 | 基于会话文本的推荐方法和装置、电子设备和存储介质 |
CN113641791A (zh) * | 2021-08-12 | 2021-11-12 | 卓尔智联(武汉)研究院有限公司 | 专家推荐方法、电子设备及存储介质 |
CN116628179B (zh) * | 2023-05-30 | 2023-12-22 | 道有道科技集团股份公司 | 一种用户操作数据的可视化与人机交互推荐方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804689A (zh) * | 2018-06-14 | 2018-11-13 | 合肥工业大学 | 面向问答平台的融合用户隐连接关系的标签推荐方法 |
CN109033463A (zh) * | 2018-08-28 | 2018-12-18 | 广东工业大学 | 一种基于端到端记忆网络的社区问答内容推荐方法 |
-
2019
- 2019-05-27 CN CN201910445656.7A patent/CN110188272B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804689A (zh) * | 2018-06-14 | 2018-11-13 | 合肥工业大学 | 面向问答平台的融合用户隐连接关系的标签推荐方法 |
CN109033463A (zh) * | 2018-08-28 | 2018-12-18 | 广东工业大学 | 一种基于端到端记忆网络的社区问答内容推荐方法 |
Non-Patent Citations (2)
Title |
---|
Tag-Aware Personalized Recommendation Using a Deep-Semantic Similarity Model with Negative Sampling;Zhenghua Xu 等;《CIKM》;20161028;第1034页-1045页 * |
基于扎根理论的社会化问答社区用户知识贡献行为意向影响因素研究;张宝生 等;《情报学报》;20181231;第37卷(第10期);第1页-第4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110188272A (zh) | 2019-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110188272B (zh) | 一种基于用户背景的社区问答网站标签推荐方法 | |
CN111415740B (zh) | 问诊信息的处理方法、装置、存储介质及计算机设备 | |
CN109492157B (zh) | 基于rnn、注意力机制的新闻推荐方法及主题表征方法 | |
CN111209738B (zh) | 一种联合文本分类的多任务命名实体识别方法 | |
CN110209806B (zh) | 文本分类方法、文本分类装置及计算机可读存储介质 | |
CN106980683B (zh) | 基于深度学习的博客文本摘要生成方法 | |
CN110175227B (zh) | 一种基于组队学习和层级推理的对话辅助*** | |
CN111191002B (zh) | 一种基于分层嵌入的神经代码搜索方法及装置 | |
CN112884551B (zh) | 一种基于近邻用户和评论信息的商品推荐方法 | |
CN110619044B (zh) | 一种情感分析方法、***、存储介质及设备 | |
CN112328900A (zh) | 一种融合评分矩阵和评论文本的深度学习推荐方法 | |
CN111382573A (zh) | 用于答案质量评估的方法、装置、设备和存储介质 | |
CN108491515B (zh) | 一种用于校园心理咨询的句对匹配度预测方法 | |
CN110019736A (zh) | 基于语言模型的问答匹配方法、***、设备及存储介质 | |
CN112000772A (zh) | 面向智能问答基于语义特征立方体的句子对语义匹配方法 | |
CN112989033B (zh) | 基于情绪类别描述的微博情绪分类方法 | |
CN109409433A (zh) | 一种社交网络用户的人格识别***和方法 | |
CN111309887A (zh) | 一种训练文本关键内容提取模型的方法和*** | |
CN110851593A (zh) | 一种基于位置与语义的复值词向量构建方法 | |
CN112015760B (zh) | 基于候选答案集重排序的自动问答方法、装置和存储介质 | |
CN110334204B (zh) | 一种基于用户记录的习题相似度计算推荐方法 | |
CN112163951A (zh) | 一种基于投资者心理情绪的股票预测方法 | |
CN114943216B (zh) | 基于图注意力网络的案件微博属性级观点挖掘方法 | |
CN116167371A (zh) | 产品的推荐方法及装置、处理器和电子设备 | |
Xia | Label oriented hierarchical attention neural network for short text classification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |