CN112800344A - 一种基于深度神经网络的电影推荐方法 - Google Patents
一种基于深度神经网络的电影推荐方法 Download PDFInfo
- Publication number
- CN112800344A CN112800344A CN202110134206.3A CN202110134206A CN112800344A CN 112800344 A CN112800344 A CN 112800344A CN 202110134206 A CN202110134206 A CN 202110134206A CN 112800344 A CN112800344 A CN 112800344A
- Authority
- CN
- China
- Prior art keywords
- layer
- movie
- user
- vector
- output
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据推荐技术领域,具体涉及一种基于深度神经网络的电影推荐方法,包括:获取数据集进行特征选择,得到用户特征和电影特征;根据用户特征构建用户特征矩阵,根据电影特征构建电影特征矩阵;根据用户特征矩阵和电影特征矩阵构建用户‑电影特征矩阵;初始化电影推荐模型,将用户‑电影特征矩阵输入电影推荐模型中,采用梯度下降法对模型进行训练,得到训练好的电影推荐模型;利用训练好的电影推荐模型预测评分并给用户推荐电影。本发明利用户基本数据和项目基本数据可以充分学习用户和项目的潜在特征,增强了推荐结果可靠性。
Description
技术领域
本发明涉及数据推荐技术领域,具体涉及一种基于深度神经网络(Deep NeuralNetworks,DNN)的电影推荐方法。
背景技术
随着互联网的飞速发展,网络平台上的信息量快速增长,但海量的信息丰富我们生活的同时,也造成了信息过载的问题,导致用户无法迅速找到自己的目标内容。为了解决这一问题,推荐系统应运而生,近几年来,推荐系统在各个商业领域都得到了广泛的应用,为用户在网络平台上提供建议,帮助用户更准确、更迅速的找到用户所要查找的信息。
推荐系统的准确率和效率关键在于推荐算法,使用最广泛的的算法是协同过滤(Collaborative fltering)推荐算法。CF(协同过滤)算法包括两类:基于内存的方法和基于模型的方法,其中基于内存的CF使用用户或项目之间的相似性来提出建议,由于该方法有效且易于实现,因此得到了广泛的应用。尽管协同推荐算法已经得到了广泛的研究和应用,但是随着推荐系统规模增大,相似度的计算变得越来越困难,协同推荐算法存在两个重要的问题:1.冷启动问题(Sparsity problem):对于系统中的新用户或者新项目,由于没有对项目或者用户进行交互,因此协同过滤推荐算法就很难计算用户与用户之间的相似度或者项目与项目之间的相似度,无法将为新的用户推荐项目或者无法将新项目推荐给用户。这就是所谓的冷启动问题。2.稀疏性问题(Cold-start problem):推荐系统在大数据环境下的推荐过程中需要分析大量的数据,但是由于单个用户对项目的评分是有限的,这就导致了用户项目评分矩阵的稀疏性,稀疏的用户-项目评分矩阵难以计算出用户或者项目的相似性,严重影响着推荐系统的质量。
为了缓解协同推荐算法中的数据稀疏性和冷启动问题,将各种类型的辅助数据纳入推荐算法,被广泛研究的辅助数据并主要用于当前的推荐算法中包括:社会信任关系,项目内容,项目评论,社交网络和用户的社交标签。这些算法可以提高推荐结果准确性,减轻数据稀疏或冷启动问题。但是,在某些实际情况下,某些辅助数据无法获得的,大大降低了推荐结果的准确性。与这些辅助数据相比,用户基本数据(例如,用户性别,用户年龄和用户ID)以及项目基本数据(例如项目名称,项目类别)更易于在网站上获得。利用用户和项目基本数据作为推荐系统的用户特征和项目特征,可以缓解数据稀疏性和冷启动问题,并提升推荐算法的效果。有些推荐算法虽然已经使用用户和项目的基本数据,但这些算法通常将用户和项目的基本数据直接通过某些规则或方法转换(例如,使用模糊数或区间数)。这些直接转换方法可能会导致信息丢失,无法从用户和项目基本数据中充分挖掘潜在或深层的用户和项目特征并给出推荐。此外,常用的推荐算法中,同时使用用户和项目基本数据构建推荐系统的研究仍然相对较少。因此,如何从用户和项目的基本数据的不同维度中提取和构建推荐模型的有用特征实现推荐是一个关键问题。
另一方面,近年来深度神经网络(Deep Neural Networks,DNN)在计算机视觉、语音识别、自然语言处理等各个领域取得了巨大的成功。DNN的实质是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。因此,“深度模型”是手段,“特征学习”是目的。DNN的特点在于:1.强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点;2.明确突出了特征学习的重要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。深度神经网络技术在学习特征表现方面表现出极大的潜力,因此,研究人员已经开始将深度神经网络方法应用于推荐领域。然而,现有的基于DNN(深度神经网络)的推荐方法大多通过学习诸如文本内容之类的内容特征来提出建议,将重心放到学习内容特征上,忽略了最基本的用户和项目之间的交互信息。
发明内容
为了解决上述问题,本发明提供一种基于深度神经网络的电影推荐方法。该方法基于DNN的推荐模型,该模型不需要除了用户和项目之间的交互之外的任何额外信息。这些信息既方便收集又能通过特征处理进一步解决传统推荐算法中的冷启动和数据稀疏问题,大大提高了推荐的效果。
一种基于深度神经网络的电影推荐方法,包括以下步骤:
S1、获取数据集,进行用户特征选择和电影特征选择,得到用户特征和电影特征;其中,用户特征包括用户的基本数据和用户的评分数据,电影特征包括电影的基本数据和电影的评分数据;
S2、根据用户特征构建用户特征矩阵,根据电影特征构建电影特征矩阵;根据用户特征矩阵和电影特征矩阵构建用户-电影特征矩阵;
S3、初始化电影推荐模型,设置电影推荐模型的总层数L,以及各隐藏层与输出层的神经元个数,确定激活函数,损失函数,迭代步长α,最大迭代次数MAX与停止迭代阈值ε;
S4、将用户-电影特征矩阵输入电影推荐模型中,采用梯度下降法对模型进行训练,得到训练好的电影推荐模型;
S5、利用训练好的电影推荐模型预测评分并给用户推荐电影;进行预测时,使用用户特征矩阵与电影特征矩阵对网络做正向传播,计算得到预测评分,取评分最高的top_k个,向用户推荐具有较高预测分数的电影来为特定用户生成推荐列表。
在一种优选实施方式中,步骤S4中,将用户-电影特征矩阵输入电影推荐模型中,采用梯度下降法对模型进行训练,具体包括以下步骤:
S41、进行深度神经网络DNN正向传播过程,最终得到输出层L层的aL;
S42、根据DNN正向传播过程输出的结果确定损失函数;
S43、确定损失函数之后,用梯度下降法迭代求解每一层的线性关系系数矩阵W和偏倚向量b;
S44、判断线性关系系数矩阵W和偏倚向量b的变化值是否都小于停止迭代阈值ε,若是,则保存此次迭代过程中各层的参数,退出迭代循环,将各层参数带入电影推荐模型中更新权值参数,得到训练好的电影推荐模型;否则继续迭代直到损失函数达到最小化或者迭代次数达到最大迭代次数MAX。
在一种优选实施方式中,电影推荐模型的总体框架包含嵌入层、卷积层、池化层和全连接层(输出层),其中,所述嵌入层用于将输入向量转换为具有固定大小的向量;所述卷积层用于提取特征;所述池化层主要用于降维;所述全连接层用于降低电影推荐模型学习过程中的参数敏感度。
在一种优选实施方式中,步骤S42中,损失函数表达式如下:
其中,J(·)表示损失函数,W表示线性关系系数矩阵,b表示偏倚向量,x为输入向量,特征维度为n_in,y为真实值向量,特征维度为n_out,aL表示输出层L输出的向量,L代表输出层,||S||2为S的L2范数。
在一种优选实施方式中,步骤S43具体包括:
S431、通过损失函数计算输出层L的梯度δL,计算表达式如下:
S432、得到输出层L的梯度δL后,再采用DNN反向传播算法优化模型,计算深度神经网络DNN各隐藏层的梯度,各隐藏层的梯度计算表达式为:
其中,δl表示第l层的梯度,σ′(zl)表示激活函数σ(zl)的导数,diag(·)表示返回矩阵·的主对角线上的元素,zl表示第l层的未激活前线性输出z组成的向量,Wl+1表示第l+1层的线性系数矩阵,T表示转置,δl+1表示第l+1层的偏倚向量;
S433根据各隐藏层的梯度更新每一层的线性系数矩阵W和偏倚向量b,更新表达式如下:
其中,Wl表示第l层的线性系数矩阵,bl表示第l层的偏倚向量,l代表除输入层L外的层数,α为迭代步长,m为训练样本个数,δi,l代表第i个样本第l层的梯度,ai,l-1代表第i个样本第l-1层的输出向量。
本发明的有益效果:
1.本发明的推荐模型利用用户基本数据和项目基本数据构建训练模型的输入矩阵,选取了合适的特征使得本发明的电影推荐模型可以充分学习用户和项目的潜在特征,减小了模型预测值和真实值之间的差值,增强推荐结果的可靠性。
2.单个用户仅针对大量影片中的几个电影进行了评分,这导致用户-电影评级矩阵高度稀疏的问题,本发明方法将用户的平均评分信息和项目的平均评分作为推荐模型的输入特征训练模型,解决了推荐系统的冷启动问题同时缓解了数据的稀疏性问题。
附图说明
下面结合附图和具体实施方式对本发明做进一步详细的说明。
图1为本实施例提供的一种推荐模型总体框架图;
图2为本实施例提供的一种用户特征矩阵;
图3为本实施例提供的一种电影特征矩阵;
图4为本实施例提供的一种文本卷积神经网络示意图;
图5为本实施例提供的一种用户-电影特征矩阵。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供一种基于深度神经网络的电影推荐方法,该方法基于深度神经网络DNN的电影推荐模型,从用户和项目基本数据中充分挖掘潜在或深层的用户和项目特征,可以获得更好的推荐结果,缓解数据稀疏和冷启动问题,从而提高推荐算法的性能;相比现有的其他推荐方法,基于用户和项目的基本数据的神经网络推荐方法,数据更容易收集,且能有效地缓解数据稀疏性和冷启动问题,大大提高了推荐系统的效果。
电影推荐模型的构建:以深度神经网络DNN为框架,利用用户和电影的基本数据、用户和电影的评分数据构建电影推荐模型。电影推荐的模型采用DNN的模型,即输入层有n_in个神经元,输出层有n_out个神经元,并且含有若干神经元的隐藏层。基于DNN(深度神经网络)的电影推荐模型的总体框架如下图1所示,在一种优选实施方式中,电影推荐模型的总体框架包含:嵌入层、卷积层、池化层和全连接层,其中,各层的作用包括:
嵌入层(Embedding Layer,EL):数据降维,使用one-hot会导致稀疏矩阵过于庞大,浪费资源,这个时候通过嵌入层进行降维,将整数向量转换为具有固定大小的向量。
卷积层(Convolution Layer,CL):提取特征。“不全连接,参数共享”的特点大大降低了网络参数,保证了网络的稀疏性,防止过拟合。之所以可以“参数共享”,是因为样本存在局部相关的特性。
池化层(Pooling Layer,PL):所述池化层主要用于降维。池化层主要有MaxPooling和AveragePooling等。再本实施例中采用最大池化MaxPool,因为经过MaxPool可以减小卷积核的尺寸,同时又可以保留相应特征。
全连接层(Fully Connected Layer,FCL):在全连接的过程中丢失位置信息,可以理解为降低了学习过程中的参数敏感度;很多分类问题需要通过softmax层进行输出;进行非线性变换等等。
电影推荐模型的训练:模型的训练是通过基于训练数据最小化实际评分和预测评分之间的均方误差(MSE),从而确定每一层的权重矩阵和偏差项。使用经典的反向传播算法和随机梯度下降算法来进一步更新确定权重矩阵和偏差项。另外,采用了Dropout技术来防止算法过度拟合。具体地,模型的训练过程包括但不限于如下步骤:
S1、获取数据集,利用的数据集中的数据进行特征选择,数据特征的选择包括用户特征的选择和电影特征的选择。其中用户特征包括用户的基本数据和用户的评分数据,电影特征包括电影的基本数据和电影的评分数据。
(1)用户特征选择
用户基本数据:用户的基本数据包括用户的ID,性别,年龄,职业。用户相似的性别、年龄、职业可能存在相似的偏好;而用户ID的重要性在不同的网站中,其重要性是不同的,在有的网站中ID只是充当一个代号的作用,而在某些网站中,用户ID由用户自己根据自己的喜好来定义,某些网站中的用户ID可以由网站根据某些标记规则来分配。如果用户ID是由网站分配的,则ID中可能会嵌入一些特殊标记,它们可能代表不同的用户级别(即普通或会员),不同的年龄,不同的地区和不同性别等不同性别等。但毋庸置疑的是,在每个网站中用户的ID都是唯一的,具有标识性。所以我们在推荐模型中考虑以上易于收集的用户基本数据。
用户的评分数据:用户的评分数据我们使用用户对电影的平均评分,具体而言,首先通过计算单个用户提供的历史评分的平均值来测量每个用户的平均评分。用户平均评分可以反映用户在提供评分或评估时的行为特征,因此用户平均评分可以用于表示用户评分数据。
(2)电影特征选择
电影基本数据:电影的基本数据包括电影的ID,名称,类别。具有相似类别或名称的电影具有更高的相似度;电影ID对于影片是唯一的。与我们在用户ID中讨论的类似,不同网站中电影ID的定义方法可能有所不同。如果网站根据某些标记规则定义电影ID,则可以在电影ID中嵌入一些特殊标记。不同的电影ID可能代表具有不同类别,品牌和产地等。所以我们在推荐模型中考虑以上易于收集的电影基本数据。
电影评分数据:电影的评分数据我们使用电影的平均评分,具体而言,通过计算每个电影中用户的评分的平均值来得到每个电影的平均评分。电影的平均评分可以反映可以反映该影片的受欢迎程度。因此,选择电影平均评分来表示电影评分数据。
S2、利用第一步选择好的特征分别构建特征矩阵,得到用户特征矩阵和电影特征矩阵,其中,用户特征矩阵根据用户特征构建而成,电影特征矩阵根据电影特征构建而成。
具体地,根据步骤S1中选择的用户特征构建用户特征矩阵包括:令表示n个用户和m个电影的用户电影评分矩阵。构造用户特征的过程如图2所示。在图2中,DF和DS分别表示第一个FCL(Fully Connected Layer,全连接层)和第二个FCL的输出维度。从图2可以看出,利用用户特征选择的两个方面,即用户评分数据和用户基本数据,用于构建用户特征矩阵,其中用户基本数据包括四种类型数据,即用户性别,用户年龄,用户职业和用户ID。因此,使用五种类型的用户数据来构造用户特征矩阵。具体地,可以通过第一个FCL根据用户平均评分数据来构造用户平均评分矩阵。可以通过EL(Embedding Layer,嵌入层)和第一个FCL根据用户性别数据,用户年龄数据,用户职业数据和用户ID数据分别构建用户性别矩阵,用户年龄矩阵,用户职业矩阵和用户ID矩阵。然后,根据获得的五个矩阵,可以通过第二个FCL获得用户特征矩阵。
根据步骤S1中选择的电影特征构建电影特征矩阵的过程如图3所示,从图3可以看出,利用电影基本数据和电影评分数据构建电影特征矩阵,其中电影基本数据包括三种类型,即电影名称,电影类别和电影ID。因此,使用四种类型的电影数据来构造电影特征。具体来说,可以通过第一个FCL利用电影平均评分数据来构造电影平均评分矩阵。此外,电影类别数据和电影ID数据可以通过EL和第一FCL分别构电影类别矩阵和电影ID矩阵。电影名称的处理比较特殊,没有使用循环神经网络,而是用了文本卷积网络,如图4所示。文本卷积网络的第一层是EL层,由每一个单词的嵌入向量组成的嵌入矩阵。下一层CL(ConvolutionLayer,卷积层)使用多个不同尺寸(窗口大小)的卷积核在嵌入矩阵上做卷积,窗口大小指的是每次卷积覆盖几个单词。这里跟对图像做卷积不太一样,图像的卷积通常用2x2、3x3、5x5之类的尺寸,而文本卷积要覆盖整个单词的嵌入向量,所以尺寸是(单词数,向量维度),比如每次滑动3个,4个或者5个单词。第三层网络是PL(Pooling Layer,池化层),通过maxpooling得到一个长向量,最后使用dropout做正则化,最终得到电影名称矩阵。然后,根据获得的四个矩阵,可以通过第二个FCL获得电影特征矩阵。
然后根据用户特征矩阵和电影特征矩阵构建用于电影推荐模型输入的用户-电影特征矩阵。具体地,根据上述获得的用户特征矩阵和电影特征矩阵,利用FCL,可以构建用户-电影特征矩阵。图5所示为构建用户-电影特征矩阵的过程,其中DT表示第三个FCL的输出维度。在图5中,基于第三个FCL,将一个n×NS用户特征矩阵和一个m×NS电影特征矩阵转换为n×m×DT用户-电影特征矩阵,其中每个子立方体代表用户对于某个电影的特征。例如,图5中的阴影子立方体表示用户n与电影m有关的特征。
S3、初始化电影推荐模型:设置电影推荐模型的总层数L,以及各隐藏层与输出层的神经元个数,确定激活函数,损失函数,迭代步长α,最大迭代次数MAX与停止迭代阈值ε(阈值ε指线性系数矩阵W和偏倚向量b的变化量)。
S4、训练电影推荐模型。由于电影推荐模型采用基于DNN的模型,即使输入层有n_in个神经元,而输出层有n_out个神经元,再加上一些含有若干神经元的隐藏层。模型训练的目的是:找到合适的所有隐藏层和输出层对应的线性系数矩阵W,偏倚向量b,让所有的训练样本输入计算出的输出尽可能的等于或很接近样本输出。可以用一个合适的损失函数来度量训练样本的输出损失,接着对这个损失函数进行优化求最小化的极值,对应的一系列线性系数矩阵W,偏倚向量b即为最终结果。在DNN中,损失函数优化极值求解的过程最常见的一般是通过梯度下降法来一步步迭代完成的,对DNN的损失函数用梯度下降法进行迭代优化求极小值的过程即为反向传播算法。
在一种优选实施方式中,电影推荐模型的训练过程具体包括以下过程:
S41、DNN正向传播过程,得到输出结果。将用户-电影特征矩阵输入构建好的电影推荐模型中,DNN正向传播算法利用输入值向量x(即用户-电影特征矩阵)和初始化得到的若干个权重系数矩阵W、偏倚向量b进行一系列线性运算和激活运算,从输入层开始,一层层的向后计算,一直到运算到输出层,得到输出结果(输出结果即是输出层L层对应的aL)。每一层的输出结果的表达式如下:
al=σ(zl)=σ(Wlal-1+bl)
其中,l代表除输入层外的其余层数即所有隐藏层和输出层,l∈{2,……,L},zl第l层的的未激活前线性输出z组成的向量;W,b分别代表所有隐藏层和输出层对应的线性关系系数矩阵和偏倚向量,Wl表示第l层的线性关系系数矩阵,bl表示第l层的偏倚向量,al-1代表第l层的输入值向量,al代表第l层的输出值向量。
S42、正向传播完成后,得到输出层L层的aL,再根据DNN正向传播过程输出的结果确定损失函数。
在一种优选实施方式中,损失函数的确定包括:在进行DNN反向传播算法前需要选择一个损失函数,损失函数用来度量训练样本再正向传播过程计算出的输出(将用户特征和电影特征作为输入,经过各个隐藏层、全连接,最终输出的结果)和训练样本真实输出之间的损失。本实施例DNN可选择的损失函数包括MSE(均方误差),MAE(平均绝对误差),Huber损失函数,Log-Cosh损失函数,Quantile Loss(分位数损失),但为了专注算法,在一种优选实施方式中,使用均方误差来度量损失,即损失函数表达式如下:
其中,J(·)表示均方误差损失函数,W表示线性关系系数矩阵,b表示偏倚向量,x为输入向量,特征维度为n_in,y为真实值向量,特征维度为n_out,aL表示输出层输出的向量,L代表输出层,或者说L表示深度神经网络DNN的总层数,||S||2为S的L2范数。
S43、确定损失函数J(·)之后,用梯度下降法迭代求解每一层的线性关系系数矩阵W和偏倚向量b。具体求解过程如下:
S431、通过损失函数计算输出层的δL。
在一种优选实施方式中,通过损失函数J(·)计算输出层的δL,具体包括以下实施过程:
首先是输出层L。输出层L的线性关系系数矩阵WL和偏倚向量bL满足下式:
aL=σ(zL)=σ(WLaL-1+bL)
其中,aL表示输出层L的输出向量,σ(·)为激活函数,zL表示输出层L的未激活前线性输出z组成的向量,aL-1表示第L-1层的输出向量,即输出层L的输入向量。
于是,输出层L的损失函数变为:
损失函数分别对WL,bL求偏导,得到梯度如下:
σ′(zL)表示对激活函数σ(z)求导。注意上式中有一个符号⊙,它代表Hadamard积,对于两个维度相同的向量A(a1,a2…an)T和B(b1,b2…bn)T,则A⊙B(a1b1,a2b2…anbn)T。
S432、得到输出层L的梯度δL后,再采用DNN反向传播算法优化模型,计算各隐藏层的梯度δl,然后根据各隐藏层的梯度更新每一层的线性系数矩阵W和偏倚向量b。
得到输出层L的梯度后,计算上层梯度(输出层以上的层)时,需要一步步的递推,注意到对于第l层(l代表除输入层的层数)的未激活输出zl,第l层的梯度δl可以表示为:
其中,zl表示第l层的未激活前线性输出z组成的向量。
如果可以依次计算出第l层的梯度δl,则该层的Wl,bl。根据前向传播算法可以得到:
zl=Wlal+bl
其中,Wl,bl表示第l层的线性系数矩阵W,偏倚向量b。
所以根据上式可以很方便的计算出第l层的Wl,bl的梯度如下:
然后可以运用数学归纳法求出第l层的梯度δl,第L层的梯度δL上面已经求出,假设第l+1层的梯度δl+1已经求出来了,那么可以得出第l层的梯度δl。注意到:
zl+1=Wl+1al+bl=Wl+1σ(zl)+bl+1
其中,diag(X)表示返回矩阵X的主对角线上的元素。
其中,δl表示第l层的梯度,σ′(zl)表示激活函数σ(zl)的导数,diag(·)表示返回矩阵·的主对角线上的元素,zl表示第l层的未激活前线性输出z组成的向量,Wl+1表示第l+1层的线性系数矩阵,δl+1表示第l+1层的偏倚向量。
最终得到第l层的梯度δl的递推关系式,只要求出了某一层的δl后就可以很容易求解该层的线性关系系数矩阵Wl,偏倚向量bl,求解Wl,bl的对应关系式如下:
其中,l代表除输入层外的层数,α为迭代步长,m为训练样本个数,δi,l代表第i个样本第l层的梯度,ai,l-1代表第i个样本第l-1层的输出向量。
S44、判断W,b的变化值是否都小于停止迭代阈值∈,若是,则保存此次迭代过程中各层的参数,退出迭代循环,将各层参数带入电影推荐模型中更新权值参数,得到训练好的电影推荐模型以进行后续的评分预测;否则继续迭代直到损失函数达到最小化或者迭代次数达到最大迭代次数MAX。
完成上述模型的训练过程,得到训练好的电影推荐模型,利用训练好的电影推荐模型预测评分并给用户推荐电影。进行预测时,使用用户特征矩阵与电影特征矩阵对网络做正向传播,计算得到预测评分,取评分最高的top_k个,向用户推荐具有较高预测分数的电影来为特定用户生成推荐列表。
本实施例所述的一种基于深度神经网络的电影推荐方法,该方法所使用的数据更容易收集,从用户和项目的基本数据中提取特征并获得更好的推荐结果,可以减轻减轻稀疏性和冷启动问题,大大提高推荐系统的效果。在本推荐方法中,数据来源是MovieLens网站的数据,这些基本数据包括用户评分数据,用户基本(人口统计)数据,电影基本数据和电影评分数据,利用这些基本数据构建用户-电影特征矩阵,利用该矩阵预测用户的评分并给出推荐结果。
需要说明的是,本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-0nly Memory,ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
以上所述仅是本申请的具体实施方式,应当指出,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (5)
1.一种基于深度神经网络的电影推荐方法,其特征在于,包括以下步骤:
S1、获取数据集,进行用户特征选择和电影特征选择,得到用户特征和电影特征;其中,用户特征包括用户的基本数据和用户的评分数据,电影特征包括电影的基本数据和电影的评分数据;
S2、根据用户特征构建用户特征矩阵,根据电影特征构建电影特征矩阵;根据用户特征矩阵和电影特征矩阵构建用户-电影特征矩阵;
S3、初始化电影推荐模型,设置电影推荐模型的总层数L,以及各隐藏层与输出层的神经元个数,确定激活函数,损失函数,迭代步长α,最大迭代次数MAX与停止迭代阈值ε;
S4、将用户-电影特征矩阵输入电影推荐模型中,采用梯度下降法对模型进行训练,得到训练好的电影推荐模型;
S5、利用训练好的电影推荐模型预测评分并给用户推荐电影;进行预测时,使用用户特征矩阵与电影特征矩阵对网络做正向传播,计算得到预测评分,取评分最高的top_k个,向用户推荐具有较高预测分数的电影来为特定用户生成推荐列表。
2.根据权利要求1所述的一种基于深度神经网络的电影推荐方法,其特征在于,步骤S4中,将用户-电影特征矩阵输入电影推荐模型中,采用梯度下降法对模型进行训练,具体包括以下步骤:
S41、进行深度神经网络DNN正向传播过程,最终得到输出层L层的aL;
S42、根据DNN正向传播过程输出的结果确定损失函数;
S43、确定损失函数之后,用梯度下降法迭代求解每一层的线性关系系数矩阵W和偏倚向量b;
S44、判断线性关系系数矩阵W和偏倚向量b的变化值是否都小于停止迭代阈值ε,若是,则保存此次迭代过程中各层的参数,退出迭代循环,将各层参数带入电影推荐模型中更新权值参数,得到训练好的电影推荐模型;否则继续迭代直到损失函数达到最小化或者迭代次数达到最大迭代次数MAX。
3.根据权利要求1所述的一种基于深度神经网络的电影推荐方法,其特征在于,电影推荐模型的总体框架包含嵌入层、卷积层、池化层和全连接层(输出层),其中,所述嵌入层用于将输入向量转换为具有固定大小的向量;所述卷积层用于提取特征;所述池化层主要用于降维;所述全连接层用于降低电影推荐模型学习过程中的参数敏感度。
5.根据权利要求2所述的一种基于深度神经网络的电影推荐方法,其特征在于,步骤S43具体包括:
S431、通过损失函数计算输出层L的梯度δL,计算表达式如下:
S432、得到输出层L的梯度δL后,再采用DNN反向传播算法优化模型,计算深度神经网络DNN各隐藏层的梯度,各隐藏层的梯度计算表达式为:
其中,δl表示第l层的梯度,σ′(zl)表示激活函数σ(zl)的导数,diag(·)表示返回矩阵·的主对角线上的元素,zl表示第l层的未激活前线性输出z组成的向量,Wl+1表示第l+1层的线性系数矩阵,T表示转置,δl+1表示第l+1层的偏倚向量;
S433根据各隐藏层的梯度更新每一层的线性系数矩阵W和偏倚向量b,更新表达式如下:
其中,Wl表示第l层的线性系数矩阵,bl表示第l层的偏倚向量,l代表除输入层L外的层数,α为迭代步长,m为训练样本个数,δi,l代表第i个样本第l层的梯度,ai,l-1代表第i个样本第l-1层的输出向量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110134206.3A CN112800344B (zh) | 2021-01-29 | 2021-01-29 | 一种基于深度神经网络的电影推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110134206.3A CN112800344B (zh) | 2021-01-29 | 2021-01-29 | 一种基于深度神经网络的电影推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112800344A true CN112800344A (zh) | 2021-05-14 |
CN112800344B CN112800344B (zh) | 2022-03-22 |
Family
ID=75813236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110134206.3A Active CN112800344B (zh) | 2021-01-29 | 2021-01-29 | 一种基于深度神经网络的电影推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112800344B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641907A (zh) * | 2021-08-17 | 2021-11-12 | 中国科学院重庆绿色智能技术研究院 | 一种基于进化算法的超参数自适应深度推荐方法及装置 |
CN115034847A (zh) * | 2022-05-25 | 2022-09-09 | 山东大学 | 基于深度学习的产品推荐方法、系统、存储介质及设备 |
WO2023035940A1 (zh) * | 2021-09-10 | 2023-03-16 | 上海明品医学数据科技有限公司 | 一种目标对象推荐方法及系统 |
CN116401458A (zh) * | 2023-04-17 | 2023-07-07 | 南京工业大学 | 基于Lorenz混沌自适应的推荐方法 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150363688A1 (en) * | 2014-06-13 | 2015-12-17 | Microsoft Corporation | Modeling interestingness with deep neural networks |
CN107291845A (zh) * | 2017-06-02 | 2017-10-24 | 北京邮电大学 | 一种基于预告片的电影推荐方法及系统 |
CN108536856A (zh) * | 2018-04-17 | 2018-09-14 | 重庆邮电大学 | 基于双边网络结构的混合协同过滤电影推荐模型 |
CN108959603A (zh) * | 2018-07-13 | 2018-12-07 | 北京印刷学院 | 基于深度神经网络的个性化推荐系统及方法 |
CN109190030A (zh) * | 2018-08-22 | 2019-01-11 | 南京工业大学 | 融合node2vec和深度神经网络的隐式反馈推荐方法 |
CN109241440A (zh) * | 2018-09-29 | 2019-01-18 | 北京工业大学 | 一种基于深度学习的面向隐式反馈推荐方法 |
US10244286B1 (en) * | 2018-01-30 | 2019-03-26 | Fmr Llc | Recommending digital content objects in a network environment |
CN110032677A (zh) * | 2019-03-05 | 2019-07-19 | 四川大学 | 一种基于深度神经网络和概率矩阵分解的混合推荐算法 |
CN110348968A (zh) * | 2019-07-15 | 2019-10-18 | 辽宁工程技术大学 | 一种基于用户及项目耦合关系分析的推荐系统及方法 |
CN110598130A (zh) * | 2019-09-30 | 2019-12-20 | 重庆邮电大学 | 一种融合异构信息网络和深度学习的电影推荐方法 |
CN111061961A (zh) * | 2019-11-19 | 2020-04-24 | 江西财经大学 | 一种融合多特征的矩阵分解兴趣点推荐方法及其实现系统 |
CN111310063A (zh) * | 2020-02-03 | 2020-06-19 | 电子科技大学 | 基于神经网络的记忆感知门控因子分解机物品推荐方法 |
CN111523051A (zh) * | 2020-04-24 | 2020-08-11 | 山东师范大学 | 基于图卷积矩阵分解的社交兴趣推荐方法及系统 |
US20200288205A1 (en) * | 2019-05-27 | 2020-09-10 | Beijing Dajia Internet Information Technology Co., Ltd. | Method, apparatus, electronic device, and storage medium for recommending multimedia resource |
CN111832724A (zh) * | 2020-07-14 | 2020-10-27 | 西北工业大学 | 一种基于深度神经网络的异构网络推荐算法 |
US20200372524A1 (en) * | 2019-05-20 | 2020-11-26 | Sony Corporation | Prediction of film success-quotient |
CN112256965A (zh) * | 2020-10-23 | 2021-01-22 | 海南大学 | 一种基于lambdaMart的神经协同过滤模型推荐方法 |
-
2021
- 2021-01-29 CN CN202110134206.3A patent/CN112800344B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150363688A1 (en) * | 2014-06-13 | 2015-12-17 | Microsoft Corporation | Modeling interestingness with deep neural networks |
CN107291845A (zh) * | 2017-06-02 | 2017-10-24 | 北京邮电大学 | 一种基于预告片的电影推荐方法及系统 |
US10244286B1 (en) * | 2018-01-30 | 2019-03-26 | Fmr Llc | Recommending digital content objects in a network environment |
CN108536856A (zh) * | 2018-04-17 | 2018-09-14 | 重庆邮电大学 | 基于双边网络结构的混合协同过滤电影推荐模型 |
CN108959603A (zh) * | 2018-07-13 | 2018-12-07 | 北京印刷学院 | 基于深度神经网络的个性化推荐系统及方法 |
CN109190030A (zh) * | 2018-08-22 | 2019-01-11 | 南京工业大学 | 融合node2vec和深度神经网络的隐式反馈推荐方法 |
CN109241440A (zh) * | 2018-09-29 | 2019-01-18 | 北京工业大学 | 一种基于深度学习的面向隐式反馈推荐方法 |
CN110032677A (zh) * | 2019-03-05 | 2019-07-19 | 四川大学 | 一种基于深度神经网络和概率矩阵分解的混合推荐算法 |
US20200372524A1 (en) * | 2019-05-20 | 2020-11-26 | Sony Corporation | Prediction of film success-quotient |
US20200288205A1 (en) * | 2019-05-27 | 2020-09-10 | Beijing Dajia Internet Information Technology Co., Ltd. | Method, apparatus, electronic device, and storage medium for recommending multimedia resource |
CN110348968A (zh) * | 2019-07-15 | 2019-10-18 | 辽宁工程技术大学 | 一种基于用户及项目耦合关系分析的推荐系统及方法 |
CN110598130A (zh) * | 2019-09-30 | 2019-12-20 | 重庆邮电大学 | 一种融合异构信息网络和深度学习的电影推荐方法 |
CN111061961A (zh) * | 2019-11-19 | 2020-04-24 | 江西财经大学 | 一种融合多特征的矩阵分解兴趣点推荐方法及其实现系统 |
CN111310063A (zh) * | 2020-02-03 | 2020-06-19 | 电子科技大学 | 基于神经网络的记忆感知门控因子分解机物品推荐方法 |
CN111523051A (zh) * | 2020-04-24 | 2020-08-11 | 山东师范大学 | 基于图卷积矩阵分解的社交兴趣推荐方法及系统 |
CN111832724A (zh) * | 2020-07-14 | 2020-10-27 | 西北工业大学 | 一种基于深度神经网络的异构网络推荐算法 |
CN112256965A (zh) * | 2020-10-23 | 2021-01-22 | 海南大学 | 一种基于lambdaMart的神经协同过滤模型推荐方法 |
Non-Patent Citations (3)
Title |
---|
CHANG SU ET AL.: "POINT-OF-INTEREST RECOMMENDATION BASED ON GEOGRAPHICAL INFLUENCE AND EXTENDED PAIRWISE RANKING", 《IEEE INFOCOM 2020-IEEE CONFERENCE ON COMPUTER COMMUNICATIONS WORKSHOP(INFOCOM WKSHPS)》 * |
张杰等: "基于混合自编码器的协同过滤推荐算法优化", 《计算机系统应用》 * |
肖青秀等: "基于双层注意力机制的深度学习电影推荐系统", 《计算机与现代化》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641907A (zh) * | 2021-08-17 | 2021-11-12 | 中国科学院重庆绿色智能技术研究院 | 一种基于进化算法的超参数自适应深度推荐方法及装置 |
CN113641907B (zh) * | 2021-08-17 | 2023-11-28 | 中国科学院重庆绿色智能技术研究院 | 一种基于进化算法的超参数自适应深度推荐方法及装置 |
WO2023035940A1 (zh) * | 2021-09-10 | 2023-03-16 | 上海明品医学数据科技有限公司 | 一种目标对象推荐方法及系统 |
CN115034847A (zh) * | 2022-05-25 | 2022-09-09 | 山东大学 | 基于深度学习的产品推荐方法、系统、存储介质及设备 |
CN116401458A (zh) * | 2023-04-17 | 2023-07-07 | 南京工业大学 | 基于Lorenz混沌自适应的推荐方法 |
CN116401458B (zh) * | 2023-04-17 | 2024-01-09 | 南京工业大学 | 基于Lorenz混沌自适应的推荐方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112800344B (zh) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109299396B (zh) | 融合注意力模型的卷积神经网络协同过滤推荐方法及系统 | |
CN110807154B (zh) | 一种基于混合深度学习模型的推荐方法与系统 | |
CN112800344B (zh) | 一种基于深度神经网络的电影推荐方法 | |
CN109544306B (zh) | 一种基于用户行为序列特征的跨领域推荐方法及装置 | |
CN110717098B (zh) | 基于元路径的上下文感知用户建模方法、序列推荐方法 | |
CN110674850A (zh) | 一种基于注意力机制的图像描述生成方法 | |
CN110516160A (zh) | 基于知识图谱的用户建模方法、序列推荐方法 | |
CN111753044B (zh) | 一种基于正则化的去社会偏见的语言模型及应用 | |
CN111581510A (zh) | 分享内容处理方法、装置、计算机设备和存储介质 | |
CN109389151B (zh) | 一种基于半监督嵌入表示模型的知识图谱处理方法和装置 | |
CN112884551B (zh) | 一种基于近邻用户和评论信息的商品推荐方法 | |
CN112733027B (zh) | 一种基于局部和全局表示模型联合学习的混合推荐方法 | |
TW201822098A (zh) | 用於預測商品的市場需求的計算機裝置與方法 | |
CN112328900A (zh) | 一种融合评分矩阵和评论文本的深度学习推荐方法 | |
CN111737578A (zh) | 一种推荐方法及系统 | |
Wang et al. | Trust-aware collaborative filtering with a denoising autoencoder | |
CN111178986B (zh) | 用户-商品偏好的预测方法及系统 | |
CN112069399A (zh) | 一种基于交互匹配的个性化搜索系统 | |
CN113516094B (zh) | 一种用于为文档匹配评议专家的系统以及方法 | |
CN117216281A (zh) | 一种基于知识图谱的用户兴趣扩散推荐方法及系统 | |
Karantaidis et al. | Adaptive hypergraph learning with multi-stage optimizations for image and tag recommendation | |
CN111079011A (zh) | 一种基于深度学习的信息推荐方法 | |
CN116821519A (zh) | 一种基于图结构的系统过滤和降噪的智能推荐方法 | |
CN115935067A (zh) | 面向社会化推荐的语义与结构视图融合的物品推荐方法 | |
CN117688390A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230512 Address after: Room 801, 85 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province Patentee after: Yami Technology (Guangzhou) Co.,Ltd. Address before: 400065 Chongwen Road, Nanshan Street, Nanan District, Chongqing Patentee before: CHONGQING University OF POSTS AND TELECOMMUNICATIONS |