通过多偏好建模和知识增强改进对话推荐系统

未命名 09-01 阅读:105 评论:0


1.本发明涉及一种推荐系统技术领域和对话系统技术领域,特别是涉及一种通过多偏好建模和知识增强改进对话推荐系统。


背景技术:

2.随着智能助理以及各大电商平台的蓬勃发展,对话推荐系统(conversational recommender systems,crs)成为了一个新兴的研究领域。传统推荐系统依赖用户与项目的历史交互数据来获取推荐结果,而crs专注于生成自然语言来和用户交互并从中逐步学习用户偏好,最后提供更高质量的推荐。
3.一个成功的crs需要在理解用户意图,了解用户偏好后,使用适当的语句回复用户。正如我们从图1中看到的(下划线表示简单推荐的语句),系统使用自然且流畅的语句向用户询问,并在了解用户兴趣后为用户推荐项目。因此,crs通常包含一个推荐模块和一个对话模块,前者用于产生满足用户偏好的项目,后者用于生成闲聊或推荐的语句。
4.crs旨在以较少的对话轮数完成推荐,而短对话历史能够提供的信息往往不足。现有研究主要将对话历史中涉及的电影实体作为用户偏好(我们称之为实体偏好),这些实体来自经过实体链接任务后的外部知识图谱(knowledge graph,kg)。通过结合外部知识,可以有效增强用户的表示,缓解信息不足的问题。然而,对于外部kg,现有研究几乎都是从大型知识图谱dbpedia中提取出相关领域(电影)子图,这种方式实现虽然方便,但会存在两个问题:1)由于dbpedia包含很多领域,因此抽取的子图会存在非相关领域的噪音,这在一定程度上阻碍了crs对外部知识的利用;2)dbpedia没有很好地覆盖crs数据集中的项目,因此许多项目不能匹配到子图中的实体。此外,即便通过引入外部知识来丰富对话历史,用户话语中提及的实体数量依然稀缺,少量的实体使得模型难以精准学习用户偏好。另一方面,仅用实体作为用户的唯一偏好是片面的,这种做法没有考虑到用户话语中隐藏的语义信息。如图1所示,用户对系统初次推荐的电影“the avengers”表示出负面看法。这实际上是一种隐藏的用户意图(我们称之为语义偏好),但过去仅用实体偏好的方式忽视了用户的真实意图,会将这部电影认为是用户喜欢的。从实际场景出发,用户对项目(电影)的喜好应该是多方面的,例如喜欢一部电影不仅仅是由于电影内容本身,还可能受到其类型或是导演的影响(我们称之为属性偏好)。正如图1中,用户接受系统推荐的“interstellar(2014)”的原因可能是因为这部电影是科幻类型或者导演是“nolan”。然而,用户话语里却很少谈到与电影相关的属性,虽然知识图谱里含有这种属性关系,但那只是一种隐式的表达,因此需要一种更显式的处理方式。对于对话模块而言,其目标是生成流畅且多样的回复。然而,在训练数据的对话历史中简单的推荐语句占多数,并且对话中一些特殊关键词也没有得到现有研究的重视。这便导致现有crs的对话模块生成的回复往往比较单一乏味,难以生成有助于解释或描述推荐结果的多样回复。


技术实现要素:

5.本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种通过多偏好建模和知识增强改进对话推荐系统。
6.为了实现本发明的上述目的,本发明提供了一种通过多偏好建模和知识增强改进对话推荐系统,包括语义融合模块、推荐模块或/和对话模块;
7.语义融合模块的数据输出第一端与推荐模块的数据输入端相连,语义融合模块的数据输出第二端与对话模块的数据输入端相连;
8.语义融合模块用于将外部知识与对话文本的信息进行融合;
9.推荐模块用于通过结合用户来自文本、实体、图像之一或者任意组合的偏好,推荐模块将利用大型预训练模型提供推荐;
10.对话模块用于通过设计解释模板或/和突显对话关键词,对话模块结合推荐结果生成流畅且多样的回复。
11.在本发明的一种优选实施方式中,在语义融合模块中包括信息编码单元和语义融合单元;
12.信息编码单元的数据输出端与语义融合单元的数据输入端相连;
13.信息编码单元用于信息编码;
14.语义融合单元用于语义融合。
15.在本发明的一种优选实施方式中,在信息编码单元中包括:
[0016][0017]
其中,表示实体e在第l+1层的实体表示;
[0018]
σ(
·
)表示relu激活;
[0019]
表示实体e和实体t二者的关系集;
[0020]
表示实体e在关系r下的相邻节点集合;
[0021]ze,r
表示归一化因子;
[0022]
表示第一可学习矩阵;
[0023]
表示第二可学习矩阵;
[0024]
表示实体e相邻节点在第l层的表示;
[0025]
表示实体e在第l层的实体表示;
[0026][0027]
其中,表示单词v在第l+1层的表示;
[0028]
σ(
·
)表示relu激活;
[0029]
d表示对角度矩阵;
[0030]
a表示图的邻接矩阵;
[0031]
表示单词v在第l层的表示;
[0032]
表示单词v在第l层的转换矩阵。
[0033]
在本发明的一种优选实施方式中,在语义融合单元中包括:
[0034][0035]
其中,t
e,c
表示项目实体与文本的亲和矩阵;
[0036]ee
表示实体嵌入矩阵;
[0037]eet
表示实体嵌入矩阵ee的转置矩阵;
[0038]
w1表示第一转换矩阵;
[0039]
ec表示上下文嵌入矩阵;
[0040]
t
c,v
=e
ct
w2ev,
[0041]
其中,t
c,v
表示单词实体与文本的亲和矩阵;
[0042]
ec表示上下文嵌入矩阵;
[0043]ect
表示上下文嵌入矩阵ec的转置矩阵;
[0044]
w2表示第二转换矩阵;
[0045]ev
表示单词嵌入矩阵;
[0046]ee,c
=ect
e,c
+ee,
[0047]ee,c
表示融合后的实体嵌入;
[0048]
ec表示上下文嵌入矩阵;
[0049]
t
e,c
表示项目实体与文本的亲和矩阵;
[0050]ee
表示实体嵌入矩阵;
[0051]ec,v
=evt
c,v
+ec,
[0052]
其中,e
c,v
表示融合后的词嵌入;
[0053]ev
表示单词嵌入矩阵;
[0054]
t
c,v
表示单词实体与文本的亲和矩阵;
[0055]
ec表示上下文嵌入矩阵。
[0056]
在本发明的一种优选实施方式中,在推荐模块中包括:
[0057][0058]
其中,表示在探索阶段融合后的特征嵌入矩阵;
[0059]ee,c
表示融合后的实体嵌入;
[0060]
ec表示上下文嵌入矩阵;
[0061]ep-rec
表示推荐任务的提示模板特征;
[0062][0063]
其中,表示第t回合探索阶段的推荐结果集合;
[0064]
dialogpt
rec
(
·
)表示推荐任务下冻结参数的预训练模型dialogpt;
[0065]
表示在探索阶段融合后的特征嵌入矩阵;
[0066]
ea,im=lookup(m
top
),
[0067]
其中,ea表示属性实体;
[0068]im
表示原始的海报图像;
[0069]
lookup(
·
)表示查找电影m
top
的相关属性;
[0070]mtop
表示推荐结果集合中概率最高的电影。
[0071]
在本发明的一种优选实施方式中,在推荐模块中还包括:
[0072]ei
=darknet53(im),
[0073]
其中,ei表示图像特征矩阵;
[0074]
darknet53(
·
)表示预训练后的图像特征抽取模型;
[0075]im
表示原始的海报图像;
[0076][0077]
其中,e
rec2
表示在整合阶段融合后的特征嵌入矩阵;
[0078]ee,c
表示融合后的实体嵌入;
[0079]
ec表示上下文嵌入矩阵;
[0080]ep-rec
表示推荐任务的提示模板特征;
[0081]
ea表示属性实体;
[0082][0083]
表示跨模态融合后的用户偏好;
[0084]
表示在整合阶段融合后的特征嵌入矩阵;
[0085]
ca(
·
)表示跨模态注意力层;
[0086]ei
表示图像特征矩阵;
[0087][0088]
其中,表示最终的推荐结果集合;
[0089]
dialogpt
rec
(
·
)表示推荐任务下冻结参数的预训练模型dialogpt;
[0090]
表示跨模态融合后的用户偏好。
[0091]
在本发明的一种优选实施方式中,在对话模块中包括:
[0092]egen
=e
c,v
+e
tc
+e
p-gen

[0093]
其中,e
gen
表示融合后的特征嵌入矩阵;
[0094]ec,v
表示融合后的词嵌入;
[0095]etc
表示融合解释模板后的上下文嵌入;
[0096]ep-gen
表示对话任务的提示板特征;
[0097]st
=dialogpt
gen
(e
gen
),
[0098]
其中,s
t
表示第t轮生成的回复句子;
[0099]
dialogpt
gen
(
·
)表示对话任务下冻结参数的预训练模型dialogpt;
[0100]egen
表示融合后的特征嵌入矩阵。
[0101]
在本发明的一种优选实施方式中,还包括知识图谱模块,知识图谱模块用于引入外部知识。
[0102]
在本发明的一种优选实施方式中,还包括指标评价模块,指标评价模块用于评价对话推荐系统的推荐准确性或/和对话的流畅性或/和多样性。
[0103]
综上所述,由于采用了上述技术方案,本发明根据用户的多方面偏好以及外部知识,提高了系统推荐的准确性以及系统回复的质量和多样性。
[0104]
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
[0105]
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0106]
图1是本发明对话推荐示例图。
[0107]
图2是本发明模型整体架构示意框图。
[0108]
图3是本发明一个实体知识图谱lmkg的样本示意子图。
[0109]
图4是本发明关于推荐任务的消融实验示意图。
具体实施方式
[0110]
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0111]
1引言
[0112]
随着智能助理以及各大电商平台的蓬勃发展,对话推荐系统(conversational recommender systems,crs)成为了一个新兴的研究领域。传统推荐系统依赖用户与项目的历史交互数据来获取推荐结果,而crs专注于生成自然语言来和用户交互并从中逐步学习用户偏好,最后提供更高质量的推荐。
[0113]
一个成功的crs需要在理解用户意图,了解用户偏好后,使用适当的语句回复用户。正如我们从图1中看到的,系统使用自然且流畅的语句向用户询问,并在了解用户兴趣后为用户推荐项目。因此,crs通常包含一个推荐模块和一个对话模块,前者用于产生满足用户偏好的项目,后者用于生成闲聊或推荐的语句。
[0114]
crs旨在以较少的对话轮数完成推荐,而短对话历史能够提供的信息往往不足。现有研究主要将对话历史中涉及的电影实体作为用户偏好(我们称之为实体偏好),这些实体来自经过实体链接任务后的外部知识图谱(knowledge graph,kg)。通过结合外部知识,可以有效增强用户的表示,缓解信息不足的问题。然而,对于外部kg,现有研究几乎都是从大型知识图谱dbpedia中提取出相关领域(电影)子图,这种方式实现虽然方便,但会存在两个问题:1)由于dbpedia包含很多领域,因此抽取的子图会存在非相关领域的噪音,这在一定程度上阻碍了crs对外部知识的利用;2)dbpedia没有很好地覆盖crs数据集中的项目,因此许多项目不能匹配到子图中的实体。此外,即便通过引入外部知识来丰富对话历史,用户话语中提及的实体数量依然稀缺,少量的实体使得模型难以精准学习用户偏好。另一方面,仅用实体作为用户的唯一偏好是片面的,这种做法没有考虑到用户话语中隐藏的语义信息。如图1所示,用户对系统初次推荐的电影“the avengers”表示出负面看法。这实际上是一种
隐藏的用户意图(我们称之为语义偏好),但过去仅用实体偏好的方式忽视了用户的真实意图,会将这部电影认为是用户喜欢的。从实际场景出发,用户对项目(电影)的喜好应该是多方面的,例如喜欢一部电影不仅仅是由于电影内容本身,还可能受到其类型或是导演的影响(我们称之为属性偏好)。正如图1中,用户接受系统推荐的“interstellar(2014)”的原因可能是因为这部电影是科幻类型或者导演是“nolan”。然而,用户话语里却很少谈到与电影相关的属性,虽然知识图谱里含有这种属性关系,但那只是一种隐式的表达,因此需要一种更显式的处理方式。对于对话模块而言,其目标是生成流畅且多样的回复。然而,在训练数据的对话历史中简单的推荐语句占多数,并且对话中一些特殊关键词也没有得到现有研究的重视。这便导致现有crs的对话模块生成的回复往往比较单一乏味,难以生成有助于解释或描述推荐结果的多样回复。
[0115]
针对上述提到的几个问题,我们提出了一个新颖的模型,即通过多偏好建模和知识增强改进对话推荐系统(improving conversational recommender systems via multi-preference modeling and knowledge-enhanced,mpke)。首先,为了降低其他领域的干扰并提高项目覆盖率,我们构造了一个轻量级电影知识图谱lmkg。同时,我们通过roberta和r-gcn来获取文本的语义偏好和知识图谱的实体偏好,并设计了一个语义融合模块以对齐不同的语义空间。接着,我们提出两阶段推荐机制(探索阶段和整合阶段)来解决对话历史中实体数量以及项目属性稀缺的问题。在探索阶段,我们仅使用语义偏好和实体偏好来获取推荐结果并查找相关属性。值得注意的是,我们将电影的海报也作为一种视觉辅助的属性偏好加入其中。在整合阶段,我们融合了语义偏好、实体偏好以及属性偏好并生成新的推荐结果。在回复生成方面,我们构造了带插槽的解释模板并将其与原始对话融合,从而帮助系统生成更具有描述性的语句。同时,我们在融合模块中利用单词级知识图谱conceptnet来增强对话关键词的表示,丰富系统回复的多样性。基于基准数据集的大量实验表明,mpke在推荐准确度和回复质量方面都优于目前最先进的crs模型。
[0116]
本专利申请的主要贡献如下:1)我们构造了低噪音且高质量的轻量级电影知识图谱lmkg;2)我们设计了语义融合模块和两阶段推荐机制来探寻并融合用户多偏好;3)我们使用单词级知识图谱增强关键词表示并构造解释语句模板来提升系统回复的质量和多样性。
[0117]
2相关工作
[0118]
随着对话系统和推荐系统的迅速发展,对话推荐系统也成为了一个新兴的研究课题,其目标是在较少的对话轮数里捕获用户偏好并通过自然语言为用户提供高质量的推荐。一类是基于属性的crs,它们只关注推荐而不注重对话生成,系统通常使用预定义的带插槽的回复模板和用户交互,并且一般利用多臂强盗模型或者强化学习来寻找最优的交互策略。
[0119]
最近,一些研究关注于能精准推荐并且生成流畅话语的开放式crs。不同于构建回复模板的基于属性的crs,开放式crs是一种端到端的模型,通过使用转换机制或拷贝网络将推荐结果整合到回复语句中。
[0120]
尽管现有研究取得一定成果,但它们都只是片面地将用户话语中涉及的电影实体作为用户偏好,而忽视了用户偏好应该是多方面的。当用户谈及一部喜欢的电影时,模型不应该只考虑电影本身,还需要关注用户话语的隐含信息以及电影的相关属性(导演、电影海
报等)。此外,现有研究更多关注的是模型的推荐性能,但对于开放式crs来说,生成流畅且多样的回复语句也是一个重要的目标。因此,我们提出mpke来建模用户多偏好并利用知识增强来提升模型推荐和对话的性能。
[0121]
3问题定义
[0122]
对话推荐系统旨在与用户进行较少的多轮对话完成精准推荐。在一轮对话中,系统要么询问用户偏好,要么基于已学习的用户偏好给出推荐结果,整个过程持续到用户接受推荐或因失去耐心而退出。通常,crs由推荐模块和对话模块组成,分别完成推荐和回复生成任务。
[0123]
形式上,我们使用表示用户集合中的一位用户,表示电影集合中的一部电影。用户话语中提及的电影或人名等信息将用实体e∈ε表示,这些实体来自特定的知识图谱并作为用户偏好的一部分。一个对话通常包含n轮,其中si表示第i轮对话的句子并且每个句子是由k个单词组成的序列。在第t轮时,模型将根据对话历史中的信息学习用户偏好,接着从电影集合中选出推荐子集最后生成含有电影的回复语句s
t
。需要注意的是,推荐子集可能是空集此时模型生成的是闲聊语句。
[0124]
4方法
[0125]
在这一节中,我们提出了通过建模用户多偏好和知识增强来提升性能的crs模型,即mpke,模型整体架构如图2所示(我们首先融合并对齐知识图谱和上下文的语义,然后使用两阶段推荐机制并融合用户多偏好来得到推荐结果。接着,我们使用知识增强后的对话模块生成回复并将推荐结果填入插槽)。首先,我们构造了一个更高质量的实体级知识图谱lmkg(章节4.1)。然后,我们通过语义融合模块将外部知识与对话文本的信息进行融合(章节4.2)。接着,我们设计两阶段推荐机制探寻并融合用户多偏好(章节4.3),从而提升推荐模块性能。最后,我们利用知识增强以及解释模板来提升对话模块的性能(章节4.4)。
[0126]
4.1构建知识图谱lmkg
[0127]
先前的工作为了丰富对话历史信息,增强用户表示,往往会引入外部知识,例如知识图谱dbpedia。然而,dbpedia作为大型的多领域知识图谱,包含了很多无关实体和模糊的高阶链接。尽管先前的工作对dbpedia抽取了子图,但仍然存在很多来自其他领域的噪音。此外,子图对crs数据集中的电影覆盖率还不足,导致对话中的很多电影无法匹配子图的实体。对此,我们为crs领域构建了一个更高质量的轻量级电影知识图谱(lmkg),其样本子图如图3所示(红色字体表示电影,黑色字体表示电影的属性,灰色字体表示关系)。
[0128]
表1lmkg和dbpedia子图对比结果
[0129][0130][0131]
lmkg的有效实体数量要远高于dbpedia。
[0132]
首先,我们以数据集中涉及的电影以及发布时间作为关键字,从维基百科和电影网站imdb上收集相关电影的信息(例如导演、演员)。接着,我们对收集的信息进行整理并以三元组(h,r,t)的形式保存,其中h,t∈ε表示头实体和尾实体,表示二者的关系。lmkg中的实体(节点)主要分为两类:电影实体和属性实体,其中属性包括演员、导演、编剧和类别。不同于dbpedia子图,我们构建lmkg时强调了实体的有效性。其中,有效电影实体是指该电影至少拥有一个属性,而有效属性实体是指至少有两部电影拥有该属性。一个无效的电影或者属性实体是孤立的,而这种孤立实体在后续进行图的聚合学习时也是一种干扰。表1展示了lmkg和dbpedia子图之间的差异。dbpedia子图的实体虽然数量多,但其有效的实体数量却远低于lmkg,这表明dbpedia子图存在一定的干扰。此外,由于lmkg是专为crs领域构建的,因此它对crs数据集中电影的覆盖率更高。这同时也是lmkg轻量级和高质量的体现。
[0133]
4.2语义融合模块
[0134]
由于知识图谱和对话文本之间存在巨大的语义鸿沟,因此我们需要将二者的语义空间进行融合,从而更有效地利用外部知识。
[0135]
4.2.1信息编码
[0136]
对于知识图谱lmkg(之后表示为),我们必须考虑其实体间的语义关系。因此,我们采取r-gcn来编码并获得实体嵌入字典具体来说,在第(l+1)层,实体e在中的表示定义为:
[0137][0138]
其中,表示实体e在第l+1层的实体表示;
[0139]
σ(
·
)表示relu激活函数;
[0140]
表示实体e的关系集;
[0141]
表示实体e在关系r下的相邻节点集合;
[0142]ze,r
表示归一化因子;
[0143]
表示关系r在第l层的可学习矩阵;
[0144]
表示实体e在第l层的可学习矩阵;
[0145]
表示实体e相邻节点在第l层的表示;
[0146]
表示实体e在第l层的实体表示;
[0147]
对于知识图谱conceptnet(之后表示为),我们移除了其中与对话语料库不相关的单词。此外,由于单词间的关系对后续任务没有影响,所以我们选择使用gcn来编码每次更新时,gcn会接受中单跳邻居的信息,并执行以下聚合操作:
[0148][0149]
其中,表示单词v在第l+1层的表示;
[0150]
σ(
·
)表示relu激活函数;
[0151]
d表示对角度矩阵;
[0152]
a表示图的邻接矩阵;
[0153]
表示单词v在第l层的表示;
[0154]
表示单词v在第l层的转换矩阵;
[0155]
对于对话文本中的语义信息,我们用其作为推荐模块里用户的语义偏好,而在对话模块中用于帮助回复生成。为了有效提取文本特征,我们使用了一个冻结参数的预训练语言模型roberta。根据给定的上下文c,我们执行实体链接以及文本编码后,可以得到相应的实体嵌入矩阵ee、上下文嵌入矩阵ec以及单词嵌入矩阵ev。
[0156]
4.2.2语义融合
[0157]
为了缓解对话文本与知识图谱里实体间的语义差异,我们使用交叉交互机制关联二者的语义表征,具体如下:
[0158]
t
e,c
=e
et
w1ecꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0159]
其中,t
e,c
表示项目实体与文本的亲和矩阵;
[0160]ee
表示实体嵌入矩阵;
[0161]eet
表示实体嵌入矩阵ee的转置矩阵;
[0162]
w1表示第一转换矩阵;
[0163]
ec表示上下文嵌入矩阵;
[0164]
t
c,v
=e
ct
w2evꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0165]
其中,t
c,v
表示文本与单词实体的亲和矩阵;
[0166]
ec表示上下文嵌入矩阵;
[0167]ect
表示上下文嵌入矩阵ec的转置矩阵;
[0168]
w2表示第二转换矩阵;
[0169]ev
表示单词嵌入矩阵;
[0170]ee,c
=ect
e,c
+eeꢀꢀꢀꢀꢀ
(5)
[0171]ee,c
表示融合后的实体嵌入;
[0172]
ec表示上下文嵌入矩阵;
[0173]
t
e,c
表示项目实体与文本的亲和矩阵;
[0174]ee
表示实体嵌入矩阵;
[0175]ec,v
=evt
c,v
+ecꢀꢀꢀꢀꢀ
(6)
[0176]
其中,e
c,v
表示融合后的词嵌入;
[0177]ev
表示单词嵌入矩阵;
[0178]
t
c,v
表示文本与单词实体的亲和矩阵;
[0179]
ec表示上下文嵌入矩阵;
[0180]
在后续任务中,模型使用的都是基于上述公式提供的增强后的实体嵌入和词嵌入。然而,由于在语义融合模块中还存在一些额外参数,因此我们使用对话中的自监督信号来对融合模块进行了预训练,从而实现对额外参数的优化。
[0181]
4.3偏好增强的推荐模块
[0182]
在过去的研究中,推荐模块主要使用对话历史中涉及的电影实体来代表用户偏好。然而,电影实体的数量往往是稀疏的,导致推荐模块捕获的用户偏好不够精准。此外,用户话语中往往隐含着额外信息,仅用电影实体代表用户偏好是片面的。对此,我们首先通过预训练模型编码对话文本,从而获取隐藏在用户话语中的语义偏好(章节4.2.1)。接着,我们第一次提出两阶段推荐机制(探索阶段和整合阶段)来获取用户属性偏好,弥补实体数量的不足。此外,我们在项目属性中考虑了视觉层面的信息(电影海报)并将其作为一种辅助偏好。因此,严格来说属性偏好由项目属性实体和项目图像组成。
[0183]
4.3.1探索阶段
[0184]
由于模型计算生成的推荐结果能在一定程度上满足用户偏好,因此其相关属性的实体也能作为用户偏好的一部分。在探索阶段我们仅将代表实体偏好的实体嵌入e
e,c
和代表语义偏好的上下文嵌入ec作为模型输入。接着,我们使用dialogpt作为基础预训练模型来解码用户偏好并得到初次推荐结果。dialogpt采用了transformer的自回归结构并在大规模对话语料库上经过训练,因此它是非常适合crs任务的基础模型。不过对于这类预训练语言模型,往往需要根据下游任务进行调整,所以我们使用提示模板来引导dialogpt适应crs的推荐任务。具体过程如下:
[0185]erec1
=e
e,c
+ec+e
p-rec
ꢀꢀꢀꢀ
(7)
[0186]
其中,表示在探索阶段融合后的特征嵌入矩阵;
[0187]ee,c
表示融合后的实体嵌入;
[0188]
ec表示上下文嵌入矩阵;
[0189]ep-rec
表示推荐任务的提示模板特征;
[0190][0191]
其中,表示第t回合探索阶段的推荐结果集合;
[0192]
dialogpt
rec
(
·
)表示推荐任务下冻结参数的预训练模型dialogpt;
[0193]
表示在探索阶段融合后的特征嵌入矩阵;
[0194]
接着,模型将查询出初次推荐结果的相关属性(例如导演、演员等)以及电影海报。
具体过程如下:
[0195]
ea,im=lookup(m
top
)
ꢀꢀꢀꢀ
(9)
[0196]
其中,ea表示属性实体;
[0197]im
表示原始的海报图像;
[0198]
lookup(
·
)表示查找电影m
top
的相关属性;
[0199]mtop
表示推荐结果集合中概率最高的电影。
[0200]
4.3.2整合阶段
[0201]
在整合阶段,我们将融合用户来自项目实体、属性实体、文本语义以及视觉图像的多方面偏好,其中视觉信息仅作为次要的辅助偏好。对于电影海报im,我们通过darknet53提取其图像特征并利用跨模态注意力(cross-modal attention,ca)将其与其他特征进行融合。具体过程如下:
[0202]ei
=darknet53(im)
ꢀꢀꢀꢀꢀ
(10)
[0203]
其中,ei表示图像特征矩阵;
[0204]
darknet53(
·
)表示预训练后的图像特征抽取模型;
[0205]im
表示原始的海报图像;
[0206][0207]
其中,表示在整合阶段融合后的特征嵌入矩阵;
[0208]ee,c
表示融合后的实体嵌入;
[0209]
ec表示上下文嵌入矩阵;
[0210]ep-rec
表示推荐任务的提示模板特征;
[0211]
ea表示属性实体;
[0212][0213]
表示跨模态融合后的用户偏好;
[0214]
表示在整合阶段融合后的特征嵌入矩阵;
[0215]
ca(
·
)表示跨模态注意力层;
[0216]ei
表示图像特征矩阵;
[0217][0218]
其中,表示最终的推荐结果集合;
[0219]
dialogpt
rec
(
·
)表示推荐任务下冻结参数的预训练模型dialogpt;
[0220]
表示跨模态融合后的用户偏好;
[0221]
公式(12)表示,跨模态融合后的特征仅作为辅助偏好。ca(
·
)的具体计算过程如下:
[0222][0223]
其中,ca(
·
)表示跨模态的注意力层;
[0224]
softmax(
·
)表示激活函数;
[0225]
d表示嵌入维度;
[0226]
即是
[0227]
其中d表示嵌入维度。
[0228]
4.4知识增强的对话模块
[0229]
以往的研究更多关注的是如何提升模型的推荐性能,而没有足够重视crs的另一个目标,即生成流畅且多样的回复。我们通过整合外部知识和带插槽的解释模板来增强对话模块的性能,使其能生成更具描述性和解释性的语句。
[0230]
针对我们收集的电影属性信息,我们构建了一定数量的解释模板,例如“this film is a classic[genre]film directed by[director].”。为了便于对话模块学习生成解释语句,该模板对电影的相关属性被掩码为插槽(例如“[genre]”),而不带任何具体信息。训练对话模块时,我们将解释模板拼接到对话历史的推荐语句后。在整合推荐结果到回复语句时,模型需查询推荐结果的具体信息再将其填充到插槽。
[0231]
基于dialogpt的方法在许多回复生成任务上都取得了优异的表现。因此,我们依然使用固定参数的预训练语言模型dialogpt来完成对话任务。同样地,为了引导预训练语言模型适应crs的回复生成任务,我们借助了提示学习的方法。对于整合了解释模板的对话上下文,我们仍然使用roberta来得到模板上下文嵌入e
tc
。具体的对话生成过程如下:
[0232]egen
=e
c,v
+e
tc
+e
p-gen
ꢀꢀꢀꢀ
(16)
[0233]
其中,e
gen
表示融合后的特征嵌入矩阵;
[0234]ec,v
表示融合后的词嵌入;
[0235]etc
表示融合解释模板后的上下文嵌入;
[0236]ep-gen
表示对话任务的提示板特征;
[0237]st
=dialogpt
gen
(e
gen
)
ꢀꢀꢀꢀ
(17)
[0238]
其中,s
t
表示第t轮生成的回复句子;
[0239]
dialogpt
gen
(
·
)表示对话任务下冻结参数的预训练模型dialogpt;
[0240]egen
表示融合后的特征嵌入矩阵。
[0241]
5实验环境
[0242]
在这个章节,我们将会介绍数据集、基线模型、评估指标以及实现细节。
[0243]
5.1数据集
[0244]
red
ial
是最常用的关于电影推荐的英文crs数据集,由amazon mechanical turk(amt)的众包工人按照寻求者和推荐者的角色对话构建的。它包含了由182150个句子组成的10,006个对话,涉及到504个用户和51,699部电影。对于每一个对话,我们都从第一句话逐个地回复,生成闲聊语句或给出推荐。此外,为了便于训练,我们在数据集中做了lmkg的实体链接任务,并将每句话所涉及的相关实体以字典格式保存。
[0245]
5.2基线
[0246]
我们从以前的研究中引入了多个有竞争力的基线,并用两种方式来分别评估模型的推荐性能和对话性能:
[0247]
textcnn:它基于cnn模型提取对话历史中的用户特征来排名项目。
[0248]
transformer:它利用对话历史并基于编码器-解码器的架构生成系统回复。
[0249]
redial:它随着数据集red
ial
一起发布,由一个基于hred的对话模块和一个基于自编码器的推荐模块组成。
[0250]
kbrd:它利用知识图谱来丰富对话历史并增强实体语义,采用基于transformer的对话模块来融合外部知识。
[0251]
kgsf:它引入了两个知识图谱来分别增强实体和单词的语义表示,并通过互信息最大化来对齐二者的语义空间。
[0252]
revcore:它引入了非结构化的外部知识,即项目相关的评论,来改进推荐和对话模块。
[0253]
c2-crs:它利用从粗到细的对比学习方法来对齐不同数据信号的语义单元,生成了更一致的融合表示。
[0254]
unicrs:它利用预训练语言模型和提示学习构建了统一的crs模型,整合了推荐模块和对话模块。
[0255]
gpt-2:它是一种自回归的预训练语言模型。我们将历史语句拼接后作为输入,将最后的令牌作为用户偏好以生成推荐,并将该型生成的文本作为系统回复。
[0256]
dialogpt:它是在大规模对话语料库上训练的自回归模型。训练采取类似gpt-2的做法。
[0257]
bart:它是在大规模通用语料库上经过去噪自编码任务预训练的序列到序列模型。训练采取类似gpt-2的做法。
[0258]
在上述基线中,textcnn是推荐方法,transformer是文本生成方法。redial、kbrd、kgsf、revcore、c2-crs以及unicrs是对话推荐系统的模型。gpt-2、dialogpt和bart是预训练语言模型,其中gpt-2和bart是在通用语料库训练的,dialogpt是在对话语料库训练的。
[0259]
5.3评价指标
[0260]
推荐和对话任务需要使用不同的评估指标。我们使用recall@k(k=1,10,50)来评估推荐,它表示模型推荐的前k项是否包含真实标签。为了更好地评估模型的回复生成,我们使用了自动评估和人工评估。自动评估包括1)perplexity:这个指标用来评估流畅性,并且数值越小表示句子越流畅;2)distinct-n(n=2,3,4):这个指标用来评估多样性。对于人工评估,注释者分别根据流畅性和信息量进行评分,分数的范围是0到2。
[0261]
5.4实现细节
[0262]
我们基于pytorch实现mpke模型,并在nvidia geforce rtx 3090卡上训练。为了公平比较,我们将公共参数与基线的保持一致。上下文的最大长度被设置为200,整合实体的最大数量为64。我们使用dialogpt-small作为基础预训练模块,其嵌入大小为768。对知识图谱lmkg编码时,类似于kgsf,我们使用1层的r-gcn。优化可调参数时时,我们使用默认参数的adamw。整个训练过程包括7个epochs的融合模块、5个epochs的推荐模块以及10个epochs对话模块。
[0263]
6结果与分析
[0264]
在这个部分,我们通过实验来验证了我们模型的有效性,并对一个案例进行了分析。
[0265]
6.1推荐任务评估
[0266]
结果分析。表2展示了不同方法在推荐任务上的结果。正如我们所见,对话推荐方法比普通推荐方法表现更好,这得益于crs更能从稀疏话语环境中学习用户偏好。在对话推荐方法中,kbrd引入了知识图谱来增强实体语义,kgsf通过mim对齐两个知识图谱的语义空间,revcore则整合了项目评论来丰富对话信息。这三种方法在外部知识的引入方面逐步增强,因此性能上revcore》kgsf》kbrd》redial。c2-cr和unicrs则在模型结构上做出了改进,前者利用对比学习来融合多粒度的信息,而后者使用提示学习构建了统一的框架。对于三个预训练模型,bart的表现更优秀,这或许是因为其他两者对话理解能力受限于它们的单向transformer架构。
[0267]
如表2所示,我们的模型优于所有的基线。在外部知识方面,我们构建了更高质量的知识图谱lmkg,降低了其他领域的干扰并进一步增强实体表示。在用户偏好方面,我们不仅整合了对话文本中用户的隐藏语义,还设计了二次推荐机制来探索稀缺的属性实体和图像表示。相比c2-crs,我们模型的r@1提升了9.4%,r@10提升了9.8%。在r@50上,我们的方法比unicrs提升了8.8%。
[0268]
表2推荐任务的结果
[0269][0270][0271]
我们把recall@k简称为r@k。粗体表示最好结果。
[0272]
消融研究。在推荐方面,我们通过构建一个高质量知识图谱lmkg以及整合用户多方面的偏好来提升模型的推荐性能。为了验证我们方法的有效性,我们进行了一系列消融实验。如表3和图4所示(“w/o lmkg”意味着使用的外部知识是dbpedia。“w/o f_entity”和“w/o a_entity”意味着去除原始实体和属性实体。“w/o context”意味着去除上下文表示。“w/o image”意味着去除图像表示),通过将知识图谱替换为lmkg,无论是基线模型还是
mpke的推荐性能均得到了提高。这表明我们构建的高质量知识图谱能有效帮助模型理解用户意图,提供更好的实体表示。对于用户的多偏好,移除图像嵌入后模型性能只是轻微降低,这也符合我们的预期,即将图像作为辅助的次要偏好。此外,“w/o f_entity”要略低于“w/o a_entity”,前者代表对话中涉及的电影实体,后者代表通过二次推荐机制探寻的属性实体。这表明电影实体的影响更强,但属性实体仍然能代表一部分用户偏好。
[0273]
表3关于lmkg的消融实验
[0274][0275][0276]
我们将以往crs模型使用的外部知识图谱替换为lmkg。
[0277]
6.2对话任务评估
[0278]
结果分析。表4展示了不同方法关于对话任务的自动评估结果。正我们所见,由于redial使用了预训练的rnn来表示对话,因此取得了比transformer更好的结果。kbrd利用外部kg来生成实体词的词概率偏置,而kgsf在前者基础上利用mim和kg增强的交叉注意力来增强文本和实体的表示。revcore则通过引入非结构化的评论来丰富对话文本,进一步提升系统回复的多样性。相比前面基线在外部知识上做的贡献,c2-crs和unicrs分别利用对比学习和提示学习来改进模型架构,因此在对话任务上也取得了更好的效果。此外,三个预训练模型的表现要比部分crs方法更好(例如kgsf和kbrd),这或许得益于它们在大规模语料库上做的生成训练。其中dialogpt要优于另外两个,是因为dialogpt的语料库是关于对话的。
[0279]
与基线相比,我们的模型取得了更好的结果。
[0280]
我们将普通文本表示与单词级知识图谱相结合,强调其中的关键词并增强文本的语义表示。此外,我们构建了解释模板并整合到对话历史中,以此提升系统回复的描述能力
和多样性。相比unicrs,我们的模型分别12.3%的dist-3分数,以及9.8%的dist-4分数。在流畅度方面,我们的模型与c2-crs相当的ppl分数。对于人工评估,表5也展示mpke生成的回复更流畅且多样。
[0281]
表4对话任务的自动评估结果
[0282][0283][0284]
我们把distinct-k简称为dist-k,perplexity简称为ppl。粗体表示最好的结果。
[0285]
表5对话任务的人工评估结果
[0286]
modelsfluencyinformativenesstransformer0.940.89redial1.211.07kbrd1.261.19kgsf1.481.32revcore1.511.37c2-crs1.541.44unicrs1.621.51gpt-21.531.38dialogpt1.601.46bart1.581.34mpke1.671.54
[0287]
最好的结果是用粗体表示。
[0288]
表6关于对话任务的消融实验
[0289][0290]“w/o f_word”意味着移除融合后的单词嵌入。“word”意味着使用非融合的单词嵌入。“w/o template”意味着移除解释模板。
[0291]
消融研究。在对话方面,我们引入了单词级知识图谱并构造了解释模板,以增强模型的对话性能。为了验证我们方法的有效性,我们进行了一系列消融实验,其结果如表6所示。正如我们所看见的,“w/o f_word”和“word”表明我们利用知识图谱来增强关键词的表示是有意义的。此外,“w/o template”也说明我们构造的模板能有提升模型回复的多样性。然而,模板语句和对话之间还是存在一定差异,因此在整合解释模板后也在一定程度上影响到了回复语句的流畅度。
[0292]
6.3案例分析
[0293]
在这个部分,我们将用案例来分析我们的mpke是如何工作的,首先,模型根据知识图谱lmkg和conceptnet分别提取对话上下文中的电影实体“saw(2004)”以及关键词“classic mystery”。然后,语义融合模块会将实体表示、单词表示以及文本表示进行交叉融合并将结果传给推荐模块和对话模块。推荐模块计算生成初步结果“the conjuring”,该电影在一定程度上是满足用户偏好的。接着,推荐模块查询初步结果的相关属性并将其作为辅助信息用于优化推荐,得到最终推荐结果“shutter island(2010)”。根据融合后的信息,对话模块先生成推荐回复,并该回复中有对推荐结果进行描述的带插槽的解释语句。然后,对话模块会将最终推荐结果的相关信息填充到插槽中作为完整的系统回复。
[0294]
7总结
[0295]
在本文中,我们提出了一种新颖的对话推荐模型,称为mpke。我们首先为对话推荐领域构建了一个新的知识图谱lmkg,其低噪音和高覆盖率的特性使得模型能更充分地利用外部知识提升性能。其次,我们构造了一个融合模块来将多个知识图谱和对话文本进行语义融合,为推荐和对话任务提供更好地嵌入表示。此外,我们设计了二次推荐机制来探寻稀缺的属性偏好并用于增强用户表示。同时,我们利用单词级知识图谱和解释模板来提升系统回复的多样性和解释性。大量的实验结果表明,我们的方法优于以往最先进的方法。目前,我们主要考虑的是直接推荐的场景。在未来的工作中,我们希望研究引导用户从闲聊场景转移到推荐场景。同时,我们也有兴趣研究利用相似用户的偏好来辅助。
[0296]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

技术特征:
1.一种通过多偏好建模和知识增强改进对话推荐系统,其特征在于,包括语义融合模块、推荐模块或/和对话模块;语义融合模块的数据输出第一端与推荐模块的数据输入端相连,语义融合模块的数据输出第二端与对话模块的数据输入端相连;语义融合模块用于将外部知识与对话文本的信息进行融合;推荐模块用于通过结合用户来自文本、实体、图像之一或者任意组合的偏好,推荐模块将利用大型预训练模型提供推荐;对话模块用于通过设计解释模板或/和突显对话关键词,对话模块结合推荐结果生成流畅且多样的回复。2.根据权利要求1所述的通过多偏好建模和知识增强改进对话推荐系统,其特征在于,在语义融合模块中包括信息编码单元和语义融合单元;信息编码单元的数据输出端与语义融合单元的数据输入端相连;信息编码单元用于信息编码;语义融合单元用于语义融合。3.根据权利要求2所述的通过多偏好建模和知识增强改进对话推荐系统,其特征在于,在信息编码单元中包括:其中,表示实体e在第l+1层的实体表示;σ(
·
)表示relu激活函数;表示实体e的关系集;表示实体e在关系r下的相邻节点集合;z
e,r
表示归一化因子;表示关系r在第l层的可学习矩阵;表示实体e在第l层的可学习矩阵;表示实体e相邻节点在第l层的表示;表示实体e在第l层的实体表示;其中,表示单词v在第l+1层的表示;σ(
·
)表示relu激活函数;d表示对角度矩阵;a表示图的邻接矩阵;表示单词v在第l层的表示;表示单词v在第l层的可学习矩阵。
4.根据权利要求2所述的通过多偏好建模和知识增强改进对话推荐系统,其特征在于,在语义融合单元中包括:t
e,c
=e
et
w1e
c
,其中,t
e,c
表示项目实体与文本的亲和矩阵;e
e
表示实体嵌入矩阵;e
et
表示实体嵌入矩阵e
e
的转置矩阵;w1表示第一转换矩阵;e
c
表示上下文嵌入矩阵;t
c,v
=e
ct
w2e
v
,其中,t
c,v
表示文本与单词实体的亲和矩阵;e
c
表示上下文嵌入矩阵;e
ct
表示上下文嵌入矩阵e
c
的转置矩阵;w2表示第二转换矩阵;e
v
表示单词嵌入矩阵;e
e,c
=e
c
t
e,c
+e
e
,e
e,c
表示融合后的实体嵌入;e
c
表示上下文嵌入矩阵;t
e,c
表示项目实体与文本的亲和矩阵;e
e
表示实体嵌入矩阵;e
c,v
=e
v
t
c,v
+e
c
,其中,e
c,v
表示融合后的词嵌入;e
v
表示单词嵌入矩阵;t
c,v
表示文本与单词实体的亲和矩阵;e
c
表示上下文嵌入矩阵。5.根据权利要求1所述的通过多偏好建模和知识增强改进对话推荐系统,其特征在于,在推荐模块中包括:其中,表示在探索阶段融合后的特征嵌入矩阵;e
e,c
表示融合后的实体嵌入;e
c
表示上下文嵌入矩阵;e
p-rec
表示推荐任务的提示模板特征;其中,表示第t回合探索阶段的推荐结果集合;dialogpt
rec
(
·
)表示推荐任务下冻结参数的预训练模型dialogpt;表示在探索阶段融合后的特征嵌入矩阵;e
a
,i
m
=lookup(m
top
),其中,e
a
表示属性实体;
i
m
表示原始的海报图像;lookup(
·
)表示查找电影m
top
的相关属性;m
top
表示推荐结果集合中概率最高的电影。6.根据权利要求5所述的通过多偏好建模和知识增强改进对话推荐系统,其特征在于,在推荐模块中还包括:e
i
=darknet53(i
m
),其中,e
i
表示图像特征矩阵;darknet53(
·
)表示预训练后的图像特征抽取模型;i
m
表示原始的海报图像;其中,表示在整合阶段融合后的特征嵌入矩阵;e
e,c
表示融合后的实体嵌入;e
c
表示上下文嵌入矩阵;e
p-rec
表示推荐任务的提示模板特征;e
a
表示属性实体;表示属性实体;表示跨模态融合后的用户偏好;表示在整合阶段融合后的特征嵌入矩阵;ca(
·
)表示跨模态注意力层;e
i
表示图像特征矩阵;其中,表示最终的推荐结果集合;dialogpt
rec
(
·
)表示推荐任务下冻结参数的预训练模型dialogpt;表示跨模态融合后的用户偏好。7.根据权利要求1所述的通过多偏好建模和知识增强改进对话推荐系统,其特征在于,在对话模块中包括:e
gen
=e
c,v
+e
tc
+e
p-gen
,其中,e
gen
表示融合后的特征嵌入矩阵;e
c,v
表示融合后的词嵌入;e
tc
表示融合解释模板后的上下文嵌入;e
p-gen
表示对话任务的提示板特征;s
t
=dialogpt
gen
(e
gen
),其中,s
t
表示第t轮生成的回复句子;dialogpt
gen
(
·
)表示对话任务下冻结参数的预训练模型dialogpt;e
gen
表示融合后的特征嵌入矩阵。
8.根据权利要求1所述的通过多偏好建模和知识增强改进对话推荐系统,其特征在于,还包括知识图谱模块,知识图谱模块用于引入外部知识。9.根据权利要求1所述的通过多偏好建模和知识增强改进对话推荐系统,其特征在于,还包括指标评价模块,指标评价模块用于评价对话推荐系统的流畅性或/和多样性。

技术总结
本发明提出了一种通过多偏好建模和知识增强改进对话推荐系统,包括语义融合模块、推荐模块或/和对话模块;语义融合模块的数据输出第一端与推荐模块的数据输入端相连,语义融合模块的数据输出第二端与对话模块的数据输入端相连;语义融合模块用于将外部知识与对话文本的信息进行融合;推荐模块用于通过结合用户来自文本、实体、图像之一或者任意组合的偏好,推荐模块将利用大型预训练模型提供推荐;对话模块用于通过设计解释模板或/和突显对话关键词,对话模块结合推荐结果生成流畅且多样的回复。本发明根据用户的多方面偏好以及外部知识,提高了系统推荐的准确性以及系统回复的质量和多样性。质量和多样性。质量和多样性。


技术研发人员:黄贤英 张城阳 安嘉豪 邹世豪 付朝燕
受保护的技术使用者:重庆理工大学
技术研发日:2023.05.12
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐