System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于推荐系统,特别是涉及一种基于动态图聚合的对话推荐方法。
技术介绍
1、对话推荐系统(conversational recommender system,简称crs)是推荐系统领域的热点研究课题。与传统静态的推荐系统模型不同的是,crs通过自然语言与用户交互,在对话的过程中动态地根据用户的反馈提供更高质量的推荐,在电子商务、在线客服、旅游餐饮等领域有非常大的实用价值。一般来说,crs主要由对话模块和推荐模块两部分组成,对话模块负责理解用户当前意图并生成相应的自然语言答复,推荐模块则需要捕捉用户的偏好并提供高质量的推荐项目,crs通过转换机制将两个部分结合起来生成最终的包含推荐项目的答复。
2、然而,由于crs本身不包含任何相关知识信息,所以它无法仅靠简短的几句对话就理解用户的全部意图。为了解决这个问题,一些研究引入了外部知识图(knowledge graph,kg)来丰富上下文信息,如电影相关知识图dbpedia、单词相关知识图conceptnet等。其中主要使用图神经网络来聚合知识图的信息以便将其整合进crs框架,如图卷积神经网络gcn、关系图卷积神经网络rgcn等。在对话生成方面,crs通常使用序列到序列模型作为语言模型来生成答复文本,如transformer,其通常为编码器-解码器结构,编码器将上下文对话作为输入并将其编码为高级表示,而解码器根据此编码表示生成响应。
3、尽管很多研究表明这样的做法确实能够提高crs的性能,但仍然存在两个问题亟待解决。首先,在利用以知识图为主的辅助信息时,
技术实现思路
1、本专利技术的目的在于提供一种基于动态图聚合的对话推荐方法,能够得到更准确的推荐结果,生成更高质量的自然语言答复。
2、本专利技术所采用的技术方案是,一种基于动态图聚合的对话推荐方法,其特征在于,包括以下步骤:
3、步骤s1,gcn编码项目级别的知识图;
4、步骤s2,动态图聚合编码单词级别知识图,通过对话上下文挑选知识图现有三元组,进一步构建动态子图,最终获得的是一张全局图,所述步骤2具体包括:
5、步骤s21,动态图构建;
6、步骤s22,动态图聚合;
7、步骤s3,增强知识图的推荐模块;
8、步骤s4,增强知识图的对话模块。
9、进一步的,所述步骤s1中,根据对话内容构建新的动态知识图来利用知识图信息,并融合语言模型的编码器弥补知识图与语言模型之间的语义鸿沟:
10、
11、其中,r表示关系集合,表示节点e在节点间关系r下的相邻节点的集合,w(l)表示可训练参数矩阵,表示与邻居节点e'相关的权重矩阵,w(l)表示与自身相关的权重矩阵,ze,r表示归一化因子,表示节点e在下一层的表示,σ表示非线性激活函数,表示节点e在当前层的表示,表示节点e的邻居节点e'在当前层的表示。
12、进一步的,所述步骤s21中,
13、步骤s21a,通过单词匹配和规则过滤检索当前对话的回复,挑选出全部出现在回复中的单词以及与之相连接的其他单词,进而挑选出与当前回复相关的全部三元组,形成若干张子图,每张子图包含若干三元组;然后将每个三元组展平并送入对话模块中的语言模型编码器中,得到基础伪节点每一个伪节点代表一个三元组:
14、
15、其中,f(tj)表示对三元组tj进行展平操作,将三元组展为文本序列(例如:(play,mannerof,sound)将被展平为”play manner of milk”),encoder表示对话模块中的语言模型编码器,分别表示三元组tj的头节点,节点间关系,尾节点;是得到的基础伪节点;
16、步骤s21b,引入语言模型编码器,学习当前文本中提到的单词的语义,同时填补知识图与语言生成模型之间存在的语义鸿沟,得到基本伪节点之后,再按照分组用分层伪节点将基本伪节点连接起来,形成由新的三元组构成的新子图:
17、
18、g'i={t'1,t'2,…,t'j} (5)
19、其中,t'j表示新三元组,g'i表示新子图,表示得到的基础伪节点,ra是新的三元组中的关系,表示分层伪节点,t'1,t'2,…,t'j表示各个新的三元组;
20、步骤s21c,通过根伪节点v将子图连接起来,最终形成一张全新的由伪三元组构成的全局伪图;
21、
22、g'={t1,t2,…,tj} (7)
23、其中,tj表示伪三元组,g'表示全局伪图表示分层伪节点,v表示根伪节点,t1,t2,…,tj表示分层伪节点和根伪节点v连接形成的伪三元组,ra表示它们之间的关系。
24、进一步的,所述步骤s22,基于步骤s21得到的重构的伪图,选择注意力机制在伪节点之间动态聚合信息以学习整张图,直接计算全部基本伪节点的平均值来聚合节点的特征,得到全局表示ε;将上下文出现过的单词送入语言模型编码器,得到上下文语义编码;最后,将ε与te级联起来送入一个全连接网络得到查询向量q,用于后续的注意力机制;
25、
26、te=encoder(context_words) (9)
27、q=fc(ε;te) (10)
28、其中,ε表示全部三元组的整体语义,te表示上下文语义编码,q表示查询向量,表示基本伪节点,|g'|表示新生成的全局伪图的节点数量,encoder表示语言模型编码器,context_words表示上下文出现过的单词,fc表示全连接神经网络。
29、进一步的,所述步骤s22得到查询向量q之后,正式开始图聚合过程,聚合基本伪节点的信息,以此来学习分层伪节点
30、
31、其中,表示注意力打分,表示注意力分布,是参数矩阵,q表示查询向量,表示基本伪节点;注意力更新函数,即根据注意力分布聚合的信息到的过程;t表示矩阵的转置,|g'i|表示子图g'i中节点的个数,j表示遍历这个子图的当前序号;
32、最后,聚合分层伪节点的信息来学习根伪节点v,聚合完成后,得到由conceptnet根据对话上下文内容动态聚合到的全局特征,即单词级别的嵌入矩阵u;
33、
34、其中,表示基本伪节点,q表示查询向量,|g'|表示新生成的全局伪图的节点数量,g'表示全局伪图,表示分层伪节点,表示注意力打分,wg'表示参数矩阵,表示是注意力分布,j表示遍历这个子图的本文档来自技高网...
【技术保护点】
1.一种基于动态图聚合的对话推荐方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于动态图聚合的对话推荐方法,其特征在于,所述步骤S1中,根据对话内容构建新的动态知识图来利用知识图信息,并融合语言模型的编码器弥补知识图与语言模型之间的语义鸿沟:
3.根据权利要求1所述的一种基于动态图聚合的对话推荐方法,其特征在于,所述步骤S21中,
4.根据权利要求1所述的一种基于动态图聚合的对话推荐方法,其特征在于,所述步骤S22,基于步骤S21得到的重构的伪图,选择注意力机制在伪节点之间动态聚合信息以学习整张图,直接计算全部基本伪节点的平均值来聚合节点的特征,得到全局表示ε;将上下文出现过的单词送入语言模型编码器,得到上下文语义编码;最后,将ε与TE级联起来送入一个全连接网络得到查询向量q,用于后续的注意力机制;
5.根据权利要求4所述的一种基于动态图聚合的对话推荐方法,其特征在于,所述步骤S22得到查询向量q之后,正式开始图聚合过程,聚合基本伪节点的信息,以此来学习分层伪节点
6.根据权利要求1所述的一种基于动态图聚
7.根据权利要求6所述的一种基于动态图聚合的对话推荐方法,其特征在于,基于所述步骤S3的得到的用户偏好pu,用Softmax函数计算用户偏好表示与项目嵌入的相似度,得到一系列得分,进而生成一个排名,得到一个待推荐的项目集,这里设置一个交叉熵损失函数来学习参数:
8.根据权利要求1所述的一种基于动态图聚合的对话推荐方法,其特征在于,所述步骤S4中,使用Transformer作为对话模块的语言模型,
9.根据权利要求1或8所述的一种基于动态图聚合的对话推荐方法,其特征在于,所述步骤S4中,设置一个交叉熵损失函数学习参数:
...【技术特征摘要】
1.一种基于动态图聚合的对话推荐方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于动态图聚合的对话推荐方法,其特征在于,所述步骤s1中,根据对话内容构建新的动态知识图来利用知识图信息,并融合语言模型的编码器弥补知识图与语言模型之间的语义鸿沟:
3.根据权利要求1所述的一种基于动态图聚合的对话推荐方法,其特征在于,所述步骤s21中,
4.根据权利要求1所述的一种基于动态图聚合的对话推荐方法,其特征在于,所述步骤s22,基于步骤s21得到的重构的伪图,选择注意力机制在伪节点之间动态聚合信息以学习整张图,直接计算全部基本伪节点的平均值来聚合节点的特征,得到全局表示ε;将上下文出现过的单词送入语言模型编码器,得到上下文语义编码;最后,将ε与te级联起来送入一个全连接网络得到查询向量q,用于后续的注意力机制;
5.根据权利要求4所述的一种基于动态图聚合的对话推荐方法,其特征在于,所述步骤s22得到查询向量q之后,正式开始图聚合过程,聚合基本伪节点的信息,以...
【专利技术属性】
技术研发人员:何婧,谯光辉,王勉,张镇,蔡静雯,
申请(专利权)人:云南大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。