CN112818256B - 一种基于神经协同过滤的推荐方法 - Google Patents

一种基于神经协同过滤的推荐方法 Download PDF

Info

Publication number
CN112818256B
CN112818256B CN202110164253.2A CN202110164253A CN112818256B CN 112818256 B CN112818256 B CN 112818256B CN 202110164253 A CN202110164253 A CN 202110164253A CN 112818256 B CN112818256 B CN 112818256B
Authority
CN
China
Prior art keywords
vector
user
target user
representing
interaction
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
Application number
CN202110164253.2A
Other languages
English (en)
Other versions
CN112818256A (zh
Inventor
贺巩山
丁立新
赵东星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN202110164253.2A priority Critical patent/CN112818256B/zh
Publication of CN112818256A publication Critical patent/CN112818256A/zh
Application granted granted Critical
Publication of CN112818256B publication Critical patent/CN112818256B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9536Search customisation based on social or collaborative filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于神经协同过滤的推荐方法,采用了双重嵌入的方式,从ID和历史交互两个方面去表示用户和物品,继而得到了用户和物品的两类表示向量。然后,使用嵌入整合层,将两类表示向量融合在一起,相互补充,进而得到了更好的用户和物品表示。最后,利用神经协同过滤层对用户和物品之间的交互行为进行建模,学习二者之间的交互函数,以预测用户对物品的感兴趣程度。

Description

一种基于神经协同过滤的推荐方法
技术领域
本发明属于计算机推荐***领域,更具体地,涉及一种基于神经协同过滤的推荐方法。
背景技术
随着信息技术的飞速发展,互联网中信息的数量呈***式增长,人们每天接收到的信息量远远超出了其处理能力,这使得人们难以从海量的信息中找出对自己有价值的那部分信息,该问题被称为信息过载(Information Overload)。正是在这样的历史背景下,推荐***(Recommender Systems,RS)应运而生。目前,它已经成为一种解决信息过载问题的重要工具,不仅能够帮助用户找到需要或者感兴趣的信息,而且可以为企业带来丰厚的收益。
在推荐***领域中,有两类主要的应用问题:评分预测和Top-N推荐。评分预测的目标是根据目标用户的历史评分和其他相关数据,预测其对候选物品的评分。而Top-N推荐的目标则是根据目标用户的历史行为(如浏览、点击、收藏以及购买等)和其他相关数据,对候选物品进行排序,将排在最前面的N个物品推荐给该用户。与评分预测相比,Top-N推荐更具有商业价值,因此,它已经成为推荐***领域主流的研究问题。
在众多的推荐算法中,协同过滤(Collaborative Filtering,CF)算法是最古老且最常使用的一类算法,几乎成为了推荐***的代名词。它利用集体智慧,借鉴相关人群的观点进行信息过滤,不仅在学术界被深入研究,而且被工业界广泛应用。在设计协同过滤模型时,有两个重要问题必须仔细考虑:第一,如何表示用户和物品;第二,在得到用户和物品的向量表示后,如何对它们之间的交互行为进行建模。
近年来,基于深度学习的推荐算法已经成为推荐***领域的主流方法,受到了学术界和工业界的广泛认可。与传统的推荐方法相比,这类方法在评分预测和Top-N推荐任务中均取得了显著的效果。神经协同过滤是将深度学习应用在推荐***领域的代表性研究,它提出了一种叫作神经矩阵分解(Neural Matrix Factorization,NeuMF)的推荐模型,利用线性的矩阵分解(Matrix Factorization,MF)和非线性的多层感知器(Multi-layerPerceptron,MLP)去学习用户和物品之间的交互函数。然而,在“如何表示用户和物品”这一问题上,神经协同过滤仅使用ID去表示用户和物品。此后,一系列研究和应用均沿用了该表示方式。这种方式的缺点在于它只能得到较弱的表示向量,这导致采用该方式的推荐方法不得不依靠交互函数来弥补表示向量的不足。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提出了一种基于神经协同过滤的推荐方法,包括:
S1:检索数据库和日志文件,查询用户和物品之间的交互记录,将交互记录的原始数据分割为训练集和测试集两个部分,使用训练集构建用户-物品交互矩阵
Figure BDA0002937030030000021
其中,M和N分别表示***中用户和物品的个数,若用户u和物品i之间存在交互行为,则用户-物品交互矩阵Y中第u行i列的元素值为1;否则,值为0;
S2:从用户-物品交互矩阵Y的缺失项中抽取负样本,完善训练集;
S3:使用用户和物品的ID及历史交互作为原始输入,经过one-hot和multi-hot编码后,转变为模型能够直接处理的输入向量,然后,利用线性的嵌入层,将高维、稀疏的输入向量转换为低维、稠密的表示向量,从而得到目标用户u和候选物品i的两类表示向量;
S4:使用嵌入整合层,将目标用户u和候选物品i的两类表示向量整合在一起,形成目标用户u和候选物品i最终的表示向量;
S5:使用神经协同过滤层对目标用户u和候选物品i之间的交互行为进行建模;
S6:计算目标用户u对候选物品i的感兴趣程度;
S7:选择合适的目标函数和优化方法,优化模型,更新模型参数;
S8:返回执行步骤S2,继续训练模型,直至模型收敛或者超过最大的迭代次数;
S9:生成推荐列表,并对模型的性能进行评估。
在一些可选的实施方案中,步骤S3包括:
S3.1:对目标用户u和候选物品i的ID执行one-hot编码,对于目标用户u,其ID的one-hot编码是一个长度为M的二进制向量
Figure BDA0002937030030000031
只有第u个元素为1,其他元素均为0;对于候选物品i,其ID的one-hot编码是一个长度为N的二进制向量
Figure BDA0002937030030000032
只有第i个元素为1,其他元素均为0;
S3.2:对目标用户u和候选物品i的历史交互执行multi-hot编码,对于目标用户u,其历史交互的multi-hot编码是一个长度为N的二进制向量
Figure BDA0002937030030000033
只有用户u交互过的物品ID对应的位置为1,其他位置均为0;对于候选物品i,其历史交互的multi-hot编码是一个长度为M的二进制向量
Figure BDA0002937030030000034
只有和候选物品i有过交互行为的用户ID对应的位置为1,其他位置均为0;
S3.3:使用线性的嵌入层,将高维、稀疏的输入向量转换为低维、稠密的表示向量。
在一些可选的实施方案中,步骤S3.3包括:
S3.3.1:由
Figure BDA0002937030030000035
从ID的角度得到目标用户u的表示向量pu和候选物品i的表示向量qi,由
Figure BDA0002937030030000036
从历史交互的角度得到目标用户u的表示向量mu和候选物品i的表示向量ni,其中,
Figure BDA0002937030030000041
表示目标用户u交互过的物品集合,
Figure BDA0002937030030000042
表示和候选物品i有过交互行为的用户集合,
Figure BDA0002937030030000043
Figure BDA0002937030030000044
分别表示
Figure BDA0002937030030000045
中元素的个数;
Figure BDA0002937030030000046
Figure BDA0002937030030000047
以及
Figure BDA0002937030030000048
为转换矩阵;k<<min(M,N)是一个超参数,表示嵌入空间的维度大小;
S3.3.2:在另一个嵌入空间中,由
Figure BDA0002937030030000049
从ID的角度得到目标用户u的表示向量p′u和候选物品i的表示向量q′i,由
Figure BDA00029370300300000410
Figure BDA00029370300300000411
从历史交互的角度得到目标用户u的表示向量m′u和候选物品i的表示向量n′i,其中,
Figure BDA00029370300300000412
以及
Figure BDA00029370300300000413
为转换矩阵;k′<<min(M,N)是一个超参数,表示另一个嵌入空间的维度大小。
在一些可选的实施方案中,步骤S4包括:
S4.1:对于矩阵分解MF部分,由
Figure BDA00029370300300000414
将两类表示向量相加,得到了目标用户u最终的表示向量
Figure BDA00029370300300000415
和候选物品i最终的表示向量
Figure BDA00029370300300000416
S4.2:对于多层感知器MLP部分,由
Figure BDA00029370300300000417
通过向量拼接操作,形成了目标用户u最终的表示向量
Figure BDA00029370300300000418
和候选物品i最终的表示向量
Figure BDA00029370300300000419
其中,
Figure BDA00029370300300000420
表示向量拼接。
在一些可选的实施方案中,步骤S5包括:
S5.1:对于矩阵分解MF部分,由
Figure BDA00029370300300000421
对用户和物品之间的交互行为进行建模,其中,eMF表示矩阵分解的输出向量,⊙表示哈达玛积;
S5.2:对于多层感知器MLP部分,由
Figure BDA00029370300300000422
将用户和物品的表示向量拼接起来,得到神经协同过滤层的输入向量eui;然后,将eui喂进多层感知器中,去学习用户和物品之间的交互函数,得到多层感知器的输出向量eMLP
在一些可选的实施方案中,步骤S6包括:
Figure BDA0002937030030000051
将矩阵分解和多层感知器两个部分的输出向量拼接起来,喂入一个全连接层中,得到目标用户u和候选物品i之间的预测分数
Figure BDA0002937030030000052
其中,
Figure BDA0002937030030000053
为输出层的权重向量;
Figure BDA0002937030030000054
表示输出层的偏置项;σ(·)为Sigmoid函数。
总体而言,与现有技术相比,通过本发明所构思的以上技术方案,能够取得下列有益效果:
本发明采用双重嵌入的方式,从ID和历史交互两个方面去表示用户和物品。然后,使用嵌入整合层,将两类表示向量整合在一起,以得到更好的用户和物品表示。最后,使用神经协同过滤层对用户和物品之间的交互行为进行建模。与仅使用ID或者历史交互相比,综合利用二者来表示用户和物品,获得了更好的表示向量,对学习用户和物品之间的交互函数也起到了很大的帮助作用,进而提高了模型的推荐性能,改善了用户体验。
附图说明
图1是本发明实施例提供的一种方法流程示意图;
图2是本发明实施例提供的一种数据集分割图;
图3是本发明实施例提供的一种模型结构图;
图4是本发明实施例提供的一种推荐列表生成图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明主要基于深度学习技术,利用历史交互来弥补基于ID的表示方式的不足,提出了一种基于神经协同过滤的推荐方法。
图1是本发明实施例提供的一种方法流程示意图,以浅层、线性的矩阵分解和深层、非线性的多层感知器为实现方式对本发明的流程进行了阐述,具体内容如下:
给定目标用户u和候选物品i,则本发明提出的推荐方法可以表示为:
Figure BDA0002937030030000061
其中,
Figure BDA0002937030030000062
表示目标用户u和候选物品i之间的预测分数;Θ表示模型参数;f表示映射函数。
步骤S1:检索数据库和日志文件,查询用户和物品之间的交互记录,将交互记录的原始数据分割为训练集和测试集两个部分,然后,使用训练集,构建用户-物品交互矩阵
Figure BDA0002937030030000063
其中,M和N分别表示用户和物品的个数,若用户u和物品i之间存在交互行为,如浏览、收藏或购买等,则Y中第u行i列的元素值为1;否则,值为0;
在本发明实施例中,步骤S1可以通过以下方式实现:
首先,查询数据库和日志文件,获取用户和物品之间的交互数据,包括用户的浏览记录、点击列表、收藏目录以及购买历史等。接着,如图2所示,对于***中的每个用户,使用其最后一次交互的物品(以下简称测试物品)作为测试集中的测试物品,剩余部分作为训练集中的数据。按照这种划分方式,可以将原始数据集分割为训练集和测试集两个部分。其中,训练集用于训练模型,而测试集则用于评估模型的性能。
然后,使用训练集,构建用户-物品交互矩阵。假设***中共有M个用户和N个物品,则用户-物品交互矩阵
Figure BDA0002937030030000064
(
Figure BDA0002937030030000065
表示M×N维实数向量空间)可以通过如下方式构建:
Figure BDA0002937030030000066
其中,yui表示用户-物品交互矩阵Y第u行i列中的元素。
步骤S2:从用户-物品交互矩阵的缺失项中抽取负样本,完善训练集;
在本发明实施例中,步骤S2主要用于解决Top-N推荐问题。在Top-N推荐中,通常采用隐式反馈数据作为模型的输入。所谓隐式反馈是指,间接反映用户对物品偏好信息的用户行为数据,如浏览、点击、收藏以及购买等。在实际的应用中,与显式反馈(即用户主动提供的、对物品的偏好信息,如评分和评论等)相比,隐式反馈更容易收集,并且数据量更大。然而,隐式反馈只包含用户对哪些物品发生过交互行为(以下简称正样本),无法知道用户不喜欢哪些物品(以下简称负样本)。针对该问题,一种解决方法是将用户-物品交互矩阵中所有值为0的项(以下简称缺失项)均视为负样本。该方法的问题在于,并非所有的缺失项都是真正的负样本,有可能只是用户从未看到过该物品。另一种方法为负采样,即从所有的缺失项中随机抽样,选出一部分作为负样本。
在本发明实施例中,步骤S2使用了负采样策略,从所有的缺失项中,随机抽取一部分数据作为负样本。这些随机选出的负样本,和步骤S1中得到的正样本集合,一同构成了完整的训练集。设Y+表示正样本集,Y-表示抽取的负样本集,则最终的训练样本集为Y+∪Y-
步骤S3:使用用户和物品的ID及历史交互作为原始输入,经过简单的one-hot和multi-hot编码后,转变为模型可以直接处理的输入向量,然后,利用线性的嵌入层,将高维、稀疏的输入向量,转换为低维、稠密的表示向量,从而得到了目标用户u和候选物品i的两类表示向量;
Figure BDA0002937030030000071
表示用户u交互过的物品集合(以下简称历史物品),
Figure BDA0002937030030000072
表示和物品i有过交互行为的用户集合(以下简称历史用户),用户的历史物品和物品的历史用户统称为它们的历史交互。
在本发明实施例中,步骤S3可以通过以下方式实现:
首先,对目标用户u和候选物品i的ID执行one-hot编码。以目标用户u为例,其ID的one-hot编码是一个长度为M的二进制向量
Figure BDA0002937030030000073
只有第u个元素为1,其他元素均为0。例如,u=2,M=5,则其one-hot编码为[0,1,0,0,0]T。类似地,可以得到候选物品i的ID的one-hot编码
Figure BDA0002937030030000081
然后,对目标用户u和候选物品i的历史交互执行multi-hot编码。仍以目标用户u为例,其历史交互的multi-hot编码是一个长度为N的二进制向量
Figure BDA0002937030030000082
只有用户u的历史物品的ID对应的位置为1,其他位置均为0。例如,用户u的历史物品
Figure BDA0002937030030000083
N=5,则其multi-hot编码为[1,0,1,1,0]T。类似地,可以得到候选物品i的历史交互的multi-hot编码
Figure BDA0002937030030000084
接着,使用线性的嵌入层,将高维、稀疏的输入向量转换为低维、稠密的表示向量。经过上述编码操作后,得到的输入向量,维度非常大,并且大部分元素均为0。为了更加高效地表示目标用户和候选物品,可以使用线性的嵌入层,将其映射到低维空间中。该转换过程如公式(3)所示。
Figure BDA0002937030030000085
其中,pu和qi分别为从ID的角度得到的目标用户u和候选物品i的表示向量;mu和ni分别为从历史交互的角度得到的目标用户u和候选物品i的表示向量;
Figure BDA0002937030030000086
Figure BDA0002937030030000087
分别表示
Figure BDA0002937030030000088
中元素的个数;
Figure BDA0002937030030000089
Figure BDA00029370300300000810
以及
Figure BDA00029370300300000811
为转换矩阵;k<<min(M,N)是一个超参数,表示嵌入空间的维度大小。
类似地,在另一个嵌入空间中,由
Figure BDA00029370300300000812
从ID的角度得到目标用户u的表示向量p′u和候选物品i的表示向量q′i,由
Figure BDA00029370300300000813
Figure BDA00029370300300000814
从历史交互的角度得到目标用户u的表示向量m′u和候选物品i的表示向量n′i。其中,
Figure BDA00029370300300000815
以及
Figure BDA00029370300300000816
为转换矩阵;k′<<min(M,N)是一个超参数,表示另一个嵌入空间的维度大小。需要特别说明的是,图3中左右两个部分之所以使用不同维度的表示向量,是因为共享的表示向量,可能会限制模型的表达能力,进而降低模型的性能。
步骤S4:使用嵌入整合层,将步骤S3得到的两类表示向量整合在一起,形成目标用户u和候选物品i最终的表示向量;
在嵌入整合层中,可以使用任意的二元运算,如相加、哈达玛积(HadamardProduct)以及拼接等。
在本发明实施例中,步骤S4可以通过以下方式实现:
如图3所示,对于左侧的矩阵分解(Matrix Factorization,MF)部分,将两类表示向量相加,得到了目标用户u和候选物品i最终的表示向量:
Figure BDA0002937030030000091
其中,
Figure BDA0002937030030000092
Figure BDA0002937030030000093
分别表示矩阵分解部分目标用户u和候选物品i最终的表示向量。例如,pu=[a1,a2,…,ak]T,mu=[b1,b2,…,bk]T,则
Figure BDA0002937030030000094
Figure BDA0002937030030000095
对于右侧的多层感知器(Multi-layer Perceptron,MLP)部分,通过向量拼接操作,形成了目标用户u和候选物品i最终的表示向量:
Figure BDA0002937030030000096
其中,
Figure BDA0002937030030000097
Figure BDA0002937030030000098
分别表示多层感知器部分目标用户u和候选物品i最终的表示向量;
Figure BDA0002937030030000099
表示向量拼接。例如,p′u=[a1,a2,…,ak′]T,m′u=[b1,b2,…,bk′]T,则
Figure BDA00029370300300000910
步骤S5:使用神经协同过滤层对目标用户u和候选物品i之间的交互行为进行建模;
在神经协同过滤层中,可以采用任意的运算或结构对用户和物品之间的交互行为进行建模,如哈达玛积和多层感知器等。
在本发明实施例中,步骤S5可以通过以下方式实现:
在神经协同过滤层中,最后一个隐含层的大小(即隐含单元的个数)被称之为预测因子(Predictive Factors)。它的大小,对模型的性能起着至关重要的作用。
对于矩阵分解部分,采用哈达玛积对用户和物品之间的交互行为进行建模,此时其预测因子为k。该过程如公式(6)所示:
Figure BDA0002937030030000101
其中,eMF表示矩阵分解的输出向量;⊙表示哈达玛积,即逐元素相乘。例如,
Figure BDA0002937030030000102
则eMF=[a1b1,a2b2,…,akbk]T
对于多层感知器部分,首先将用户和物品的表示向量拼接起来,得到神经协同过滤层的输入向量。该过程如公式(7)所示:
Figure BDA0002937030030000103
其中,eui为多层感知器的输入向量。
然后,将eui喂进多层感知器中,去学习用户和物品之间的交互函数。该过程如公式(8)所示:
Figure BDA0002937030030000104
其中,L表示多层感知器的层数;
Figure BDA0002937030030000105
Figure BDA0002937030030000106
分别为第l(l≤L)层的权重矩阵、偏置向量以及输出向量(dl表示第l层中隐含单元的个数,预测因子dL=k);eMLP为多层感知器的输出向量;ReLU(·)为线性整流函数(Rectifier LinearUnit),其数学表达式为:
Figure BDA0002937030030000107
之所以选择ReLU(·),是因为当x>0时,它的导数恒等于1,可以有效地解决梯度消失问题。
神经网络的设计,遵循常见的塔型结构。具体来说,后一层中隐含单元的个数是前一层的一半。例如,多层感知器的层数L=3,预测因子dL为64,则其网络结构为256→128→64,嵌入维度k′=64。实验发现,当层数较少时,模型的性能往往会随着层数的增加而不断上升。但是,当层数过多时,模型容易出现过拟合问题,即在训练集上的损失持续下降,而在测试集上的效果却越来越差。通常情况下,使用三层的多层感知器已经能够取得非常好的效果。
步骤S6:计算目标用户u对候选物品i的感兴趣程度;
在本发明实施例中,步骤S6可以通过以下方式实现:
将矩阵分解和多层感知器两个部分的输出向量拼接起来,喂入一个全连接层(fully connected layer)中,便可得到目标用户u和候选物品i之间的预测分数
Figure BDA0002937030030000111
该过程如公式(10)所示:
Figure BDA0002937030030000112
其中,
Figure BDA0002937030030000113
为输出层的权重向量;
Figure BDA0002937030030000114
表示输出层的偏置项;σ(·)为Sigmoid函数,用于将输出结果限制在(0,1)范围内,其数学表达式为:
Figure BDA0002937030030000115
步骤S7:选择合适的目标函数和优化方法,优化模型,更新模型参数。
常见的目标函数可以分为三类:点级(point-wise)、对级(pair-wise)以及列表级(list-wise)。下面以点级目标函数为例,其数学形式为:
Figure BDA0002937030030000116
其中,yui表示目标用户u和候选物品i之间是否存在交互行为(如公式(2)所示),
Figure BDA0002937030030000117
为模型的预测值;l(·)表示损失函数;Θ为模型中的参数;Ω(Θ)表示正则项,用于防止过拟合;λ表示正则项系数,用于控制正则项的影响程度。
对于Top-N推荐任务,通常采用二元交叉熵(binary cross entropy)作为损失函数,其数学表达式为:
Figure BDA0002937030030000121
除了目标函数以外,还需要选择合适的优化方法。目前,深度学习领域最常用的优化方法是Adam算法。对于不同的参数,它能够自适应地调整其学习速率的大小。
步骤S8:回到步骤S2,继续训练模型,直至模型收敛或者超过最大的迭代次数;
回到步骤S2,重新抽取负样本,继而形成新的训练集。然后,在新的训练集上,继续训练模型。重复执行该过程,直至模型收敛或者超过设定的最大迭代次数。
步骤S9:生成推荐列表,并对模型的性能进行评估。
在本发明实施例中,步骤S9可以通过以下方式实现:
首先,计算目标用户和所有未发生交互行为的物品之间的预测分数,并按照该分数降序排序,选择排在最前面的K个物品作为目标用户的推荐列表,该过程如图4所示。
然后,根据生成的推荐列表,对模型的性能进行评估。在Top-N推荐中,最常使用的评估指标为命中率(Hit Ratio,HR)和归一化折扣累计收益(Normalized DiscountedCumulative Gain,NDCG)。在本发明实施例采用的数据集分割方式下,命中率和归一化折扣累计收益的数学表达式为:
Figure BDA0002937030030000122
其中,@K为at rank K的简写,表示推荐列表的大小为K;r∈[1,K]表示测试物品在推荐列表中的位置。r=1表示测试物品位于推荐列表的首位,其余情况依次类推。
命中率描述了测试物品是否在推荐列表中,而归一化折扣累计收益则描述了推荐列表的排序质量——测试物品在推荐列表中的位置越靠前,则该值越大,表明推荐列表的排序质量越高。对于测试集中的每个用户,分别计算这两个指标的值,使用所有用户的平均值,作为模型的最终评估值。一般来说,这两个指标的值越大,表明模型的性能越好,推荐的效果越佳。
综上所述,不同于过去常用的ID嵌入,本发明采用了双重嵌入的表示方式,同时从ID和历史交互两个方面去表示用户和物品,继而得到了用户和物品的两类表示向量。随后,使用嵌入整合层,将两类表示向量融合在一起,形成了最终的用户和物品表示。利用历史交互信息去补充ID信息,不仅获得了更好的用户和物品表示,而且有利于后续交互函数的学习。这是因为如果表示向量的表达能力较弱,那么在学习交互函数时,需要设计更加复杂的建模方式,才能弥补表示向量的不足。在得到用户和物品的向量表示后,本发明使用神经协同过滤层对用户和物品之间的交互行为进行建模,学习二者之间的交互函数,进而预测用户对物品的感兴趣程度。实验表明,采用双重嵌入的表示方式,增强了模型的表达能力,进而提高了模型的推荐性能,改善了用户体验。
需要指出的是,根据实施的需要,可将本申请中描述的各个步骤/部件拆分为更多步骤/部件,也可将两个或多个步骤/部件或者步骤/部件的部分操作组合成新的步骤/部件,以实现本发明的目的。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种基于神经协同过滤的推荐方法,其特征在于,包括:
S1:检索数据库和日志文件,查询用户和物品之间的交互记录,将交互记录的原始数据分割为训练集和测试集两个部分,使用训练集构建用户-物品交互矩阵
Figure FDA0003565784820000011
其中,M和N分别表示***中用户和物品的个数,若用户u和物品i之间存在交互行为,则用户-物品交互矩阵Y中第u行i列的元素值为1;否则,值为0;
S2:从用户-物品交互矩阵Y的缺失项中抽取负样本,完善训练集;
S3:使用用户和物品的ID及历史交互作为原始输入,经过one-hot和multi-hot编码后,转变为模型能够直接处理的输入向量,利用线性的嵌入层,将高维、稀疏的输入向量转换为低维、稠密的表示向量,从而得到目标用户u和候选物品i的两类表示向量;
S4:使用嵌入整合层,将目标用户u和候选物品i的两类表示向量整合在一起,形成目标用户u和候选物品i最终的表示向量;
S5:使用神经协同过滤层对目标用户u和候选物品i之间的交互行为进行建模;
S6:计算目标用户u对候选物品i的感兴趣程度;
S7:选择目标函数和优化方法,优化模型,更新模型参数;
S8:返回执行步骤S2,继续训练模型,直至模型收敛或者超过最大的迭代次数;
S9:生成推荐列表,并对模型的性能进行评估;
步骤S4包括:
S4.1:对于矩阵分解MF部分,由
Figure FDA0003565784820000012
将两类表示向量相加,得到了目标用户u最终的表示向量
Figure FDA0003565784820000013
和候选物品i最终的表示向量
Figure FDA0003565784820000014
pu表示从ID的角度得到目标用户u的表示向量,qi表示从ID的角度得到候选物品i的表示向量,mu表示从历史交互的角度得到目标用户u的表示向量,ni表示从历史交互的角度得到候选物品i的表示向量;
S4.2:对于多层感知器MLP部分,由
Figure FDA0003565784820000021
通过向量拼接操作,形成了目标用户u最终的表示向量
Figure FDA0003565784820000022
和候选物品i最终的表示向量
Figure FDA0003565784820000023
其中,
Figure FDA0003565784820000024
表示向量拼接,p u表示从ID的角度得到目标用户u的表示向量,q i表示从ID的角度得到候选物品i的表示向量,m u表示从历史交互的角度得到目标用户u的表示向量,n i表示从历史交互的角度得到候选物品i的表示向量;
步骤S5包括:
S5.1:对于矩阵分解MF部分,由
Figure FDA0003565784820000025
对用户和物品之间的交互行为进行建模,其中,eMF表示矩阵分解的输出向量,⊙表示哈达玛积;
S5.2:对于多层感知器MLP部分,由
Figure FDA0003565784820000026
将用户和物品的表示向量拼接起来,得到神经协同过滤层的输入向量eui;然后,将eui喂进多层感知器中,去学习用户和物品之间的交互函数,得到多层感知器的输出向量eMLP
2.根据权利要求1所述的方法,其特征在于,步骤S3包括:
S3.1:对目标用户u和候选物品i的ID执行one-hot编码,对于目标用户u,其ID的one-hot编码是一个长度为M的二进制向量
Figure FDA0003565784820000027
只有第u个元素为1,其他元素均为0;对于候选物品i,其ID的one-hot编码是一个长度为N的二进制向量
Figure FDA0003565784820000028
只有第i个元素为1,其他元素均为0;
S3.2:对目标用户u和候选物品i的历史交互执行multi-hot编码,对于目标用户u,其历史交互的multi-hot编码是一个长度为N的二进制向量
Figure FDA0003565784820000029
只有用户u交互过的物品ID对应的位置为1,其他位置均为0;对于候选物品i,其历史交互的multi-hot编码是一个长度为M的二进制向量
Figure FDA00035657848200000210
只有和候选物品i有过交互行为的用户ID对应的位置为1,其他位置均为0;
S3.3:使用线性的嵌入层,将高维、稀疏的输入向量转换为低维、稠密的表示向量。
3.根据权利要求2所述的方法,其特征在于,步骤S3.3包括:
S3.3.1:由
Figure FDA0003565784820000031
从ID的角度得到目标用户u的表示向量pu和候选物品i的表示向量qi,由
Figure FDA0003565784820000032
从历史交互的角度得到目标用户u的表示向量mu和候选物品i的表示向量ni,其中,
Figure FDA0003565784820000033
表示目标用户u交互过的物品集合,
Figure FDA0003565784820000034
表示和候选物品i有过交互行为的用户集合,
Figure FDA0003565784820000035
和|Yi +|分别表示
Figure FDA0003565784820000036
Yi +中元素的个数;
Figure FDA0003565784820000037
Figure FDA0003565784820000038
以及
Figure FDA0003565784820000039
为转换矩阵;k<<min(M,N)是一个超参数,表示嵌入空间的维度大小;
S3.3.2:在另一个嵌入空间中,由
Figure FDA00035657848200000310
从ID的角度得到目标用户u的表示向量p′u和候选物品i的表示向量q′i,由
Figure FDA00035657848200000311
Figure FDA00035657848200000312
从历史交互的角度得到目标用户u的表示向量m′u和候选物品i的表示向量n′i,其中,
Figure FDA00035657848200000313
以及
Figure FDA00035657848200000314
为转换矩阵;k′<<min(M,N)是一个超参数,表示另一个嵌入空间的维度大小。
4.根据权利要求3所述的方法,其特征在于,步骤S6包括:
Figure FDA00035657848200000315
将矩阵分解和多层感知器两个部分的输出向量拼接起来,喂入一个全连接层中,得到目标用户u和候选物品i之间的预测分数
Figure FDA00035657848200000316
其中,
Figure FDA00035657848200000317
为输出层的权重向量,
Figure FDA00035657848200000318
表示输出层的偏置项,σ(·)为Sigmoid函数。
CN202110164253.2A 2021-02-05 2021-02-05 一种基于神经协同过滤的推荐方法 Active CN112818256B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110164253.2A CN112818256B (zh) 2021-02-05 2021-02-05 一种基于神经协同过滤的推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110164253.2A CN112818256B (zh) 2021-02-05 2021-02-05 一种基于神经协同过滤的推荐方法

Publications (2)

Publication Number Publication Date
CN112818256A CN112818256A (zh) 2021-05-18
CN112818256B true CN112818256B (zh) 2022-06-03

Family

ID=75861973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110164253.2A Active CN112818256B (zh) 2021-02-05 2021-02-05 一种基于神经协同过滤的推荐方法

Country Status (1)

Country Link
CN (1) CN112818256B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11816573B1 (en) * 2023-04-24 2023-11-14 Wevo, Inc. Robust systems and methods for training summarizer models
CN116910371B (zh) * 2023-09-07 2024-01-23 南京大数据集团有限公司 一种基于深层关系的推荐方法及***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010027961A1 (en) * 2008-09-08 2010-03-11 Apple Inc. System and method for playlist generation based on similarity data
CN109299396A (zh) * 2018-11-28 2019-02-01 东北师范大学 融合注意力模型的卷积神经网络协同过滤推荐方法及***
US10318503B1 (en) * 2012-07-20 2019-06-11 Ool Llc Insight and algorithmic clustering for automated synthesis
CN110188283A (zh) * 2019-06-05 2019-08-30 中国人民解放军国防科技大学 一种基于联合神经网络协同过滤的信息推荐方法及其***
CN110245303A (zh) * 2019-06-13 2019-09-17 成都品果科技有限公司 一种协同过滤推荐***
CN111178986A (zh) * 2020-02-18 2020-05-19 电子科技大学 用户-商品偏好的预测方法及***
CN112231577A (zh) * 2020-11-06 2021-01-15 重庆理工大学 一种融合文本语义向量和神经协同过滤的推荐方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010027961A1 (en) * 2008-09-08 2010-03-11 Apple Inc. System and method for playlist generation based on similarity data
US10318503B1 (en) * 2012-07-20 2019-06-11 Ool Llc Insight and algorithmic clustering for automated synthesis
CN109299396A (zh) * 2018-11-28 2019-02-01 东北师范大学 融合注意力模型的卷积神经网络协同过滤推荐方法及***
CN110188283A (zh) * 2019-06-05 2019-08-30 中国人民解放军国防科技大学 一种基于联合神经网络协同过滤的信息推荐方法及其***
CN110245303A (zh) * 2019-06-13 2019-09-17 成都品果科技有限公司 一种协同过滤推荐***
CN111178986A (zh) * 2020-02-18 2020-05-19 电子科技大学 用户-商品偏好的预测方法及***
CN112231577A (zh) * 2020-11-06 2021-01-15 重庆理工大学 一种融合文本语义向量和神经协同过滤的推荐方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Deep Item-based Collaborative Filtering for Top-N Recommendation;Feng Xue;《ACM Transactions on Information Systems》;20190412;全文 *
Neural Collaborative Filtering;Xiangnan He;《WWW "17: Proceedings of the 26th International Conference on World Wide Web》;20170403;全文 *
Wide & Deep Learning for Recommender Systems;Heng-Tze Cheng;《DLRS 2016: Proceedings of the 1st Workshop on Deep Learning for Recommender Systems》;20160915;全文 *

Also Published As

Publication number Publication date
CN112818256A (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
WO2021139164A1 (zh) 一种基于长短期兴趣的序列化推荐方法
CN111310063B (zh) 基于神经网络的记忆感知门控因子分解机物品推荐方法
CN110717098B (zh) 基于元路径的上下文感知用户建模方法、序列推荐方法
CN110188283B (zh) 一种基于联合神经网络协同过滤的信息推荐方法及其***
CN107808278B (zh) 一种基于稀疏自编码器的Github开源项目推荐方法
CN112598462A (zh) 基于协同过滤和深度学习的个性化推荐方法及***
Lee et al. Deep learning based recommender system using cross convolutional filters
CN111737578B (zh) 一种推荐方法及***
CN111222332A (zh) 一种结合注意力网络和用户情感的商品推荐方法
CN110245285B (zh) 一种基于异构信息网络的个性化推荐方法
CN113918833B (zh) 通过社交网络关系的图卷积协同过滤实现的产品推荐方法
CN112818256B (zh) 一种基于神经协同过滤的推荐方法
CN113343125B (zh) 一种面向学术精准推荐的异质科研信息集成方法及***
CN113918834B (zh) 融合社交关系的图卷积协同过滤推荐方法
CN113918832A (zh) 基于社交关系的图卷积协同过滤推荐***
CN110781401A (zh) 一种基于协同自回归流实现的Top-n项目推荐方法
CN113590965B (zh) 一种融合知识图谱与情感分析的视频推荐方法
Guo et al. TenLa: an approach based on controllable tensor decomposition and optimized lasso regression for judgement prediction of legal cases
CN113704438B (zh) 一种基于分层注意力机制的异构图的会话推荐方法
Hung et al. Addressing the cold-start problem of recommendation systems for financial products by using few-shot deep learning
Hassan et al. Performance analysis of neural networks-based multi-criteria recommender systems
Kuang et al. Deep matrix factorization for cross-domain recommendation
CN115658936A (zh) 基于双层注意力模型的个性化节目推荐方法、***
CN115660776A (zh) 一种融合深度矩阵分解和多特征交叉的内容资源推荐方法、装置及介质
Ahirwadkar et al. Deepautoencf: A Denoising Autoencoder For Recommender Systems

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