CN112784013A - 一种基于上下文语义的多粒度文本推荐方法 - Google Patents
一种基于上下文语义的多粒度文本推荐方法 Download PDFInfo
- Publication number
- CN112784013A CN112784013A CN202110039994.8A CN202110039994A CN112784013A CN 112784013 A CN112784013 A CN 112784013A CN 202110039994 A CN202110039994 A CN 202110039994A CN 112784013 A CN112784013 A CN 112784013A
- Authority
- CN
- China
- Prior art keywords
- sentence
- context
- model
- document
- definition
- 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.)
- Granted
Links
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Machine Translation (AREA)
Abstract
本发明涉及一种基于上下文语义的多粒度文本推荐方法,属于计算机自然语言处理技术领域。本方法利用文档级的主题过滤方法,缩减了候选文本集合的大小,大大缩减模型推荐的时间,同时提高文本推荐的准确性。本方法首次提出了多粒度的文本推荐方法,能够在文档级、段落级和句子级等多个语言粒度上进行文本推荐,并通过单一的模型完成推荐过程,提高了用户的使用效率。
Description
技术领域
本发明涉及一种基于上下文语义的多粒度文本推荐方法,属于计算机自然语言处理技术领域。
背景技术
随着互联网的高速发展,计算机技术被广泛地运用于日常生活中。在日常使用的办公软件中,文本编辑软件是最为常用的软件之一,常见的文本编辑软件有微软公司的Word、金山公司的WPS等。在专业的文本编辑人员使用这些软件进行文本编辑的同时,需要提前进行资料收集,并在写作的过程中不断回顾这些资料,从收集到的资料中寻找合适的语句和材料进行引用。这一过程大大地降低了文本编辑人员的写作的连贯性和持续性。
为了提高专业写作用户的使用体验,专业的文本编辑软件为用户提供了资料推荐的功能,在写作的过程中,根据用户的输入文本预测用户的目的,并基于自己的资料库向用户推荐对应的资料。
文本推荐系统是推荐系统领域的一种类型,其定义为:给定一个用户输入的文本及一批候选文本集合,系统需要对用户输入的文本进行理解,根据对输入文本理解,对候选文本集合中的文本进行评分,根据评分的高低从候选文本集合中选择出正确的文本推荐给用户。此外,根据候选文本集合的粒度不同,可以将此类文本推荐系统分为文档级推荐、段落级推荐、句子级推荐等。
传统的文本推荐系统所基于的处理方法,大多采用粗粒度的推荐方法,并使用语义向量模型直接对文本进行相似性评分。具体操作为:将给定的输入文本表示为单一的向量表示,并用相同的方法将候选文本集合中的所有文本表示为单一的向量表示,利用两个向量之间的相似度,例如余弦相似度,直接作为候选文档的评分,根据相似度的评分作为最后的推荐结果。
但是,此类方法具有两个显著的缺点:一是精确度低,只使用给定文本的向量表示和候选文本集合的向量表示之间的余弦相似度作为唯一的评价指标,没有二者的很好交互,无法提供很好的推荐结果;二是推荐粒度单一,这类推荐系统只能为用户提供文档级的结果,不能为用户提供很好的使用体验。
针对以上两个问题,部分工作尝试设计复杂的神经网络模型,以给定的输入文本和候选集合中的文本作为输入,使用复杂的神经网络结果让二者进行深度的交互进行评分。然而,这类方法仍然存在严重的不足。系统模型在进行评分推理时需要对每个候选集合中的文本一一比对处理,在实际应用场景中,候选集合的文本数量常高达数十万篇,这种比对方法需要消耗大量的时间,导致无法在实际应用中进行使用。
发明内容
本发明的目的是为了解决传统的文本推荐方法存在的单一粒度和推荐精确率低的技术问题,创造性地提出了一种基于上下文语义的多粒度文本推荐方法。
本方法的创新点在于:通过基于语义评分排序,和使用多级过滤多粒度文本模型,大幅提升了文本推荐系统的结果和性能。
本发明是通过以下技术方案实现的。
一种基于上下文语义的多粒度文本推荐方法,包括以下步骤:
首先进行相关定义:
定义1:相关文本推荐。
给定一段上下文,需要从候选文本集合中选择出具有语义相关性或流畅性的文本,并对这些文本进行评分排序。
定义2:多粒度文本推荐。
给定一段上下文,从多粒度的候选文本集合中进行文本推荐,粒度包括文档级、段落级、句子级。
定义3:上下文。
用户在使用系统时给定的文本,可以是一段未完成的段落或者是已经完成的完整文档,系统可以根据给定的上下文进行分析。
定义4:候选文本集合。
包含预先准备好的文档集合。
定于5:文本特征。
针对文本进行特定内容选择后的分析结果。比如文本的主题、关键词等。
定义6:文本向量表示。
文本在特征空间的稠密向量表示,用特征空间中一个高维(通常有768维)向量表示一个给定文本。该向量表示可以用于表示文本的信息,可以用于计算相似性和分类。
定义7:语言模型。
一种用于对语句进行概率分布预测的模型,用于构建上下文向量表示和文本生成,经过训练后,能够根据给定的上文继续生成下文。
定义8:预训练语言模型。
经过语料预训练的向量表示模型,能够对输入的字、词、句提供各个级别的向量表示。
定义9:停滞词语。
普遍功能词,不具备任何实际含义。
定义10:池化。
一种降低维度的方法,将某一维度的所有值进行某种操作得到单一值作为该维度的代表值。常用的池化操作有:最大池化和平均池化。
定义11:平均池化。
一种池化方法,将某一维度的所有值取平均值作为该维度的代表值。
定义12:最大池化。
一种池化方法,将某一维度的所有值取最大值作为该维度的代表值。
定义13:分类模型。
一种机器学习模型,用于解决分类问题,输入来自数据的特征表示向量,输出该数据到各个类别的概率值。
定义14:交叉熵损失函数。
一种训练多分类模型的损失函数,基于信息论中交叉熵的概念,用于训练多分类模型。
定义15:循环神经网络模型。
一种神经网络模型,在时序方向进行展开,将序列化的输入依次输入到模型中,并根据之前的状态和本次的输入计算出本次的输出结果。
定义16:LSTM模型。
一种循环神经网络模型,利用遗忘门、记忆门和输出门对简单的循环神经网络进行改造,用于构建语言模型。
定义17:注意力机制。
一种神经网络机制,通过计算对输入特征的注意力对其进行加权求和,作为新的特征表示,常用于弥补长距离依赖下的循环神经网络遗忘性的不足。
定义18:预训练上下句判别模型。
一种用于判断上下句关联性的预训练模型,采用两个句子作为输入。输出两个句子为上下句的得分值,若得分值低则说明两个句子不是上下句。
定义19:负采样。
根据正样本的构建方式采样生成与之相反的负样本。
步骤1:根据给定的上下文,利用预训练语言模型,获取上下文的字、句子和文档级别的向量表示。其中,上下文如定义3所述,预训练语言模型如定义8所述。
具体地,步骤1实现方法如下:
步骤1.1:将给定的上下文记为C=w1w2…wi…wn,wi是上下文文本中的每一个字。
步骤1.2:将步骤1.1中得到的上下文进行步骤1.2.1至步骤1.2.2操作。
步骤1.2.1:剔除上下文中存在的停滞词语。其中,停滞词语如定义9所述。
步骤1.2.2:使用预训练的语言模型,计算步骤1.2.1得到的结果中每个词的向量表示,记为xi。
步骤1.3:将步骤1.2中得到的上下文每个句子的词向量表示进行步骤1.3.1至1.3.3操作。
步骤1.3.1:对一个句子中的词向量表示xi:xi+t的每一个维度进行平均池化操作,获得平均池化向量。其中,平均池化操作如定义11所述。
步骤1.3.2:对一个句子中的词向量表示xi:xi+t的每一个维度进行最大池化操作,获得最大池化向量。其中,最大池化操作如定义12所述。
步骤1.3.3:对步骤1.3.1和1.3.2获得的两个池化向量进行拼接,获得一个高维句子级向量表示,记为si。
步骤1.4:将步骤1.3中得到的上下文每个句子的向量表示进行步骤1.4.1至1.4.3操作。
步骤1.4.1:对上下文中每个句子向量表示s0:st的每一个维度进行平均池化操作,获得平均池化向量。其中,平均池化操作如定义11所述。
步骤1.4.2:对上下文中每个句子向量表示s0:st的每一个维度进行最大池化操作,获得最大池化向量。其中,最大池化操作如定义12所述。
步骤1.4.3:对步骤1.4.1和1.4.2获得的两个池化向量进行拼接,获得一个高维的文档级向量表示,记为di。
步骤2:利用上下文的文档级向量表示和文档主题分类模块,获得上下文的主题类别其中,分类模型如定义13所述。
具体地,步骤2实现方法如下:
步骤2.1:根据步骤1和候选文档集合构建主题分类模块,训练数据集。其中,候选文本集合如定义4所述。
步骤2.1.1:对候选文本集合的所有文档进行步骤1的操作,获取候选文本集合中所有文档的字级别、句子级别和文档级别的向量表示。
步骤2.1.2:根据候选文本集合中对于每个文档的主题特征标注数据,构造每个文档向量表示和主题的一一对应数据集,记为{<di,ti>},其中ti是第i个文档的主题编号。
步骤2.2:通过基于多层感知机的神经网络模型MLP,构建一个文档主题分类模型,输入为一个文档的向量表示,输出为该文档对应每个类别的概率值。其中,分类模型如定义13所述。
步骤2.3:采用交叉熵损失函数作为训练目标Lclassifier,针对步骤2.2中的神经网络模型和步骤2.1中得到的数据带入如下公式:
其中,tc为第i个文档对应主题类别c的真实概率值,如果文档i属于该主题,则为1,否则为0;Pc为分类模型给出的文档i属于主题c的概率值P,计算方法如下:
P=Softmax(MLP(di)) (2)
其中,Softmax是SoftMax函数,将输入的各维度映射到0-1之间的概率值,且各概率值和为1;MLP是多层感知机神经网络,输入为文档的表示向量,输出为各个文档属于某个类别的分数值;di表示文档级向量表示。
步骤2.4:使用梯度下降算法,优化目标函数Lclassifier中神经语言模型中的参数,使Lclassifier最小化。优化结束后得到文档主题分类模块中所有神经网络的最优参数。
步骤3:利用语义相似评分,对候选主题文本集合进行语义排序。
具体地,步骤3的实现方法如下:
步骤3.1:利用步骤2中训练得到文档主题分类模型中的神经语言模型,对步骤1中的上下文文档级表示进行文档主题分类。
步骤3.2:根据步骤3.1的分类结果,从候选文本集合中进行筛选,选择与给定上下文相同主题或相近主题的文档,构造候选主题文本集合,记为D。该集合中只包含与上下文相同或相近主题的文档。
步骤3.3:利用步骤3.2计算得到的候选主题文本集合,使用步骤1中的方法对每个文档分析获取文档级向量。
步骤3.4:利用上下文的文档级向量dc和候选主题文本集合中的每个文档的文档级向量di的余弦相似度作为语义相似的评分,计算方法如下:
score=Cos(dc,di) (3)
步骤3.5:利用步骤3.4得到的评分,从高到低进行文档排序。
步骤4:使用句子级语言模型构建语义评分模块,用于预测段落和句子级的推荐表示。
步骤4具体实现方法如下:
步骤4.1:选择单向的LSTM模型和注意力机制构建句子级语言模型,其中LSTM模型如定义16所述;注意力机制如定义17所述。计算方法如下:
hi=Attention(h′i,s1s2…si-1) (4)
其中,h′i是将部分句子序列s1s2…si-1输入LSTM模型的输出结果,Attention表示注意力机制,是hi对句子序列s1s2...si-1的注意力,计算方法如下:
其中,αi是y对xi的注意力值,是0到1范围内的值,常用softmax计算。n表示输入序列的长度。
步骤4.2:取候选文档集合中的所有句子序列,构建训练步骤4.1构造的语言模型的训练数据,记为T={s1s2…,sn}。
步骤4.3:对于训练数据T中的每个句子序列,希望语言模型预测出与下一个句子相近的向量表示。使用余弦损失Lcos作为损失函数,计算方法如下:
Lcos=1-cos(hi,si) (6)
其中,hi是语言模型预测的句子向量表示,si是实际句子序列中的句子向量表示。
步骤4.4:使用梯度下降算法,优化目标函数Lcos中神经语言模型中的参数,使Lcos最小化。
优化结束后,得到句子级语言模型模块中所有神经网络的最优参数。
步骤5:结合语义排序后的文档,构建候选段落集合,并对候选段落进行语义排序。
具体地,步骤5的实现方法如下:
步骤5.1:取步骤3.3中语义排序后的候选文档集合D取前20%的文档,将这些文档进行文本分段,构建候选段落集合,记为P。
步骤5.2:将步骤5.1中的候选段落集合的每个段落,采用步骤1.2的方法将其表示为段落向量表示,记为pi。
步骤5.3:使用步骤4中构造的句子级语言模型,对步骤1.2获得的给定上下文中的句子序列向量表示序列进行预测,预测下一个段落的向量表示,记为si+1。
步骤5.4:使用步骤5.3中获得的下一个段落预测向量表示和步骤5.2获得的候选段落集合中的每个段落向量表示,计算二者的余弦相似度作为对应段落的评分,并根据评分进行排序。
步骤6:使用预训练的上下文判别模型构建连贯性评分模块,用于判断候选句子和给定上下文的连贯性。其中,预训练上下句判别模型如定义18所述。
具体地,步骤6的实现方法如下:
步骤6.1:选择预训练的BERT模型作为预训练模型,并进行微调。
BERT模型在预训练的过程中,采用判断上下句关系的目标函数:Next SentencePrediction,NSP。
步骤6.2:将候选文本中的所有句子序列分割成句子对数据集进行训练,记为ST,为保证模型能够具有判断判断能力,采用负采样的方法构造若干负样本(实验中,构造的是5倍正样本数量),即非上下句关系的句子对,记为SF。其中,负采样如定义19所述。
步骤6.3:将判断句子是否为上下文关系的目标视为二分类模型,采用交叉熵损失函数作为目标,具体计算方法如下:
其中,yi是上下句真实性标签,如果数据为真实的上下句对,则为1,否则为-1;Pi是BERT预训练模型给出的句子上下文预测概率值。N为训练数据的数量。
步骤6.4:使用梯度下降算法,优化目标函数LNSP中神经语言模型中的参数,使LNSP最小化。
优化结束后,得到上下句判别模型模块中所有神经网络的最优参数。
步骤7:结合语义排序后的文档,构建候选句子集合,并对候选句子进行语义排序:
具体地,步骤7的实现方法如下:
步骤7.1:取步骤3.3中语义排序后的候选文档集合D取前20%的文档,将这些文档进行文本分句,构建候选句子集合,记为S。
步骤7.2:将步骤7.1中的候选句子集合的每个句子,采用步骤1.2的方法将其表示为句子向量表示,记为sp。
步骤7.3:使用步骤4中构造的句子级语言模型,对步骤1.2获得的给定上下文中的句子序列向量表示序列进行预测,预测下一个句子的向量表示,记为si+1。
步骤7.4:使用步骤7.3中获得的下一个句预测向量表示和步骤5.2获得的候选句子集合中的每个句子向量表示,计算二者的余弦相似度作为对应句子的语义评分。
步骤7.5:使用步骤6构造的上下文判别模型,将上下文最后一个句子和候选句子作为输入,模型将输出两个句子作为上下文的评分值,将该评分值作为句子的连贯性评分。
步骤7.6:使用步骤7.4获得的语义评分和步骤7.5中获得的连贯性评分进行加权求和,求得候选句子集合中每个句子的最终评分,并根据评分值进行排序。
有益效果
本发明方法,与现有的文本推荐系统模型相比,具有以下优点:
1.利用文档级的主题过滤方法,缩减了候选文本集合的大小,可以大大缩减模型推荐的时间,同时提高文本推荐的准确性。
2.首次提出了多粒度的文本推荐方法,能够在文档级、段落级和句子级等多个语言粒度上进行文本推荐,并通过单一的模型完成推荐过程,提高了用户的使用效率。
3.通过中文国务院公文文档的推荐数据集中进行文本推荐任务中,实验结果表明,在相同的数据集下,本发明所采用的方法与传统的在不同粒度下的多种方法相比,本发明提出的基于上下文语义的多粒度文本推荐方法在前10召回率Recall@10平均排名倒数Mean Reciprocal Rank等评测指标上有显著的提升。
附图说明
图1为本发明方法的整体框架流程图。
具体实施方式
下面结合附图和实施例对本发明方法做进一步详细描述。
实施例1
一种基于上下文语义的多粒度文本推荐方法,如图1所示。本实施例给出了本发明所述方法的流程及其具体实施例。
本实施例中使用的数据由来自国务院公文文档数据集。
步骤1:根据给定的上下文,利用预训练语言模型,获取上下文的字、句子和文档级别的向量表示。其中,上下文如定义3所述,预训练语言模型如定义8所述。
步骤1具体实现方法如下:
步骤1.1:将给定的上下文记为C=w1w2…wn,wi是上下文文本中的每一个字。例如给定上下文C为“改革开放以来,我国海洋工作取得了很大成绩。海洋传统产业稳步发展,新兴产业迅速崛起,海洋经济已成为国民经济新的增长点;海洋生物、环境监测和资源探查开发等方面的高新技术取得关键性突破,创新能力显著增强;海洋法制建设步伐加快,海洋管理和公益服务水平迈上新台阶。但是,在海洋管理工作中也存在一些亟待解决的突出问题。主要表现在,一些地方的海洋开发利用活动比较混乱,生态环境恶化的势头仍未得到有效遏制。”。
步骤1.2:将步骤1.1中得到的上下文进行步骤1.2.1至步骤1.2.2操作。
步骤1.2.1:剔除上下文中存在的停滞词语。本例中未出现相关停滞词。
步骤1.2.2:使用预训练的语言模型,计算步骤1.2.1得到的结果中每个词的向量表示,记为xi
步骤1.3:将步骤1.2中得到的上下文每个句子的词向量表示进行步骤1.3.1至1.3.3操作。
步骤1.3.1:对一个句子中的词向量表示xi:xi+t的每一个维度进行平均池化操作,获得平均池化向量。其中,平均池化操作如定义11所述。
步骤1.3.2:对一个句子中的词向量表示xi:xi+t的每一个维度进行最大池化操作,获得最大池化向量。其中,最大池化操作如定义12所述。
步骤1.3.3:对步骤1.3.1和1.3.2获得的两个池化向量进行拼接,获得一个高维的句子级向量表示,记为si。
步骤1.4:将步骤1.3中得到的上下文每个句子的向量表示进行步骤1.4.1至1.4.3操作。
步骤1.4.1:对上下文中每个句子向量表示s0:st的每一个维度进行平均池化操作,获得平均池化向量。其中,平均池化操作如定义11所述。
步骤1.4.2:对上下文中每个句子向量表示s0:st的每一个维度进行最大池化操作,获得最大池化向量。其中,最大池化操作如定义12所述。
步骤1.4.3:对步骤1.4.1和1.4.2获得的两个池化向量进行拼接,获得一个高维的文档级向量表示,记为di。
步骤2:利用上下文的文档级向量表示和文档主题分类模块,获得上下文的主题类别其中,分类模型如定义13所述。
步骤2具体实现方法如下:
步骤2.1:根据步骤1和候选文档集合训练的数据集。其中,候选文本集合如定义4所述。
步骤2.1.1:对候选文本集合的所有文档进行步骤1的操作,获取候选文本集合中所有文档的字级别、句子级别和文档级别的向量表示。
步骤2.1.2:根据候选文本集合中对于每个文档的主题特征标注数据,构造每个文档向量表示和主题的一一对应数据集,记为{<di,ti>},其中ti是第i个文档的主题编号。
步骤2.2:通过基于多层感知机的神经网络模型MLP,构建一个文档主题分类模型,输入为一个文档的向量表示,输出为该文档对应每个类别的概率值。其中,分类模型如定义13所述。
步骤2.3:采用交叉熵损失函数作为训练目标Lclassifier,针对步骤2.2中的神经网络模型和步骤2.1中得到的数据带入如下公式:
其中,tc为第i个文档对应主题类别c的真实概率值,如果文档i属于该主题,则为1,否则为0;Pc为分类模型给出的文档i属于主题c的概率值,计算方法如下公式:
P=Softmax(MLP(di))
其中softmax是SoftMax函数,将输入的各维度映射到映射到0-1之间的概率值,且各概率值和为1;MLP是多层感知机神经网络,输入为文档的表示向量,输出为各个文档属于某个类别的分数值。
步骤2.4:使用梯度下降算法,优化目标函数Lclassifier中神经语言模型中的参数,使Lclassifier最小化。优化结束后得到文档主题分类模块中所有神经网络的最优参数。
步骤3:利用语义相似评分模块对候选主题文本集合进行语义排序。
步骤3具体实现方法如下:
步骤3.1:利用步骤2中训练得到文档主题分类模型中的神经语言模型,对步骤1中的上下文文档级表示进行文档主题分类。例如本例得到主题为“水资源”,“海洋”
步骤3.2:根据步骤3.1的分类结果,从候选文本集合中进行筛选,选择与给定上下文相同主题或相近主题的文档,构造候选主题文本集合,记为D。该集合中只包含与上下文相同或相近主题的文档。
步骤3.3:利用步骤3.2计算得到的候选主题文本集合,使用步骤1中的方法对每个文档分析获取文档级向量。
步骤3.4:利用上下文的文档级向量dc和候选主题文本集合中的每个文档的文档级向量di的余弦相似度作为语义相似的评分,计算公式如下:
score=Cos(dc,di)
步骤3.5:利用步骤3.4得到的评分,从高到低进行文档排序。
步骤4:使用句子级语言模型构建语义评分模块,用于预测段落和句子级的推荐表示。
步骤4具体实现方法如下:
步骤4.1:选择单向的LSTM模型和注意力机制构建句子级语言模型,其中LSTM模型如定义16所述;注意力机制如定义17所述。计算方法如下公式:
hi=Attention(h′i,s1s2…si-1)
其中,h′i是将句子序列s1s2…si-1输入LSTM模型的输出结果,Attention表示注意力机制,是h′i对句子序列s1s2…si-1的注意力,计算方法如下公式:
其中,αi是y对xi的注意力值,是0到1范围内的值,常用softmax计算。
步骤4.2:取候选文档集合中的所有句子序列,可以构建训练步骤4.1构造的语言模型的训练数据,记为T={s1s2…,sn}
步骤4.3:对于训练数据T中的每个句子序列,我们希望语言模型可以预测出与下一个句子相近的向量表示,因此我们用余弦损失:Lcos作为我们的损失函数,计算方法如下公式:
Lcos=1-cos(hi,si)
其中,hi是语言模型预测的句子向量表示,si是实际句子序列中的句子向量表示。
步骤4.4:使用梯度下降算法,优化目标函数Lcos中神经语言模型中的参数,使Lcos最小化。优化结束后得到句子级语言模型模块中所有神经网络的最优参数。
步骤5:结合语义排序后的文档,构建候选段落集合,并对候选段落进行语义排序:
步骤5具体实现方法如下:
步骤5.1:取步骤3.3中语义排序后的候选文档集合D取前20%的文档,将这些文档进行文本分段,构建候选段落集合,记为P
步骤5.2:将步骤5.1中的候选段落集合的每个段落,采用步骤1.2的方法将其表示为段落向量表示,记为pi。
步骤5.3:使用步骤4中构造的句子级语言模型,对步骤1.2获得的给定上下文中的句子序列向量表示序列进行预测,预测下一个段落的向量表示,记为si+1
步骤5.4:使用步骤5.3中获得的下一个段落预测向量表示和步骤5.2获得的候选段落集合中的每个段落向量表示,计算二者的余弦相似度作为对应段落的评分,并根据评分进行排序。
步骤6:使用预训练的上下文判别模型构建连贯性评分模块,用于判断候选句子和给定上下文的连贯性。其中,预训练上下句判别模型如定义18所述。
步骤6具体实现方法如下:
步骤6.1:选择预训练的BERT模型作为预训练模型,并进行微调。BERT模型在预训练的过程中采用了判断上下句关系的目标函数(Next Sentence Prediction,NSP)。
步骤6.2:将候选文本中的所有句子序列分割成句子对数据集进行训练,记为ST,为了保证模型能够具有判断判断能力,采用负采样的方法构造一定数量的负样本,即非上下句关系的句子对,记为SF。其中,负采样如定义19所述。
步骤6.3:将判断句子是否为上下文关系的目标视为二分类模型,采用交叉熵损失函数作为目标,具体计算方法如下:
其中,yi是上下句真实性标签,如果数据为真实的上下句对,则为1,否则为-1;Pi是BERT预训练模型给出的句子上下文预测概率值。
步骤6.4:使用梯度下降算法,优化目标函数LNSP中神经语言模型中的参数,使LNSP最小化。优化结束后得到上下句判别模型模块中所有神经网络的最优参数。
步骤7:结合语义排序后的文档,构建候选句子集合,并对候选句子进行语义排序:
步骤7具体实现方法如下:
步骤7.1:取步骤3.3中语义排序后的候选文档集合D取前20%的文档,将这些文档进行文本分句,构建候选句子集合,记为S
步骤7.2:将步骤7.1中的候选句子集合的每个句子,采用步骤1.2的方法将其表示为句子向量表示,记为sp。
步骤7.3:使用步骤4中构造的句子级语言模型,对步骤1.2获得的给定上下文中的句子序列向量表示序列进行预测,预测下一个句子的向量表示,记为si+1
步骤7.4:使用步骤7.3中获得的下一个句预测向量表示和步骤5.2获得的候选句子集合中的每个句子向量表示,计算二者的余弦相似度作为对应句子的语义评分。
步骤7.5:使用步骤6构造的上下文判别模型,将上下文最后一个句子和候选句子作为输入,模型将输出两个句子作为上下文的评分值,将该评分值作为句子的连贯性评分。
步骤7.6:使用步骤7.4获得的语义评分和步骤7.5中获得的连贯性评分进行加权求和,求得候选句子集合中每个句子的最终评分,并根据评分值进行排序。
例如,模型在经过多粒度的选择后,正确推荐了包含相关信息的文档,并进一步推荐出下一段和下一句话的相关信息。如表1所示。
表1本方法在国务院公文数据集中具体实例上的效果
实施例2
在中文国务院公文文档的推荐数据集中进行文本推荐任务中,实验结果表明,在相同的数据集下,本发明所采用的方法与传统的在不同粒度下的多种方法相比,本发明提出的基于上下文语义的多粒度文本推荐方法在前10召回率Recall@10平均排名倒数MeanReciprocal Rank作为评测指标可以得到如下实验结果,如表2所示。
表2使用本发明方法与传统方法性能对比
表2的实验结果证明:在数据相同的情况下,采用本发明所述方法与不使用本发明的方法相比,Recall@10和MRR评测指标有明显提升。
Claims (4)
1.一种基于上下文语义的多粒度文本推荐方法,其特征在于,包括以下步骤:
首先,定义相关概念:
定义1:相关文本推荐;
给定一段上下文,需要从候选文本集合中选择出具有语义相关性或流畅性的文本,并对文本进行评分排序;
定义2:多粒度文本推荐;
给定一段上下文,从多粒度的候选文本集合中进行文本推荐,粒度包括文档级、段落级、句子级;
定义3:上下文;
用户在使用系统时给定的文本,可以是一段未完成的段落或者是已经完成的完整文档,系统可以根据给定的上下文进行分析;
定义4:候选文本集合;
包含预先准备好的文档集合;
定于5:文本特征;
针对文本进行特定内容选择后的分析结果;比如文本的主题、关键词等;
定义6:文本向量表示;
文本在特征空间的稠密向量表示,用特征空间中一个高维(通常有768维)向量表示一个给定文本;该向量表示可以用于表示文本的信息,可以用于计算相似性和分类;
定义7:语言模型;
一种用于对语句进行概率分布预测的模型,用于构建上下文向量表示和文本生成,经过训练后,能够根据给定的上文继续生成下文;
定义8:预训练语言模型;
经过语料预训练的向量表示模型,能够对输入的字、词、句提供各个级别的向量表示;
定义9:停滞词语;
普遍功能词,不具备任何实际含义;
定义10:池化;
一种降低维度的方法,将某一维度的所有值进行某种操作得到单一值作为该维度的代表值;常用的池化操作有:最大池化和平均池化;
定义11:平均池化;
一种池化方法,将某一维度的所有值取平均值作为该维度的代表值;
定义12:最大池化;
一种池化方法,将某一维度的所有值取最大值作为该维度的代表值;
定义13:分类模型;
一种机器学习模型,用于解决分类问题,输入来自数据的特征表示向量,输出该数据到各个类别的概率值;
定义14:交叉熵损失函数;
一种训练多分类模型的损失函数,基于信息论中交叉熵的概念,用于训练多分类模型;
定义15:循环神经网络模型;
一种神经网络模型,在时序方向进行展开,将序列化的输入依次输入到模型中,并根据之前的状态和本次的输入计算出本次的输出结果;
定义16:LSTM模型;
一种循环神经网络模型,利用遗忘门、记忆门和输出门对简单的循环神经网络进行改造,用于构建语言模型;
定义17:注意力机制;
一种神经网络机制,通过计算对输入特征的注意力对其进行加权求和,作为新的特征表示,常用于弥补长距离依赖下的循环神经网络遗忘性的不足;
定义18:预训练上下句判别模型;
一种用于判断上下句关联性的预训练模型,采用两个句子作为输入;输出两个句子为上下句的得分值,若得分值低则说明两个句子不是上下句;
定义19:负采样;
根据正样本的构建方式采样生成与之相反的负样本。
步骤1:根据给定的上下文,利用预训练语言模型,获取上下文的字、句子和文档级别的向量表示;其中,上下文如定义3所述,预训练语言模型如定义8所述;
步骤2:利用上下文的文档级向量表示和文档主题分类模块,获得上下文的主题类别其中,分类模型如定义13所述,具体方法如下:
步骤2.1:根据步骤1和候选文档集合构建主题分类模块,训练数据集;其中,候选文本集合如定义4所述;
步骤2.1.1:对候选文本集合的所有文档进行步骤1的操作,获取候选文本集合中所有文档的字级别、句子级别和文档级别的向量表示;
步骤2.1.2:根据候选文本集合中对于每个文档的主题特征标注数据,构造每个文档向量表示和主题的一一对应数据集,记为{<di,ti>},其中ti是第i个文档的主题编号;
步骤2.2:通过基于多层感知机的神经网络模型MLP,构建一个文档主题分类模型,输入为一个文档的向量表示,输出为该文档对应每个类别的概率值;其中,分类模型如定义13所述;
步骤2.3:采用交叉熵损失函数作为训练目标Lclassifier,针对步骤2.2中的神经网络模型和步骤2.1中得到的数据带入如下公式:
其中,tc为第i个文档对应主题类别c的真实概率值,如果文档i属于该主题,则为1,否则为0;Pc为分类模型给出的文档i属于主题c的概率值P,计算方法如下:
P=Softmax(MLP(di)) (2)
其中,Softmax是SoftMax函数,将输入的各维度映射到0-1之间的概率值,且各概率值和为1;MLP是多层感知机神经网络,输入为文档的表示向量,输出为各个文档属于某个类别的分数值;di表示文档级向量表示;
步骤2.4:使用梯度下降算法,优化目标函数Lclassifier中神经语言模型中的参数,使Lclassifier最小化;优化结束后得到文档主题分类模块中所有神经网络的最优参数;
步骤3:利用语义相似评分,对候选主题文本集合进行语义排序,具体如下:
步骤3.1:利用步骤2中训练得到文档主题分类模型中的神经语言模型,对步骤1中的上下文文档级表示进行文档主题分类;
步骤3.2:根据步骤3.1的分类结果,从候选文本集合中进行筛选,选择与给定上下文相同主题或相近主题的文档,构造候选主题文本集合,记为D;该集合中只包含与上下文相同或相近主题的文档;
步骤3.3:利用步骤3.2计算得到的候选主题文本集合,对每个文档分析获取文档级向量;
步骤3.4:利用上下文的文档级向量dc和候选主题文本集合中的每个文档的文档级向量di的余弦相似度作为语义相似的评分,计算方法如下:
score=Cos(dc,di) (3)
步骤3.5:利用步骤3.4得到的评分,从高到低进行文档排序;
步骤4:使用句子级语言模型构建语义评分模块,用于预测段落和句子级的推荐表示;
步骤5:结合语义排序后的文档,构建候选段落集合,并对候选段落进行语义排序,具体如下:
步骤5.1:取步骤3.3中语义排序后的候选文档集合D取前20%的文档,将这些文档进行文本分段,构建候选段落集合,记为P;
步骤5.2:将步骤5.1中的候选段落集合的每个段落表示为段落向量表示,记为pi;
步骤5.3:使用步骤4中构造的句子级语言模型,对步骤1获得的给定上下文中的句子序列向量表示序列进行预测,预测下一个段落的向量表示,记为si+1;
步骤5.4:使用步骤5.3中获得的下一个段落预测向量表示和步骤5.2获得的候选段落集合中的每个段落向量表示,计算二者的余弦相似度作为对应段落的评分,并根据评分进行排序;
步骤6:使用预训练的上下文判别模型构建连贯性评分模块,用于判断候选句子和给定上下文的连贯性;其中,预训练上下句判别模型如定义18所述;
步骤7:结合语义排序后的文档,构建候选句子集合,并对候选句子进行语义排序;
具体地,步骤7的实现方法如下:
步骤7.1:取步骤3.3中语义排序后的候选文档集合D取前20%的文档,将这些文档进行文本分句,构建候选句子集合,记为S;
步骤7.2:将步骤7.1中的候选句子集合的每个句子将其表示为句子向量表示,记为sp;
步骤7.3:使用步骤4中构造的句子级语言模型,对步骤1获得的给定上下文中的句子序列向量表示序列进行预测,预测下一个句子的向量表示,记为si+1;
步骤7.4:使用步骤7.3中获得的下一个句预测向量表示和步骤5.2获得的候选句子集合中的每个句子向量表示,计算二者的余弦相似度作为对应句子的语义评分;
步骤7.5:使用步骤6构造的上下文判别模型,将上下文最后一个句子和候选句子作为输入,模型将输出两个句子作为上下文的评分值,将该评分值作为句子的连贯性评分;
步骤7.6:使用步骤7.4获得的语义评分和步骤7.5中获得的连贯性评分进行加权求和,求得候选句子集合中每个句子的最终评分,并根据评分值进行排序。
2.如权利要求1所述的一种基于上下文语义的多粒度文本推荐方法,其特征在于,步骤1的实现方法为:
步骤1.1:将给定的上下文记为C=w1w2…wi…wn,wi是上下文文本中的每一个字;
步骤1.2:将步骤1.1中得到的上下文进行步骤1.2.1至步骤1.2.2操作;
步骤1.2.1:剔除上下文中存在的停滞词语;其中,停滞词语如定义9所述;
步骤1.2.2:使用预训练的语言模型,计算步骤1.2.1得到的结果中每个词的向量表示,记为xi;
步骤1.3:将步骤1.2中得到的上下文每个句子的词向量表示进行步骤1.3.1至1.3.3操作;
步骤1.3.1:对一个句子中的词向量表示xi:xi+t的每一个维度进行平均池化操作,获得平均池化向量;其中,平均池化操作如定义11所述;
步骤1.3.2:对一个句子中的词向量表示xi:xi+t的每一个维度进行最大池化操作,获得最大池化向量;其中,最大池化操作如定义12所述;
步骤1.3.3:对步骤1.3.1和1.3.2获得的两个池化向量进行拼接,获得一个高维句子级向量表示,记为si;
步骤1.4:将步骤1.3中得到的上下文每个句子的向量表示进行步骤1.4.1至1.4.3操作;
步骤1.4.1:对上下文中每个句子向量表示s0:st的每一个维度进行平均池化操作,获得平均池化向量;其中,平均池化操作如定义11所述;
步骤1.4.2:对上下文中每个句子向量表示s0:st的每一个维度进行最大池化操作,获得最大池化向量;其中,最大池化操作如定义12所述;
步骤1.4.3:对步骤1.4.1和1.4.2获得的两个池化向量进行拼接,获得一个高维的文档级向量表示,记为di。
3.如权利要求1所述的一种基于上下文语义的多粒度文本推荐方法,其特征在于,步骤4的实现方法为:
步骤4.1:选择单向的LSTM模型和注意力机制构建句子级语言模型,其中LSTM模型如定义16所述;注意力机制如定义17所述,方法如下:
hi=Attention(h′i,s1s2…si-1) (4)
其中,h′i是将部分句子序列s1s2…si-1输入LSTM模型的输出结果,Attention表示注意力机制,是h′i对句子序列s1s2...si-1的注意力,计算方法如下:
其中,αi是y对xi的注意力值,是0到1范围内的值,常用softmax计算;n表示输入序列的长度;
步骤4.2:取候选文档集合中的所有句子序列,构建训练步骤4.1构造的语言模型的训练数据,记为T={s1s2…,sn};
步骤4.3:对于训练数据T中的每个句子序列,希望语言模型预测出与下一个句子相近的向量表示;使用余弦损失Lcos作为损失函数,计算方法如下:
Lcos=1-cos(hi,si) (6)
其中,hi是语言模型预测的句子向量表示,si是实际句子序列中的句子向量表示;
步骤4.4:使用梯度下降算法,优化目标函数Lcos中神经语言模型中的参数,使Lcos最小化;
优化结束后,得到句子级语言模型模块中所有神经网络的最优参数。
4.如权利要求1所述的一种基于上下文语义的多粒度文本推荐方法,其特征在于,步骤6的实现方法为:
步骤6.1:选择预训练的BERT模型作为预训练模型,并进行微调;
BERT模型在预训练的过程中,采用判断上下句关系的目标函数:Next SentencePrediction,NSP;
步骤6.2:将候选文本中的所有句子序列分割成句子对数据集进行训练,记为ST,为保证模型能够具有判断判断能力,采用负采样的方法构造若干负样本,即非上下句关系的句子对,记为SF;其中,负采样如定义19所述;
步骤6.3:将判断句子是否为上下文关系的目标视为二分类模型,采用交叉熵损失函数作为目标,具体计算方法如下:
其中,yi是上下句真实性标签,如果数据为真实的上下句对,则为1,否则为-1;
Pi是BERT预训练模型给出的句子上下文预测概率值;N为训练数据的数量;
步骤6.4:使用梯度下降算法,优化目标函数LNSP中神经语言模型中的参数,使LNSP最小化;
优化结束后,得到上下句判别模型模块中所有神经网络的最优参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110039994.8A CN112784013B (zh) | 2021-01-13 | 2021-01-13 | 一种基于上下文语义的多粒度文本推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110039994.8A CN112784013B (zh) | 2021-01-13 | 2021-01-13 | 一种基于上下文语义的多粒度文本推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112784013A true CN112784013A (zh) | 2021-05-11 |
CN112784013B CN112784013B (zh) | 2022-10-04 |
Family
ID=75755562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110039994.8A Active CN112784013B (zh) | 2021-01-13 | 2021-01-13 | 一种基于上下文语义的多粒度文本推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112784013B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590963A (zh) * | 2021-08-04 | 2021-11-02 | 浙江新蓝网络传媒有限公司 | 均衡的文本推荐方法 |
CN113761890A (zh) * | 2021-08-17 | 2021-12-07 | 汕头市同行网络科技有限公司 | 一种基于bert上下文感知的多层级语义信息检索方法 |
CN113836941A (zh) * | 2021-09-27 | 2021-12-24 | 上海合合信息科技股份有限公司 | 一种合同导航方法及装置 |
CN114003726A (zh) * | 2021-12-31 | 2022-02-01 | 山东大学 | 一种基于子空间嵌入的学术论文差异性分析方法 |
CN115358334A (zh) * | 2022-08-26 | 2022-11-18 | 维正知识产权科技有限公司 | 一种文本排重方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100023311A1 (en) * | 2006-09-13 | 2010-01-28 | Venkatramanan Siva Subrahmanian | System and method for analysis of an opinion expressed in documents with regard to a particular topic |
CN110647629A (zh) * | 2019-09-20 | 2020-01-03 | 北京理工大学 | 一种多粒度答案排序的多文档机器阅读理解方法 |
CN111061935A (zh) * | 2019-12-16 | 2020-04-24 | 北京理工大学 | 一种基于自注意力机制的科技写作推荐方法 |
CN111985247A (zh) * | 2020-08-31 | 2020-11-24 | 华侨大学 | 一种基于多粒度文本特征表示的微博用户兴趣识别方法和系统 |
-
2021
- 2021-01-13 CN CN202110039994.8A patent/CN112784013B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100023311A1 (en) * | 2006-09-13 | 2010-01-28 | Venkatramanan Siva Subrahmanian | System and method for analysis of an opinion expressed in documents with regard to a particular topic |
CN110647629A (zh) * | 2019-09-20 | 2020-01-03 | 北京理工大学 | 一种多粒度答案排序的多文档机器阅读理解方法 |
CN111061935A (zh) * | 2019-12-16 | 2020-04-24 | 北京理工大学 | 一种基于自注意力机制的科技写作推荐方法 |
CN111985247A (zh) * | 2020-08-31 | 2020-11-24 | 华侨大学 | 一种基于多粒度文本特征表示的微博用户兴趣识别方法和系统 |
Non-Patent Citations (2)
Title |
---|
DEGUANG PENG ET AL.: "Learning Long-text Semantic Similarity with Multi-Granularity Semantic Embedding Based on Knowledge Enhancement", 《2020 INTERNATIONAL CONFERENCE ON CONTROL, ROBOTICS AND INTELLIGENT SYSTEM》 * |
邬登峰等: "基于多粒度特征和混合算法的文档推荐系统", 《计算机系统应用》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590963A (zh) * | 2021-08-04 | 2021-11-02 | 浙江新蓝网络传媒有限公司 | 均衡的文本推荐方法 |
CN113761890A (zh) * | 2021-08-17 | 2021-12-07 | 汕头市同行网络科技有限公司 | 一种基于bert上下文感知的多层级语义信息检索方法 |
CN113761890B (zh) * | 2021-08-17 | 2024-04-16 | 汕头市同行网络科技有限公司 | 一种基于bert上下文感知的多层级语义信息检索方法 |
CN113836941A (zh) * | 2021-09-27 | 2021-12-24 | 上海合合信息科技股份有限公司 | 一种合同导航方法及装置 |
CN113836941B (zh) * | 2021-09-27 | 2023-11-14 | 上海合合信息科技股份有限公司 | 一种合同导航方法及装置 |
CN114003726A (zh) * | 2021-12-31 | 2022-02-01 | 山东大学 | 一种基于子空间嵌入的学术论文差异性分析方法 |
CN114003726B (zh) * | 2021-12-31 | 2022-04-08 | 山东大学 | 一种基于子空间嵌入的学术论文差异性分析方法 |
CN115358334A (zh) * | 2022-08-26 | 2022-11-18 | 维正知识产权科技有限公司 | 一种文本排重方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112784013B (zh) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112784013B (zh) | 一种基于上下文语义的多粒度文本推荐方法 | |
CN110245229B (zh) | 一种基于数据增强的深度学习主题情感分类方法 | |
CN109558487A (zh) | 基于层次性多注意力网络的文档分类方法 | |
CN110532554A (zh) | 一种中文摘要生成方法、系统及存储介质 | |
CN114201581B (zh) | 一种基于对比学习的长文本检索模型 | |
CN108073677A (zh) | 一种基于人工智能的多级文本多标签分类方法及系统 | |
CN108038492A (zh) | 一种基于深度学习的感性词向量及情感分类方法 | |
CN111291188B (zh) | 一种智能信息抽取方法及系统 | |
CN107688870B (zh) | 一种基于文本流输入的深度神经网络的分层因素可视化分析方法及装置 | |
CN109325231A (zh) | 一种多任务模型生成词向量的方法 | |
CN113505200B (zh) | 一种结合文档关键信息的句子级中文事件检测的方法 | |
CN110633365A (zh) | 一种基于词向量的层次多标签文本分类方法及系统 | |
CN113987187A (zh) | 基于多标签嵌入的舆情文本分类方法、系统、终端及介质 | |
CN110569355B (zh) | 一种基于词块的观点目标抽取和目标情感分类联合方法及系统 | |
CN111666376B (zh) | 一种基于段落边界扫描预测与词移距离聚类匹配的答案生成方法及装置 | |
CN111368082A (zh) | 一种基于层次网络的领域自适应词嵌入的情感分析方法 | |
CN115203338A (zh) | 一种标签及标签实例推荐方法 | |
CN113159187A (zh) | 分类模型训练方法及装置、目标文本确定方法及装置 | |
CN114780582A (zh) | 基于表格问答的自然答案生成系统及其方法 | |
CN116629258B (zh) | 基于复杂信息项数据的司法文书的结构化分析方法及系统 | |
CN114118082A (zh) | 一种简历检索方法及装置 | |
CN113869054A (zh) | 一种基于深度学习的电力领域项目特征识别方法 | |
CN117851567A (zh) | 一种基于领域适应的零样本表格检索方法 | |
CN112989803A (zh) | 一种基于主题向量学习的实体链接模型 | |
CN112925983A (zh) | 一种电网资讯信息的推荐方法及系统 |
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 |