CN117171440A - 基于新闻事件和新闻风格联合建模的新闻推荐方法和系统 - Google Patents
基于新闻事件和新闻风格联合建模的新闻推荐方法和系统 Download PDFInfo
- Publication number
- CN117171440A CN117171440A CN202311159947.2A CN202311159947A CN117171440A CN 117171440 A CN117171440 A CN 117171440A CN 202311159947 A CN202311159947 A CN 202311159947A CN 117171440 A CN117171440 A CN 117171440A
- Authority
- CN
- China
- Prior art keywords
- news
- event
- representation
- style
- candidate
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 238000012549 training Methods 0.000 claims abstract description 62
- 238000009826 distribution Methods 0.000 claims description 86
- 230000006870 function Effects 0.000 claims description 36
- 238000013528 artificial neural network Methods 0.000 claims description 29
- 238000013507 mapping Methods 0.000 claims description 22
- 230000003993 interaction Effects 0.000 claims description 18
- 230000004913 activation Effects 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 11
- 239000013598 vector Substances 0.000 claims description 11
- 238000013527 convolutional neural network Methods 0.000 claims description 10
- 238000010276 construction Methods 0.000 claims description 8
- 238000007781 pre-processing Methods 0.000 claims description 8
- 238000005457 optimization Methods 0.000 claims description 7
- 239000000654 additive Substances 0.000 claims description 6
- 230000000996 additive effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 claims description 3
- 230000008485 antagonism Effects 0.000 claims description 2
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000013135 deep learning Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 238000005070 sampling Methods 0.000 claims description 2
- 238000003058 natural language processing Methods 0.000 abstract description 2
- 230000006399 behavior Effects 0.000 description 9
- 241000282326 Felis catus Species 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000282421 Canidae Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于新闻事件和新闻风格联合建模的新闻推荐方法和系统、存储介质、电子设备,属于自然语言处理技术领域及推荐系统领域,本发明要解决的技术问题为如何从用户浏览过的新闻中,挖掘新闻所包含的事件特征和风格特征,从而更好地向用户推荐符合其偏好的新闻。采用的技术方案为:①新闻事件和新闻风格联合建模的新闻推荐方法,该方法包括如下步骤:S1、构建新闻推荐模型的训练数据集;S2、构建基于新闻事件和新闻风格联合建模的新闻推荐模型;S3、训练模型。②一种基于新闻事件和新闻风格联合建模的新闻推荐系统,该系统包括:训练数据集生成单元、基于新闻事件和新闻风格联合建模的新闻推荐模型构建单元、模型训练单元。
Description
技术问题
本发明涉及自然语言处理技术领域及推荐系统领域,具体涉及一种基于新闻事件和新闻风格联合建模的新闻推荐方法和系统。
随着当前互联网技术的迅速发展,像今日头条、搜狐、新浪等新闻网站已经成为大多数人获取新闻信息的主要渠道。这些网站每天向全球数百万用户提供大量的新闻报道,涵盖政治、娱乐、体育等各个主题。尽管这些新闻网站给人们带来了便利,但它们也面临着一个巨大的挑战,即如何在海量的新闻报道中帮助用户找到符合他们偏好的文章。在这种情况下,新闻推荐作为主要解决方案发挥着越来越重要的作用。通过分析用户的阅读历史,新闻推荐系统使用户能够更快速、便捷地获取他们感兴趣的新闻内容。这种推荐系统不仅能够提高用户体验,还有助于增加新闻网站的用户黏性和阅读量,实现双赢的局面。因此,新闻推荐系统在互联网时代的新闻传播中具有广阔的应用前景和重要的意义。
用户的阅读偏好由两个基本驱动因素构成:新闻事件和新闻风格。一方面,用户阅读新闻的目的通常是为了获取与他们感兴趣的相关事件。例如,如果用户对美国选举感兴趣,他们可能会阅读与该事件相关的新闻,以了解最新的发展、候选人的观点和选民反应等。新闻事件可以触发用户的兴趣和好奇心,因此对事件相关的新闻有较高的阅读倾向。另一方面,即使是报道同一事件,不同的新闻来源可能会以不同的风格进行撰写和呈现。每个新闻机构都有其独特的写作风格、语言风格和报道方式。例如,一家新闻机构可能更注重客观中立的报道,而另一家可能更加强调个人评论和观点。在这种情况下,用户通常会根据自己的偏好选择阅读符合其风格偏好的新闻。
近年来,许多神经网络模型被应用于新闻推荐系统,其中基于循环神经网络和注意力网络等方法表现出良好的性能。基于循环神经网络的新闻推荐方法将新闻内容数据视为时间维度上的单向序列,然后将这些新闻序列编码为单一的用户表示。然而,由于用户的阅读偏好通常是多样化的,这种单一的用户表示无法准确地建模用户复杂的偏好。而基于注意力网络的新闻推荐方法将新闻序列建模为不同的用户表示,从而建模用户的多种阅读偏好。但是,其在编码新闻时仅关注新闻的标题、摘要、类别特征,而忽略了新闻的事件特征和风格特征。这使得现有的方法无法准确地建模用户的个性化阅读偏好。综上所述,现有的新闻推荐方法无法对用户的个性化偏好准确建模,难以取得令人满意的推荐效果。
发明内容
本发明的技术任务是提供一种基于新闻事件和新闻风格联合建模的新闻推荐方法和系统,来解决新闻推荐系统中的用户个性化推荐以及推荐结果不准确的问题。该方法和系统实现了一种新闻事件和新闻风格联合建模的神经网络结构,新闻事件可以帮助用户更容易地了解新闻的主要内容;新闻风格可以帮助用户更好地选择不同风格的新闻。本发明提出了新闻事件和新闻风格联合建模的神经网络结构:该结构通过用户阅读的新闻内容捕捉新闻的事件特征和风格特征,然后从事件和风格两个不同的角度将候选新闻与用户偏好进行匹配;其核心思想是通过事件-风格解耦器对将每个新闻表示解耦为事件特征和风格特征,然后通过事件匹配模块建模事件特征,生成基于事件的用户特征,并将其与候选新闻的事件特征进行匹配,得到事件匹配得分;同时,通过风格匹配模块将风格特征建模为基于风格的用户特征,并将其与候选新闻的风格特征进行匹配,得到风格匹配得分。本发明对新闻事件和新闻风格联合建模,能够更加精准地为用户推荐符合其偏好的新闻。
本发明的技术任务是按以下方式实现的,一种基于新闻事件和新闻风格联合建模的新闻推荐方法,该方法包括如下步骤:
S1、构建新闻推荐模型的训练数据集:首先下载网络上公开的新闻数据集,然后预处理数据集,最后构建正例数据和负例数据,组合生成最终的训练数据集;
S2、构建基于新闻事件和新闻风格联合建模的新闻推荐模型:利用神经网络和深度学习方法构建新闻推荐模型,该模型架构如下:新闻编码器、事件-风格解耦器、事件匹配模块、风格匹配模块、候选新闻预测模块;
S3、训练模型:在步骤S1所得到训练数据集中对步骤S2构建的新闻推荐模型进行训练。
一种基于新闻事件和新闻风格联合建模的新闻推荐系统,该系统包括:
训练数据集生成单元,用于在线上新闻网站获得用户的浏览记录信息,随后对其进行预处理操作,从而得到符合训练要求的用户浏览记录及其新闻文本内容;
基于新闻事件和新闻风格联合建模的新闻推荐模型构建单元,用于构建新闻编码器、构建事件-风格解耦器、构建事件匹配模块、构建风格匹配模块、构建候选新闻预测模块;
模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练。
一种存储介质,其中存储有多条指令,所述指令由处理器加载,执行上述的基于新闻事件和新闻风格联合建模的新闻推荐方法的步骤。
一种电子设备,所述电子设备包括:上述的存储介质;以及处理器,用于执行所述存储介质中的指令。
技术效果
本发明的基于新闻事件和新闻风格联合建模的新闻推荐方法和系统具有以下优点:
(1)、本发明提出的基于新闻事件和新闻风格联合建模的新闻推荐方法,挖掘了新闻中的事件特征和风格特征,能够较全面的建模用户表示,从而提升新闻推荐的准确性;
(2)、本发明通过事件-风格解耦器对新闻表示进行解耦,能够有效地生成新闻事件表示和新闻风格表示,并保证它们之间的独立性和准确性;
(3)、本发明通过事件匹配模块将基于事件的用户表示与候选新闻的新闻事件表示进行匹配,以生成事件匹配得分,从而提升新闻推荐模型的性能;
(4)、本发明通过风格匹配模块将基于风格的用户表示与候选新闻的新闻风格表示进行匹配,以生成风格匹配得分,从而提升新闻推荐模型的性能;
(5)、本发明通过候选新闻预测模块可以根据事件匹配得分与风格匹配得分,准确地输出候选新闻预测得分。
附图说明
下面结合附图对本发明进一步说明。
图1为基于新闻事件和新闻风格联合建模的新闻推荐方法的流程图
图2为构建新闻推荐模型的训练数据集的流程图
图3为构建基于新闻事件和新闻风格联合建模的新闻推荐模型的流程图
图4为训练基于新闻事件和新闻风格联合建模的新闻推荐模型的流程图
图5为基于新闻事件和新闻风格联合建模的新闻推荐模型的示意图
图6为构建事件-风格解耦模块的结构示意图
图7为构建事件匹配模块的结构示意图
图8为构建风格匹配模块的结构示意图
图9为构建候选新闻预测模块的结构示意图
图10为基于新闻事件和新闻风格联合建模的新闻推荐模型的结构示意图
具体实施方式
参照说明书附图和具体实施例对本发明的基于新闻事件和新闻风格联合建模的新闻推荐方法和系统作以下详细地说明。
实施例1:
本发明的总体框架如图5所示。由图5可知,本发明的主要框架结构包含新闻编码器、事件-风格解耦器、事件匹配模块、风格匹配模块以及候选新闻预测模块。其中,新闻编码器,通过新闻编码器将新闻的标题、摘要、类别和子类别作为输入,并根据这些特征生成新闻表示;具体来说,新闻编码器首先使用卷积神经网络和加性注意力网络将标题和摘要编码为标题表示和摘要表示,同时使用一个全连接神经网络将类别和子类别编码为类别特征表示和子类别特征表示,然后利用一个多视角注意力网络将标题表示、摘要表示、类别特征表示、子类别特征表示聚合为新闻表示,并将其传递到事件-风格解耦模块。事件-风格解耦器,由事件-风格编码器、事件解码器、风格解码器、事件分类器以及辅助损失构成;具体来说,如图6所示,事件-风格编码器首先对新闻表示进行编码以得到高阶新闻表示;然后,使用事件解码器和风格解码器对高阶新闻表示进行解码,生成新闻事件表示和新闻风格表示;然后,事件分类器进一步对这两种表示进一步编码,得到基于事件的新闻事件分布和基于风格的新闻事件分布;为了更好的训练事件-风格解耦器,该解耦器基于事件预测损失、重构损失和对抗损失构建出一个辅助损失,以优化事件-风格编码器中的模型参数;此外,设计一种生成真实的新闻事件分布的算法以实施事件预测损失和对抗损失;最后,将新闻事件表示和基于事件的新闻事件分布传递到事件匹配模块,将新闻风格表示传递到风格匹配模块;其中,新闻事件表示包含历史新闻序列的新闻事件表示、候选新闻的新闻事件表示;基于事件的事件分布包含历史新闻序列的基于事件的事件分布、候选新闻的基于事件的事件分布;新闻风格表示包含历史新闻序列的新闻风格表示、候选新闻的风格事件表示。事件匹配模块,由事件通道建模层和细粒度事件匹配层构成;具体来说,如图7所示;事件通道建模层首先对历史新闻序列的新闻事件表示在不同事件通道上进行编码,生成基于事件的用户表示,同时将候选新闻的新闻事件表示划分到不同事件通道,生成候选新闻在不同事件通道上的新闻事件表示;然后细粒度事件匹配层计算基于事件的用户表示和候选新闻在不同事件通道上的新闻事件表示的内积,生成每个事件通道上的事件匹配得分,并通过得分注意力网络聚合为事件匹配得分;最后将事件匹配得分传递到候选新闻预测模块。风格匹配模块,如图8所示,首先对历史新闻序列的新闻风格表示进行编码,生成历史新闻序列交互后的新闻风格表示;同时使用用户嵌入层和全连接神经网络对用户ID进行编码,生成用户ID的特征表示;然后使用风格注意力网络对基于历史新闻序列交互后的新闻风格表示和用户ID的特征表示进行编码,生成基于风格的用户表示;最后,计算基于风格的用户表示和候选新闻的新闻风格表示的内积,得到风格匹配得分,并将其传递到候选新闻预测模块。新闻预测模块,如图9所示,将事件匹配模块中的事件匹配得分与风格匹配得分进一步加权求和,得到候选新闻预测得分。
实施例2:
如附图1所示,本发明的基于新闻事件和新闻风格联合建模的新闻推荐方法,该方法包括如下步骤:
S1、构建新闻推荐模型的训练数据集:首先下载网络上公开的新闻数据集,然后预处理数据集,最后构建正例数据和负例数据,组合生成最终的训练数据集;新闻数据集包含两部分数据文件:用户浏览记录和新闻文本内容;其中,用户浏览记录包含用户编号、时间、历史新闻序列、交互行为序列;新闻文本内容包含新闻编号、类别、子类别、标题、摘要、实体;选取用户浏览记录中历史新闻序列和交互行为序列构建训练数据集的用户行为数据,选取新闻文本内容的标题、类别、子类别、摘要构建训练数据集的新闻文本数据;构建训练数据集的方法具体如下:
S101、构建新闻数据集或者选择已公开的新闻数据集:下载网络上Microsoft已经公开的MIND新闻数据集,将其作为新闻推荐的原始数据。MIND是目前最大的英文新闻推荐系统数据集,包含876,956个用户和130,379条新闻,分为训练集、验证集和测试集。为了加速训练,本发明随机选取500000个用户构建一个小版本数据集MIND-500K,并将MIND的验证集按1:1的比例划分为新的验证集和测试集。
举例:MIND数据集提供了新闻文本内容的详细信息,每个新闻都有新闻编号、链接、标题、摘要、类别和实体:
另外,数据集也提供了用户浏览记录,每条记录都包含用户编号、时间、历史新闻序列、交互行为序列:
其中,用户编号表示每一个用户在新闻平台唯一的编号;时间表示用户点击浏览一系列新闻的开始时间;历史新闻序列表示用户浏览过的一系列新闻编号的序列;交互行为序列表示用户在系统推荐的一系列候选新闻上的实际交互行为,1表示点击,0表示未点击。
S102、预处理新闻数据集:预处理新闻数据集中的每一条新闻文本,去除新闻数据集中的停用词及特殊字符;分别抽取每一条新闻文本的标题、类别、子类别和摘要信息。
S103、构建训练正例:使用用户浏览记录中的历史新闻序列和交互行为序列中标签为1的候选新闻的编号,即被用户点击的候选新闻的编号,构建训练正例;
举例:对步骤S101中展示的新闻实例,构建的正例数据形式化为:(N29038,N15201,N8018,N32012,N30859,N26552,N25930),其中最后一个编号为被用户点击的候选新闻的编号。
S104、构建训练负例:使用用户浏览记录中的历史新闻序列和交互行为序列中标签为0的候选新闻的编号,即未被用户点击的候选新闻的编号,构建训练负例;
举例:对步骤S101中展示的新闻实例,构建的负例数据形式化为:(N29038,N15201,N8018,N32012,N30859,N26552,N17825),其中最后一个编号为未被用户点击的候选新闻的编号。
S105、构建训练数据集:将经过步骤S103和步骤S104操作后所获得的全部的正例数据和负例数据进行组合,并打乱其顺序,构建最终的训练数据集。
S2、构建基于新闻事件和新闻风格联合建模的新闻推荐模型:如附图3所示,该新闻推荐模型包含新闻编码器、事件-风格解耦器、事件匹配模块、风格匹配模块以及候选新闻预测模块:
S201、构建新闻编码器,以标题、摘要、类别和子类别作为输入,根据上述信息生成新闻表示,具体如下:
首先,基于数据集中每一个单词构建单词映射表,并将表中每一个单词映射成唯一的数字标识,映射规则为:以数字1为起始,随后按照每个单词被录入单词映射表的顺序依次递增排序,从而形成单词映射转换表;类似地,构建新闻类别映射表和新闻子类别映射表,并分别将类别和子类别转换为对应的数字标识,映射规则与单词映射转换表类似,这里不再赘述;
然后,使用单词嵌入层将标题和摘要转换为标题嵌入表示和摘要嵌入表示其中下标N和M分别代表标题和摘要的长度;使用类别嵌入层和子类别嵌入层将类别和子类别转换为类别嵌入表示ec和子类别嵌入表示esc;
进一步地,对于标题嵌入表示,使用卷积神经网络进行编码,以生成卷积后的标题表示,然后进一步使用加性注意力网络对卷积后的标题表示进行编码,以生成标题表示;卷积神经网络的具体实施见下述公式:
其中,iw表示标题中第i个单词;w为卷积神经网络滑动窗口的大小,在此设置为3;表示标题嵌入表示中第(iw-w)个单词到第(iw+w)个单词的嵌入表示;Ft和bt是卷积神经网络的参数;ReLU为激活函数;为卷积后的标题表示;
举例说明:在pytorch框架中,上面描述的内容对应的代码实现如下所示:self.title_conv=Conv1D(300,400,3)
title_c=self.dropout_(self.title_conv(title_w.permute(0,2,1)).permute(0,2,1))
其中,Conv1D表示卷积神经网络;title_w为标题嵌入表示;self.dropout_为dropout方法;
使用加性注意力网络进一步对卷积后的标题表示进行编码,生成标题表示;具体实施见下述公式:
其中,Vat、vat为可训练的参数;为卷积后的标题表示,来自公式(1);为新闻标题中单词间的相似度;tanh为激活函数;为新闻标题中单词间的注意力权重;rt为标题表示;N为标题的长度;
举例说明:在pytorch框架中,上面描述的内容对应的代码实现如下所示:self.title_attention=Attention(400,200)
title_representation=self.title_attention(title_c)
其中,Attention表示加性注意力网络,具体实施代码如下所示:
对于摘要嵌入表示,使用与标题嵌入表示类似的操作进行处理,生成摘要表示rb,在此不再赘述;
对于类别嵌入表示和子类别嵌入表示,使用类别嵌入层和子类别嵌入层将新闻的类别和子类别转换为类别嵌入表示ec和子类别嵌入表示esc;对于类别嵌入表示和子类别嵌入表示,分别使用全连接神经网络对其进行编码,生成类别特征表示rc和子类别特征表示rsc;具体实施见下述公式:
其中,Vc、Vsc、vc和vsc是全连接神经网络的参数;ec、esc分别为类别嵌入表示和子类别嵌入表示;rc、rsc分别为类别特征表示和子类别特征表示;
举例说明:在pytorch框架中,上面描述的内容对应的代码实现如下所示:self.category_affine=nn.Linear(in_features=50,out_features=400,bias=True)self.subCategory_affine=nn.Linear(in_features=50,out_features=400,bias=True)
category_representation=F.relu(self.category_affine(e_category),inplace=True)subCategory_representation=F.relu(self.subCategory_affine(e_subCategory),inplace=True)
其中,e_category、subCategory分别代表类别嵌入表示和子类别嵌入表示;category_representation、subCategory_representation分别为类别特征表示和子类别特征表示;
进一步地,使用多视角注意力网络融合标题表示、摘要表示、类别特征表示和子类别特征表示;具体来说,设置上述信息对应的注意力权重分别为αt、αb、αc和αsc,这四个注意力权重计算方法类似;为了方便阐述,在此仅介绍αt的实施方法,其他三项注意力权重的计算与此类似,具体实施方法如下公式所示:
其中,Uv、uv和qv为可训练的参数;at为标题中单词间的相似度,类似的操作得到摘要、类别、子类别中单词间的相似度ab、ac和asc;αt为标题的注意力权重,类似的操作得到摘要、类别、子类别的注意力权重αb、αc和αsc;
根据注意力权重加权求和得到新闻表示n,具体实施方法如下公式所示:
n=αcrc+αscrsc+αtrt+αbrb. (5)
其中,αt、αb、αc和αsc分别为标题、摘要、类别、子类别的注意力权重,来自公式(4);n为新闻表示;
此外,由于新闻编码器的输入有两部分:历史新闻序列和候选新闻,因此新闻表示包含历史新闻序列的新闻表示和候选新闻的新闻表示;根据公式(5),可以将其表示为:[n1,...,ni,...,nN;nC];其中,n1,...,ni,...,nN为历史新闻序列的新闻表示;nC为候选新闻的新闻表示;
举例说明:在pytorch框架中,上面描述的内容对应的代码实现如下所示:self.affine1=nn.Linear(in_features=400,out_features=200,bias=True)self.affine2=nn.Linear(in_features=200,out_features=1,bias=False)feature=torch.stack([title_representation,content_representation,category_representation,subCategory_representation],dim=2)alpha=F.softmax(self.affine2(torch.tanh(self.affine1(feature))),dim=2)news_representation=(feature*alpha).sum(dim=2,keepdim=False)
其中,news_representation为加权求和得到的新闻表示。
S202、构建事件-风格解耦器,如附图6所示,该解耦器以步骤S201得到的新闻表示作为输入,首先通过事件-风格编码器对新闻表示进行编码,得到高阶新闻表示;然后分别使用事件解码器和风格解码器从高阶新闻表示中抽取出新闻事件表示和新闻风格表示;然后使用事件分类器对这两种表示进一步编码,得到基于事件的新闻事件分布和基于风格的新闻事件分布;同时为了优化事件-风格解耦器,设计事件预测损失、重构损失和对抗损失以构造最终的辅助损失,以辅助模型训练;
具体来说,事件-风格编码器由三层全连接神经网络构成,该编码器选用ReLU函数作为激活函数;此外,残差网络也加入到事件-风格编码器中,以缓解信息丢失的问题;对于历史新闻序列中浏览新闻的新闻事件表示,新闻编码器的具体实施方法如下述公式所示:
其中,ni为历史新闻序列中第i个浏览新闻的新闻表示;ReLU为激活函数;Dense为全连接神经网络;[;]为联接操作;为全连接神经网络编码后的新闻表示;hi为历史新闻序列中第i个浏览新闻的高阶新闻表示;
举例说明:在pytorch框架中,上面描述的内容对应的代码实现如下所示:
self.e1=nn.Linear(400,400)
self.e2=nn.Linear(400*2,400)
self.e3=nn.Linear(400*2,400)
ehidden1=self.dropout(F.relu(self.e1(news_rep)))
ehidden2=self.dropout(F.relu(self.e2(torch.cat([news_rep,ehidden1],dim=-1))))
ehidden3=F.relu(self.e3(torch.cat([news_rep,ehidden2],dim=-1)))
其中,news_rep为历史新闻序列的新闻表示;F.relu为激活函数;self.e1、self.e2、self.e3为全连接神经网络;ehidden1、ehidden2为全连接神经网络编码后的新闻表示;ehidden3为编码后的高阶新闻表示;
进一步地,高阶新闻表示被传递到事件解码器和风格解码器中进行解码,以生成新闻事件表示和新闻风格表示;具体来说,事件解码器和风格解码器的构造相似,都是由配备有残差网络的三层全连接神经网络构成;事件解码器的具体实施方法如下述公式所示:
其中,hi为历史新闻序列中第i个浏览新闻的高阶新闻表示,来自公式(6);均为全连接神经网络编码后的高阶新闻表示;ei为历史新闻序列中第i个浏览新闻的新闻事件表示;风格解码器以类似的操作得到新闻风格表示ti,该解码器的代码实施与公式(7)的代码实施类似,在此不再赘述;
进一步地,以新闻事件表示和新闻风格表示作为输入,事件分类器对新闻事件表示和新闻风格表示进一步编码,得到基于事件的新闻事件分布和基于风格的新闻事件分布;事件分类器由一层使用softmax激活函数的全连接神经网络构成,具体实施方法如下述公式所示:
其中,ei为历史新闻序列中第i个浏览新闻的新闻事件表示,来自公式(7);softmax为激活函数;为历史新闻序列中第i个浏览新闻的基于事件的新闻事件分布;类似的操作得到基于风格的新闻事件分布
此外,为了更好地辅助模型训练,需要构建基于真实的新闻事件分布,然而数据集中未提供该标签,因此设计一种算法构建真实的新闻事件分布;具体来说,首先使用TF-IDF提取每个新闻的关键词,然后使用BERT将关键词编码为关键词词向量表示,进一步使用K-means将关键词聚类为K类,即K个事件通道;对于历史新闻序列中第i个浏览新闻,它在第j个事件通道上的新闻事件分布的计算方法如下述公式所示:
其中,|NKij|代表历史新闻序列中第i个浏览新闻中属于第j个事件通道的关键词个数;|NK|代表该新闻中所有关键词个数;pe,ij为历史新闻序列中第i个浏览新闻在第j个事件通道上的真实的新闻事件分布;pe,i=[pe,i1,pe,i2,...,pe,iK]为历史新闻序列中第i个浏览新闻的基于事件的真实的新闻事件分布;K为事件通道个数,设置为17;
为了更好的训练事件-风格解耦器,设计三种损失函数:重构损失、事件预测损失以及对抗损失,以优化模型参数;其中,重构损失用于缓解解耦过程中产生的信息丢失问题,具体来说,将新闻事件表示和新闻风格表示进行联接,然后使用一个全连接神经网络对其进行编码,得到重构的新闻表示,最后使用MSE函数约束新闻表示和重构的新闻表示;具体实施方法如下述公式所示:
其中,ei、ti分别为历史新闻序列中第i个浏览新闻的新闻事件表示和新闻风格表示,二者均来自公式(7);ni为历史新闻序列中第i个浏览新闻的新闻表示,来自公式(6);MSE为均方误差函数;为重构损失;
举例说明:在pytorch框架中,上面描述的内容对应的代码实现如下所示:
self.event_classifer=nn.Linear(400,17)
channel_softmax=self.softmax(self.event_classifer(event_decoder))
style_softmax=self.softmax(self.event_classifer(style_decoder))
all_feature=self.concat_classifer(torch.cat([event_decoder,style_decoder],dim=-1))
loss2=F.mse_loss(all_feature,news_rep)
其中,news_rep为历史新闻序列的新闻表示;event_decoder为新闻事件表示;style_decoder为新闻风格表示;
事件预测损失用于拉近基于事件的新闻事件分布和真实的新闻事件分布的距离;具体实施方法如下述公式所示:
其中,为历史新闻序列中第i个浏览新闻的基于事件的新闻事件分布,来自公式(8);pe,i为历史新闻序列中第i个浏览新闻的基于事件的真实的新闻事件分布,来自公式(9);为事件预测损失;
举例说明:在pytorch框架中,上面描述的内容对应的代码实现如下所示:
hidden_softmax=torch.cat([his_softmax,cdd_softmax],dim=1).view(-1,17)
event_softmax=torch.cat([user_event_type,news_event_type],dim=1).view(-1,17)
event_loss=F.mse_loss(hidden_softmax,event_softmax)
其中,his_softmax和cdd_softmax是历史新闻基于事件的新闻事件分布;user_event_type和news_event_type是历史新闻中基于事件的真实的新闻事件分布;
对抗损失以新闻风格表示作为输入,通过事件分类器(即公式(8))得到基于风格的新闻事件分布,并拉远其与真实的新闻事件分布的距离;具体实施方法如下述公式所示:
其中,为历史新闻序列中第i个浏览新闻在第j个事件通道上的基于风格的新闻事件分布,来自公式(8);pe,ij为历史新闻序列中第i个浏览新闻在第j个事件通道上的基于风格真实的新闻事件分布,来自公式(9);为对抗损失;
最后,辅助损失由上述三种损失构成;具体实施方法如下述公式所示:
其中,分别为重构损失、事件预测损失、对抗损失,来自公式(10)、公式(11)、公式(12)。
S203、构建事件匹配模块,如附图7所示,事件匹配模块以公式(7)输出的新闻事件表示和公式(8)输出的基于事件的事件分布分别作为输入,其中,新闻事件表示包含历史新闻序列的新闻事件表示和候选新闻的新闻事件表示;类似地,基于事件的新闻事件分布包含历史新闻序列的基于事件的新闻事件分布和候选新闻的基于事件的新闻事件分布;使用事件通道建模层对历史新闻序列的新闻事件表示在不同事件通道上进行编码,生成基于事件的用户表示;对候选新闻的新闻事件表示按照不同事件通道进行划分,生成候选新闻在不同事件通道上的新闻事件表示;使用细粒度事件匹配层,对基于事件的用户表示和候选新闻在不同事件通道上的新闻事件表示进行内积计算,得到候选新闻在不同事件通道上的事件匹配得分;最后通过得分注意力网络将每个事件通道的事件匹配得分进行汇聚,以生成一个细粒度事件匹配得分;事件匹配模块的构建步骤如下:
S20301、构建事件通道建模层
事件通道建模层以历史新闻序列的新闻事件表示、候选新闻的新闻事件表示、历史新闻序列的基于事件的新闻事件分布、候选新闻的基于事件的新闻事件分布作为输入,首先根据历史新闻序列的基于事件的新闻事件分布、候选新闻的基于事件的新闻事件分布分别将历史新闻序列的新闻事件表示、候选新闻的新闻事件表示划分到不同事件通道;对于历史新闻序列中第i个浏览新闻的新闻事件表示,其划分方法的具体描述如下:
其中,为历史新闻序列中第i个浏览新闻的基于事件的新闻事件分布,来自公式(8);ei为历史新闻序列中第i个浏览新闻的新闻事件表示,来自公式(7);为历史新闻序列中第i个浏览新闻在不同事件通道上的新闻事件表示;具体来说,其中为该历史新闻序列中第i个浏览新闻在第1个事件通道上的新闻事件表示;K为事件通道的个数;
类似地,对于候选新闻的新闻事件表示,使用相同的方法将其划分到不同事件通道,以生成候选新闻在不同事件通道上的新闻事件表示其中下标c表示候选新闻;j表示第j个事件通道;
进一步地,为了在每个通道上生成基于事件的用户表示,该层在每个事件通道上都使用通道注意力网络进行编码;具体来说,对于第j个事件通道上的基于事件的用户表示,其具体实施方法如下述公式所示:
其中,为历史新闻序列中第i个浏览新闻在第j个事件通道上的新闻事件表示,来自公式(14);qj、Vj和vj为通道注意力的参数;为第i个浏览新闻在第j个事件通道上的相似度;为第i个浏览新闻在第j个事件通道上的注意力权重;为第j个事件通道上的基于事件的用户表示;为基于事件的用户表示;l为历史新闻序列的长度,设置为50;
举例说明:在pytorch框架中,上面描述的内容对应的代码实现如下所示:
其中,AdditiveAttention1表示加性注意力,news_embedding_dim表示新闻的嵌入维度,his_ur表示历史新闻序列的新闻事件表示。
S20302、构建细粒度事件匹配层
该层以步骤中S20302得到的基于事件的用户表示和候选新闻在不同事件通道上的新闻事件表示作为输入,生成每个事件通道上的事件匹配得分,并通过得分注意力聚合为事件匹配得分;具体来说,第j个事件通道的事件匹配得分计算方法如下述公式所示:
其中,为第j个事件通道上的基于事件的用户表示,来自公式(15);为候选新闻在第j个事件通道上的新闻事件表示,来自公式(14);为第j个事件通道的事件匹配得分;
进一步地,该层通过一个得分注意力网络将每个事件通道的事件匹配得分进行汇聚,以生成一个细粒度事件匹配得分;由于候选新闻的基于事件的新闻事件分布对得分注意力有一定的影响,因此得分注意力的构建应考虑该因素;具体来说,候选新闻的基于事件的新闻事件分布首先通过进行映射;其中是候选新闻的基于事件的新闻事件分布,来自公式(8);为候选新闻的基于事件的新闻事件分布的离散向量;然后通过全连接神经网络将候选新闻的基于事件的新闻事件分布的离散向量转换为候选新闻事件分布表示具体实施方法如下述公式所示:
其中,为候选新闻的基于事件的新闻事件分布的离散向量;为的嵌入表示;为候选新闻事件分布表示;
最后基于候选新闻事件分布表示在不同事件通道上构建得分注意力并计算事件匹配得分,具体实施方法如下述公式所示:
其中,是候选新闻在第j个事件通道上的新闻事件分布表示,来自公式(17);qs、Vs和vs是得分注意力网络的参数;为候选新闻在第j个事件通道上的相似度;为候选新闻在第j个事件通道上的注意力权重;sf为事件匹配得分;K为事件通道的个数
举例说明,在pytorch框架中,上面描述的内容对应的代码实现如下所示:
u_rep_k=u_channel.unsqueeze(-2)
score=torch.matmul(u_rep_k,cdd_vector).squeeze(-1)
u_rep_k=u_rep_k.squeeze(-2)
channel_weight1=torch.cat([u_rep_k,channel_weight],dim=-1)
temp=torch.tanh(self.linear(channel_weight1))
candidate_weights=F.softmax(torch.matmul(temp,self.attention_query_vector),dim=1).unsqueeze(dim=1)
scores=torch.matmul(candidate_weights,score).squeeze(-1)
其中,cdd_vector是候选新闻在不同事件通道上的新闻事件表示;channel_weight是候选新闻事件分布表示。
S204、构建风格匹配模块
如附图8所示,风格匹配模以用户ID和步骤S203中的新闻风格表示作为输入,其中新闻风格表示包含历史新闻序列的新闻风格表示和候选新闻的新闻风格表示,其获取方法与步骤S203所述的历史新闻序列的新闻事件表示和候选新闻的新闻事件表示类似,在此不再赘述;
风格匹配模块首先使用多头注意力对历史新闻序列的新闻风格表示进行编码,以捕获新闻中的交互,并生成历史新闻序列交互后的新闻风格表示;具体实施方法如下述公式所示:
[t'1,t'2,…,t'l]=MultiHeadAttention(T), (19)
其中,T=[t1,t2,...,tl]为历史新闻序列的新闻风格表示;t1和t'1分别为历史新闻序列中第1个新闻的新闻风格表示和历史新闻序列中第1个新闻交互后的新闻风格表示;其他符号,与此类似,不再赘述;
进一步地,对于历史新闻序列交互后的新闻风格表示,使用风格注意力网络编码,生成基于风格的用户表示;具体实施方法如下述公式所示:
其中,ud代表用户ID的嵌入表示;u'd代表用户ID的特征表示;qt、Vt、Vd和v为模型参数;t'i为历史新闻序列中第i个新闻交互后的新闻风格表示;为历史新闻序列交互后的新闻风格表示间的相似度;为风格注意力权重;ut为基于风格的用户表示;
进一步地,将基于风格的用户表示与候选新闻的新闻风格表示进行内积计算,生成风格匹配得分,具体实施方法如下述公式所示:
其中,ut为基于风格的用户表示,来自公式(20);tc为候选新闻的新闻风格表示;st为代表风格匹配得分;
举例说明:在pytorch框架中,上面描述的内容对应的代码实现如下所示:
self.user_dense=nn.Linear(in_features=50,out_features=200,bias=True)
self.personalizedAttention=StyleAttention(400,200,200)
self.multiheadAttention=MultiHeadAttention(20,400,50,50,20,20)
self.affine=nn.Linear(in_features=400,out_features=400,bias=True)
h=self.multiheadAttention(his_style_decoder,his_style_decoder,his_style_decoder)
h=F.relu(F.dropout(self.affine(h),training=self.training,inplace=True),inplace=True)
q_d=F.relu(self.user_dense(user_embedding),inplace=True)
his_style=self.personalizedAttention(h,q_d).unsqueeze(dim=1)
score3=torch.matmul(his_style,cdd_style_decoder.transpose(-1,-2)).squeeze(1)
其中,StyleAttention代表风格注意力;MultiHeadAttention代表多头注意力;his_style_decoder代表历史新闻序列的新闻风格表示;cdd_style_decoder代表候选新闻的新闻风格表示;user_embedding代表用户ID的嵌入表示。
S205、构建候选新闻预测模块
候选新闻预测模块以步骤S203中事件匹配得分和步骤S204中风格匹配得分作为输入,通过权重相加得到候选新闻的推荐概率,具体实施方法如下述公式所示。
s=sf+βst (22)
其中,sf为事件匹配得分,来自公式(18);st为风格匹配得分,来自公式(21);s为候选新闻的预测得分;β为权重,设置为1.9。
S3、训练模型:如附图4所示,具体如下:
S301、构建损失函数:采用负采样技术,将一个被用户点击的候选新闻定义为正样例,未被用户点击的候选新闻定义为负样例,计算正样例的点击预测概率pi;具体实施方法如下述公式所示:
其中,是在同一点击序列中的第j个负样例相对于第i个正样例的点击率;是第i个正样例;G是负样例的个数;
模型的损失函数为所有正样例的负对数似然函数,具体实施方法如下述公式所示:
其中,pi为正样例的点击预测概率;是正样例的集合;
进一步地,整体损失函数的定义为其中,为辅助损失,来自公式(13);γ为超参数,在此设置为1.6;
S302、优化模型:使用Adam算法作为模型的优化函数;其中,学习率参数设置为0.0001,其他超参数使用PyTorch中的默认值即可。
在实验中,本发明选取ROC曲线下的面积AUC、平均倒数排名MRR、累计增益nDCG作为评价指标。
举例说明:上面描述的优化函数在pytorch中使用代码表示为:optimizer=torch.optim.Adam(model.parameters(),lr=learning_rate)
其中,torch.optim.Adam为pytorch内嵌的Adam优化函数;model.parameters()为模型训练的参数集合;learning_rate为学习率。
本发明的模型在MIND公开数据集上进行了实验,为了加速训练过程,本发明从MIND中随机选择一半的用户行为记录作为新的数据集MIND-500K,实验表明本发明的模型取得了优于现有模型的结果,实验结果的对比具体见下表:
本发明模型和现有模型进行了比较,可见本发明方法较其他方法其性能最优。其中,NPA出自文献《NPA:Neural News Recommendation with Personalized Attention》,NAML出自文献《Neural News Recommendation with Attentive Multi-View Learning》。
实施例3:
基于实施例2构建基于新闻事件和新闻风格联合建模的新闻推荐系统,该系统包括:
训练数据集生成单元、基于新闻事件和新闻风格联合建模的新闻推荐模型构建单元、模型训练单元,分别实现基于新闻事件和新闻风格联合建模的新闻推荐方法中步骤S1、S2、S3的功能,每个单元的具体功能如下所述:
训练数据集生成单元,用于在线上新闻网站获得用户的浏览记录信息,随后对其进行预处理操作,从而得到符合训练要求的用户浏览记录及其新闻文本内容。
基于新闻事件和新闻风格联合建模的新闻推荐模型构建单元,用于构建新闻编码模块、构建事件-风格解耦模块、构建事件匹配模块、构建风格匹配模块、构建候选新闻预测模块。
模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练。
实施例4:
基于实施例3的存储介质,其中存储有多条指令,指令有处理器加载,执行实施例3的基于新闻事件和新闻风格联合建模的新闻推荐方法的步骤。
实施例5:
基于实施例4的电子设备,电子设备包括:实施例4的存储介质;以及处理器,用于执行实施例4的存储介质中的指令。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.基于新闻事件和新闻风格联合建模的新闻推荐方法,其特征在于,该方法包括如下步骤:
S1、构建新闻推荐模型的训练数据集:首先下载网络上公开的新闻数据集,然后预处理数据集,最后构建正例数据和负例数据,组合生成最终的训练数据集;
S2、构建基于新闻事件和新闻风格联合建模的新闻推荐模型:利用神经网络和深度学习方法构建新闻推荐模型,该模型架构如下:新闻编码器、事件-风格解耦器、事件匹配模块、风格匹配模块、候选新闻预测模块;
S3、训练模型:在步骤S1所得到训练数据集中对步骤S2构建的新闻推荐模型进行训练。
2.根据权利要求1所述的基于新闻事件和新闻风格联合建模的新闻推荐方法,其特征在于,所述步骤S2中构建基于新闻事件和新闻风格联合建模的新闻推荐模型新闻编码器的具体步骤如下:
以新闻的标题、摘要、类别和子类别作为输入,新闻编码模器用于构建映射表、生成标题表示、生成摘要表示、生成类别特征表示和子类别特征表示,并根据这些信息得到新闻表示;具体如下:
构建映射表:基于数据集中每一个单词构建单词映射表,并将表中每一个单词映射成唯一的数字标识;映射规则为:以数字1为起始,随后按照每个单词被录入单词映射表的顺序依次递增排序,从而形成单词映射转换表;类似地,构建新闻类别映射表和新闻子类别映射表,并分别将类别和子类别转换为对应的数字标识,映射规则与单词映射转换表类似,在此不再赘述;
生成标题表示:使用单词嵌入层将新闻的标题编码为标题嵌入表示其中下标N代表标题的长度;对于标题嵌入表示,使用卷积神经网络进行编码,生成卷积后的标题表示;卷积神经网络的具体实施见下述公式:
其中,iw为标题中第i个单词;w为卷积神经网络滑动窗口的大小,设置为3;为标题嵌入表示中第(iw-w)个单词到第(iw+w)个单词的嵌入表示;Ft和bt是卷积神经网络的参数;ReLU为激活函数;为卷积后的标题表示;
使用加性注意力网络进一步对卷积后的标题表示进行编码,生成标题表示;具体实施见下述公式:
其中,Vat、vat为可训练的参数;为卷积后的标题表示,来自公式(1);为新闻标题中单词间的相似度;tanh为激活函数;为新闻标题中单词间的注意力权重;rt为标题表示;N为标题的长度;
生成摘要表示:使用单词嵌入层将新闻的摘要转换为摘要嵌入表示其中下标M代表摘要的长度;对于摘要嵌入表示,使用与标题嵌入表示类似的操作进行处理,生成摘要表示rb,在此不再赘述;
生成类别特征表示和子类别特征表示:使用类别嵌入层和子类别嵌入层将新闻的类别和子类别转换为类别嵌入表示ec和子类别嵌入表示esc;对于类别嵌入表示和子类别嵌入表示,分别使用全连接神经网络对其进行编码,生成类别特征表示rc和子类别特征表示rsc;具体实施见下述公式:
rc=ReLU(Vc×ec+vc),
rsc=ReLU(Vsc×esc+vsc), (3)
其中,Vc、Vsc、vc和vsc为全连接神经网络的参数;ec、esc分别为类别嵌入表示和子类别嵌入表示;rc、rsc分别为类别特征表示和子类别特征表示;
生成新闻表示:使用多视角注意力网络融合标题表示、摘要表示、类别特征表示和子类别特征表示;具体来说,设置上述信息对应的注意力权重分别为αt、αb、αc和αsc,这四个注意力权重计算方法类似;为了方便阐述,在此仅介绍αt的计算方法,其他三项注意力权重的计算与此类似,具体实施方法如下公式所示:
其中,Uv、uv和qv为可训练的参数;at为标题中单词间的相似度,类似的操作得到摘要、类别、子类别中单词间的相似度ab、ac和asc;αt为标题的注意力权重,类似的操作得到摘要、类别、子类别的注意力权重αb、αc和αsc;
最后,根据注意力权重加权求和得到新闻表示n,具体实施方法如下公式所示:
n=αcrc+αscrsc+αtrt+αbrb. (5)
其中,αt、αb、αc和αsc分别为标题、摘要、类别、子类别的注意力权重,来自公式(4);n为新闻表示;
此外,由于新闻编码器的输入有两部分:历史新闻序列和候选新闻,因此新闻表示包含历史新闻序列的新闻表示和候选新闻的新闻表示;根据公式(5),可以将其表示为:[n1,...,ni,...,nN;nC];其中,n1,...,ni,...,nN为历史新闻序列的新闻表示;nC为候选新闻的新闻表示。
3.根据权利要求1所述的基于新闻事件和新闻风格联合建模的新闻推荐方法,其特征在于,所述步骤S2中构建基于新闻事件和新闻风格联合建模的新闻推荐模型事件-风格解耦器的具体步骤如下:
以新闻表示作为输入,首先通过事件-风格编码器对新闻表示进行编码,得到高阶新闻表示;然后分别使用事件解码器和风格解码器从高阶新闻表示中抽取出新闻事件表示和新闻风格表示;然后使用事件分类器对这两种表示进一步编码,得到基于事件的新闻事件分布和基于风格的新闻事件分布;同时为了优化事件-风格解耦器,设计事件预测损失、重构损失和对抗损失以构造最终的辅助损失,以辅助模型训练;
事件-风格编码器:以新闻表示作为输入,历史新闻序列的新闻表示n1,...,ni,...,nN传递到事件-风格编码器中进行编码,得到高阶新闻表示;事件-风格编码器由三层全连接神经网络构成,该编码器选用ReLU函数作为激活函数;此外,残差网络也加入到事件-风格编码器中,以缓解信息丢失的问题;对于历史新闻序列中浏览新闻的新闻事件表示,新闻编码器的具体实施方法如下述公式所示:
其中,ni为历史新闻序列中第i个浏览新闻的新闻表示;ReLU为激活函数;Dense为全连接神经网络;[;]为联接操作;为全连接神经网络编码后的新闻表示;hi为历史新闻序列中第i个浏览新闻的高阶新闻表示;
事件解码器和风格解码器:以高阶新闻表示作为输入,将高阶新闻表示传递到事件解码器和风格解码器中进行解码,得到新闻事件表示和新闻风格表示;事件解码器和风格解码器的构造相似,都是由配备有残差网络的三层全连接神经网络构成;事件解码器的具体实施方法如下述公式所示:
其中,hi为历史新闻序列中第i个浏览新闻的高阶新闻表示,来自公式(6);均为全连接神经网络编码后的高阶新闻表示;ei为历史新闻序列中第i个浏览新闻的新闻事件表示;风格解码器以类似的操作得到新闻风格表示ti,该解码器的代码实施与公式(7)的代码实施类似,在此不再赘述;
事件分类器:以新闻事件表示和新闻风格表示作为输入,事件分类器对新闻事件表示和新闻风格表示进一步编码,得到基于事件的新闻事件分布和基于风格的新闻事件分布;事件分类器由一层使用softmax激活函数的全连接神经网络构成,具体实施方法如下述公式所示:
其中,ei为历史新闻序列中第i个浏览新闻的新闻事件表示,来自公式(7);softmax为激活函数;为历史新闻序列中第i个浏览新闻的基于事件的新闻事件分布;类似的操作得到基于风格的新闻事件分布
此外,为了更好地辅助模型训练,需要构建基于真实的新闻事件分布,然而数据集中未提供该标签,因此设计一种算法构建真实的新闻事件分布;具体来说,首先使用TF-IDF提取每个新闻的关键词,然后使用BERT将关键词编码为关键词词向量表示,进一步使用K-means将关键词聚类为K类,即K个事件通道;对于历史新闻序列中第i个浏览新闻,它在第j个事件通道上的新闻事件分布的计算方法如下述公式所示:
其中,|NKij|代表历史新闻序列中第i个浏览新闻中属于第j个事件通道的关键词个数;|NK|代表该新闻中所有关键词个数;pe,ij为历史新闻序列中第i个浏览新闻在第j个事件通道上的真实的新闻事件分布;pe,i=[pe,i1,pe,i2,...,pe,iK]为历史新闻序列中第i个浏览新闻的基于事件的真实的新闻事件分布;K为事件通道个数,设置为17;
构造辅助损失:为了优化事件-风格解耦模块,设计三种损失函数:重构损失、事件预测损失以及对抗损失;其中,重构损失用于缓解解耦过程中产生的信息丢失问题,具体来说,将新闻事件表示和新闻风格表示进行联接,然后使用一个全连接神经网络对其进行编码,得到重构的新闻表示,最后使用MSE函数约束新闻表示和重构的新闻表示;具体实施方法如下述公式所示:
其中,ei、ti分别为历史新闻序列中第i个浏览新闻的新闻事件表示和新闻风格表示,二者均来自公式(7);ni为历史新闻序列中第i个浏览新闻的新闻表示,来自公式(6);MSE为均方误差函数;为重构损失;
事件预测损失用于拉近基于事件的新闻事件分布和真实的新闻事件分布的距离;具体实施方法如下述公式所示:
其中,为历史新闻序列中第i个浏览新闻的基于事件的新闻事件分布,来自公式(8);pe,i为历史新闻序列中第i个浏览新闻的基于事件的真实的新闻事件分布,来自公式(9);为事件预测损失;
对抗损失以新闻风格表示作为输入,通过事件分类器(即公式(8))得到基于风格的新闻事件分布,并拉远其与真实的新闻事件分布的距离;具体实施方法如下述公式所示:
其中,为历史新闻序列中第i个浏览新闻在第j个事件通道上的基于风格的新闻事件分布,来自公式(8);pe,ij为历史新闻序列中第i个浏览新闻在第j个事件通道上的基于风格真实的新闻事件分布,来自公式(9);为对抗损失;
最后,辅助损失由上述三种损失构成;具体实施方法如下述公式所示:
其中,分别为重构损失、事件预测损失、对抗损失,来自公式(10)、公式(11)、公式(12)。
4.根据权利要求1所述的基于新闻事件和新闻风格联合建模的新闻推荐方法,其特征在于,所述步骤S2中构建基于新闻事件和新闻风格联合建模的新闻推荐模型事件匹配模块的具体步骤如下:
以公式(7)输出的新闻事件表示和公式(8)输出的基于事件的事件分布分别作为输入;其中,新闻事件表示包含历史新闻序列的新闻事件表示和候选新闻的新闻事件表示;类似地,基于事件的新闻事件分布包含历史新闻序列的基于事件的新闻事件分布和候选新闻的基于事件的新闻事件分布;使用事件通道建模层对历史新闻序列的新闻事件表示在不同事件通道上进行编码,生成基于事件的用户表示;对候选新闻的新闻事件表示按照不同事件通道进行划分,生成候选新闻在不同事件通道上的新闻事件表示;使用细粒度事件匹配层,对基于事件的用户表示和候选新闻在不同事件通道上的新闻事件表示进行内积计算,得到候选新闻在不同事件通道上的事件匹配得分;最后通过得分注意力网络将每个事件通道的事件匹配得分进行汇聚,以生成一个细粒度事件匹配得分;事件匹配模块的构建步骤如下:
构建事件通道建模层:以历史新闻序列的新闻事件表示、候选新闻的新闻事件表示、历史新闻序列的基于事件的新闻事件分布、候选新闻的基于事件的新闻事件分布作为输入,首先根据历史新闻序列的基于事件的新闻事件分布、候选新闻的基于事件的新闻事件分布分别将历史新闻序列的新闻事件表示、候选新闻的新闻事件表示划分到不同事件通道;对于历史新闻序列中第i个浏览新闻的新闻事件表示,其划分方法的具体描述如下:
其中,为历史新闻序列中第i个浏览新闻的基于事件的新闻事件分布,来自公式(8);ei为历史新闻序列中第i个浏览新闻的新闻事件表示,来自公式(7);为历史新闻序列中第i个浏览新闻在不同事件通道上的新闻事件表示;具体来说,其中为该历史新闻序列中第i个浏览新闻在第1个事件通道上的新闻事件表示;K为事件通道的个数;
类似地,对于候选新闻的新闻事件表示,使用相同的方法将其划分到不同事件通道,以生成候选新闻在不同事件通道上的新闻事件表示其中下标c表示候选新闻;j表示第j个事件通道;
进一步地,为了在每个通道上生成基于事件的用户表示,该层在每个事件通道上都使用通道注意力网络进行编码;具体来说,对于第j个事件通道上的基于事件的用户表示,其具体实施方法如下述公式所示:
其中,为历史新闻序列中第i个浏览新闻在第j个事件通道上的新闻事件表示,来自公式(14);qj、Vj和vj为通道注意力的参数;为第i个浏览新闻在第j个事件通道上的相似度;为第i个浏览新闻在第j个事件通道上的注意力权重;为第j个事件通道上的基于事件的用户表示;为基于事件的用户表示;l为历史新闻序列的长度,设置为50;
构建细粒度事件匹配层:以事件通道建模层得到的基于事件的用户表示和候选新闻在不同事件通道上的新闻事件表示作为输入,生成每个事件通道上的事件匹配得分,并通过得分注意力聚合为事件匹配得分;具体来说,第j个事件通道的事件匹配得分计算方法如下述公式所示:
其中,为第j个事件通道上的基于事件的用户表示,来自公式(15);为候选新闻在第j个事件通道上的新闻事件表示,来自公式(14);为第j个事件通道的事件匹配得分;
该层通过一个得分注意力网络将每个事件通道的事件匹配得分进行汇聚,以生成一个细粒度事件匹配得分;由于候选新闻的基于事件的新闻事件分布对得分注意力有一定的影响,因此得分注意力的构建应考虑该因素;具体来说,候选新闻的基于事件的新闻事件分布首先通过进行映射;其中是候选新闻的基于事件的新闻事件分布,来自公式(8);为候选新闻的基于事件的新闻事件分布的离散向量;
然后通过全连接神经网络将候选新闻的基于事件的新闻事件分布的离散向量转换为候选新闻事件分布表示具体实施方法如下述公式所示:
其中,为候选新闻的基于事件的新闻事件分布的离散向量;为的嵌入表示;为候选新闻事件分布表示;
最后基于候选新闻事件分布表示在不同事件通道上构建得分注意力并计算事件匹配得分,具体实施方法如下述公式所示:
其中,是候选新闻在第j个事件通道上的新闻事件分布表示,来自公式(17);qs、Vs和vs是得分注意力网络的参数;为候选新闻在第j个事件通道上的相似度;为候选新闻在第j个事件通道上的注意力权重;sf为事件匹配得分;K为事件通道的个数。
5.根据权利要求4所述的基于新闻事件和新闻风格联合建模的新闻推荐方法,其特征在于,所述步骤S2中构建基于新闻事件和新闻风格联合建模的新闻推荐模型风格匹配模块的具体步骤如下:
以用户ID和权利要求4所述的新闻风格表示作为输入,其中新闻风格表示包含历史新闻序列的新闻风格表示和候选新闻的新闻风格表示,其获取方法与权利要求4所述的历史新闻序列的新闻事件表示和候选新闻的新闻事件表示类似,在此不再赘述;
风格匹配模块首先使用多头注意力对历史新闻序列的新闻风格表示进行编码,以捕获新闻中的交互,并生成历史新闻序列交互后的新闻风格表示;具体实施方法如下述公式所示:
[t'1,t'2,…,t'l]=MultiHeadAttention(T), (19)
其中,T=[t1,t2,...,tl]为历史新闻序列的新闻风格表示;t1和t'1分别为历史新闻序列中第1个新闻的新闻风格表示和历史新闻序列中第1个新闻交互后的新闻风格表示;其他符号,与此类似,不再赘述;
对于历史新闻序列交互后的新闻风格表示,使用风格注意力网络编码,生成基于风格的用户表示;具体实施方法如下述公式所示:
其中,ud代表用户ID的嵌入表示;u'd代表用户ID的特征表示;qt、Vt、Vd和v为模型参数;t'i为历史新闻序列中第i个新闻交互后的新闻风格表示;为历史新闻序列交互后的新闻风格表示间的相似度;为风格注意力权重;ut为基于风格的用户表示;
进一步地,将基于风格的用户表示与候选新闻的新闻风格表示进行内积计算,生成风格匹配得分,具体实施方法如下述公式所示:
其中,ut为基于风格的用户表示,来自公式(20);tc为候选新闻的新闻风格表示;st为代表风格匹配得分。
6.根据权利要求4或5所述的基于新闻事件和新闻风格联合建模的新闻推荐方法,其特征在于,所述步骤S2中构建基于新闻事件和新闻风格联合建模的新闻推荐模型候选新闻预测模块的具体步骤如下:
以候选新闻预测模块以权利要求4所述的事件匹配得分和权利要求5所述的风格匹配得分作为输入,通过权重相加得到候选新闻的预测得分,具体实施方法如下述公式所示:
其中,sf为事件匹配得分,来自公式(18);st为风格匹配得分,来自公式(21);s为候选新闻的预测得分;β为权重,设置为1.9。
7.根据权利要求1所述的基于新闻事件和新闻风格联合建模的新闻推荐方法,其特征在于,所述步骤S3中,在步骤S1所得到训练数据集中对步骤S2构建的新闻推荐模型进行训练,具体步骤如下:
构建损失函数:采用负采样技术,将一个被用户点击的候选新闻定义为正样例,未被用户点击的候选新闻定义为负样例,计算正样例的点击预测概率pi;具体实施方法如下述公式所示:
其中,是在同一点击序列中的第j个负样例相对于第i个正样例的点击率;是第i个正样例;G是负样例的个数;
模型的损失函数为所有正样例的负对数似然函数,具体实施方法如下述公式所示:
其中,pi为正样例的点击预测概率;是正样例的集合;
进一步地,整体损失函数的定义为其中,为辅助损失,来自公式(13);γ为超参数,在此设置为1.6;
优化模型:使用Adam算法作为模型的优化函数;其中,学习率参数设置为0.0001,其他超参数使用PyTorch中的默认值即可;
本方法模型尚未进行充分训练时,需要在训练数据集上进行训练,以优化模型参数;当模型训练完毕时,候选新闻预测模块可预测每个候选新闻的预测得分,根据得分,推荐合适的新闻给当前用户。
8.基于新闻事件和新闻风格联合建模的新闻推荐系统,其特征在于,该系统包括训练数据集生成单元、基于新闻事件和新闻风格联合建模的新闻推荐模型构建单元、模型训练单元,分别实现权利要求1-7所描述的基于新闻事件和新闻风格联合建模的新闻推荐方法,具体为:
训练数据集生成单元,用于在线上新闻网站获得用户的浏览记录信息,随后对其进行预处理操作,从而得到符合训练要求的用户浏览记录及其新闻文本内容;
基于新闻事件和新闻风格联合建模的新闻推荐模型构建单元,用于构建新闻编码器、构建事件-风格解耦器、构建事件匹配模块、构建风格匹配模块、构建候选新闻预测模块;
模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练。
9.一种存储介质,其中存储有多条指令,其特征在于,所述指令由处理器加载,执行权利要求1-7所述的基于新闻事件和新闻风格联合建模的新闻推荐方法的步骤。
10.一种电子设备,其特征在于,所述电子设备包括:权利要求9所述的存储介质;以及处理器,用于执行所述存储介质中的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311159947.2A CN117171440A (zh) | 2023-09-11 | 2023-09-11 | 基于新闻事件和新闻风格联合建模的新闻推荐方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311159947.2A CN117171440A (zh) | 2023-09-11 | 2023-09-11 | 基于新闻事件和新闻风格联合建模的新闻推荐方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117171440A true CN117171440A (zh) | 2023-12-05 |
Family
ID=88942643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311159947.2A Pending CN117171440A (zh) | 2023-09-11 | 2023-09-11 | 基于新闻事件和新闻风格联合建模的新闻推荐方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117171440A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648496A (zh) * | 2024-01-25 | 2024-03-05 | 云南日报报业集团 | 新闻推荐方法及计算机可读存储介质 |
-
2023
- 2023-09-11 CN CN202311159947.2A patent/CN117171440A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648496A (zh) * | 2024-01-25 | 2024-03-05 | 云南日报报业集团 | 新闻推荐方法及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162700B (zh) | 信息推荐及模型的训练方法、装置、设备以及存储介质 | |
CN110516160B (zh) | 基于知识图谱的用户建模方法、序列推荐方法 | |
Lyu et al. | Knowledge enhanced graph neural networks for explainable recommendation | |
Panagiotakis et al. | Improving recommender systems via a dual training error based correction approach | |
CN113590970B (zh) | 一种基于读者偏好的个性化数字图书推荐系统、方法、计算机及存储介质 | |
CN106250545A (zh) | 一种基于用户搜索内容的多媒体推荐方法及系统 | |
CN114840747B (zh) | 一种基于对比学习的新闻推荐方法 | |
CN112464100B (zh) | 信息推荐模型训练方法、信息推荐方法、装置及设备 | |
Amir et al. | On the current state of deep learning for news recommendation | |
CN116431919A (zh) | 基于用户意图特征的智能新闻推荐方法和系统 | |
Elahi et al. | Graph attention-based collaborative filtering for user-specific recommender system using knowledge graph and deep neural networks | |
CN117171440A (zh) | 基于新闻事件和新闻风格联合建模的新闻推荐方法和系统 | |
CN110069713A (zh) | 一种基于用户上下文感知的个性化推荐方法 | |
CN113918764A (zh) | 一种基于交叉模态融合的电影推荐系统 | |
CN113051468A (zh) | 一种基于知识图谱和强化学习的电影推荐方法及系统 | |
Zhao et al. | A hybrid model based on LFM and BiGRU toward research paper recommendation | |
CN116010696A (zh) | 融合知识图谱和用户长短期兴趣的新闻推荐方法、系统及介质 | |
Zhou et al. | Profiling temporal learning interests with time-aware transformers and knowledge graph for online course recommendation | |
CN114896510A (zh) | 基于用户多兴趣特征的智能新闻推荐方法和系统 | |
Hu et al. | Aspect-guided syntax graph learning for explainable recommendation | |
Mu et al. | Auxiliary stacked denoising autoencoder based collaborative filtering recommendation | |
CN113342994A (zh) | 一种基于无采样协作知识图网络的推荐系统 | |
Jalal | Big data and intelligent software systems | |
Liu | POI recommendation model using multi-head attention in location-based social network big data | |
CN116956183A (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 |