一种融合深度矩阵分解和多特征交叉的内容资源推荐方法、装置及介质
文献发布时间:2023-06-19 18:29:06
技术领域
本发明涉及信息交互领域,具体涉及一种融合深度矩阵分解和多特征交叉的内容资源推荐方法、装置及介质。
背景技术
伴随信息技术的发展和应用,我国进入互联网和大数据时代,互联网娱乐产业也随之高速发展,深刻改变了人们的日常生活。影视、音乐、图书等内容资源作为现代娱乐的重要组成元素,近年来,相关产业发展迅猛,行业兴旺繁荣,但是随着时间的推移,各类资源层出不穷,数量繁多,导致人们难以从这些海量的资源中做出选择,快速找到自己感兴趣的内容。比如在电影领域,自互联网被广泛应用之后,电影作品的传播成本降低,电影进入越来越多人的生活,各类电影作品被源源不断地创作出来,与电影相关的产业也因此产生了巨大的社会、经济价值,但是与此同时,由于人们不可能知道所有已发行的电影,更不可能花费巨量的时间和精力在海量的电影资源中独立寻找自己感兴趣的电影,导致了人们在挑选电影时往往会感到为难。因此,如何让人们在面对内容资源信息过载的问题时,仍然能够快速、精准地找到心仪的内容成为了推荐系统领域的研究热点。
在推荐系统中,协同过滤算法是应用最广泛、影响最深远的算法,它分为基于用户的协同过滤和基于物品的协同过滤,原理是通过计算用户或物品的相似度做推荐。基于用户的协同过滤计算与目标用户相似度高的其他用户,然后给目标用户推荐这些用户喜欢的,但是目标用户没有接触过的物品。基于物品的协同过滤计算与目标用户喜欢的物品相似度高的物品,然后将这些物品推荐给目标用户。
由于传统的协同过滤算法存在无法很好地处理稀疏矩阵的问题,所以学者和专家在其之后提出了基于协同过滤的矩阵分解算法。矩阵分解算法为用户和物品生成隐向量表示,然后将这些隐向量表示映射到同一个隐藏空间中,并在这个空间中建模用户和物品之间的关系。
近年来,随着深度学习技术的发展,其能够拟合任意函数的能力受到广泛关注,它被广泛应用在计算机视觉和自然语言处理领域,并取得了很好的效果。在推荐系统上,业界也提出了将深度学习应用在矩阵分解上的推荐模型——神经协同过滤模型(NeuralCollaborative Filtering,简称NCF)。NCF使用多层非线性网络处理用户和物品的交互矩阵,通过引入的多层非线性变换捕捉用户和物品间的非线性关系,从而提高矩阵分解算法的推荐效果。
矩阵分解算法和神经协同过滤模型也存在缺陷:
1)矩阵分解算法的缺陷
1.1)矩阵分解算法只关注显式评分,也就是用户明确对物品的打分,但是在实际中,用户其实只与少数物品交互过,与其它占大部分的物品没有交互过,而这些没有交互的隐式反馈信息也很重要。
1.2)矩阵分解算法实质上是使用用户隐向量和物品隐向量的内积来描述用户和物品之间的关系,而内积是线性的,不能充分描述它们之间的复杂关系。
1.3)矩阵分解算法只考虑了用户和物品间的交互信息(评分矩阵),没有考虑用户和物品的属性信息,但是在推荐系统中,用户和物品的属性信息十分重要。
2)神经协同过滤模型的缺陷
2.1)神经协同过滤模型只关注隐式反馈,忽略了非常有用的显式评分,而在推荐系统中,将一个高评分和低评分同等看待显然是不合理的,评分的高低可以看出用户对物品的喜好程度。
2.2)与矩阵分解算法相同,神经协同过滤模型只考虑了用户物品间的交互信息,没有用到用户和物品的属性信息。
发明内容
本发明的目的是提供一种融合深度矩阵分解和多特征交叉的内容资源推荐方法,包括以下步骤:
1)获取若干用户对若干物品的显式评分,并构建交互矩阵Y
2)构建交互矩阵深度分解模块,将交互矩阵Y
3)根据用户属性和物品属性建立独热向量y和数值型特征向量X
4)构建多特征交叉模块,将独热向量y和数值型特征向量X
5)构建点击率预测模块,将映射结果DNN和组合结果Cross输入到点击率预测模块中进行点击行为概率预测,获得内容资源推荐方案。
进一步,所述交互矩阵Y
式中,R
进一步,所述交互矩阵深度分解模块包括深度神经网络Ip
所述深度神经网络均包括输入层、N-1层隐藏层和输出层。
进一步,所述获得映射结果DNN的方法,包括以下步骤:
1)根据交互矩阵Y
Y
Y
Y
2)将高维向量Y
3)计算第一层隐藏层l
l
式中,W
4)计算第i层隐藏层l
l
式中,W
f(x)=max(0,x) (6)。
5)根据隐藏层l
h
6)根据公式(4)-(7),计算得到深度神经网络Ip
式中,W
7)所述映射结果DNN为深度神经网络Ip
进一步,设定用户i具有E个属性,包括用户的年龄、性别和职业,用U
所述独热向量包括值不唯一的属性的可能值。
独热向量y记为:y=(0,1,0,0,0,1,0,1,0,…,0)
所述数值型特征向量包括值唯一的属性的值。
数值型特征向量X
X
式中,q表示向量的维度。
进一步,所述多特征交叉模块包括嵌入层和交互层。
所述独热向量y和数值型特征向量X
所述交互层进行向量乘积的计算公式如下所示:
式中,X
进一步,所述嵌入层处理包括以下步骤:
1)使用嵌入层对独热向量y的维度进行处理,使得独热向量y的维度与数值型特征向量X
Em
式中,category∈feature,W
2)根据嵌入层处理求得的结果,得到特征向量X
X
式中,X
进一步,所述点击率预测模块进行点击行为概率预测使用的是sigmoid函数,预测结果prediction的计算公式如下所示:
prediction=sigmoid(W
式中,W
一种融合深度矩阵分解和多特征交叉的内容资源推荐装置,包括输入获取模块、交互矩阵深度分解模块、多特征交叉模块和点击率预测模块。
所述输入获取模块用来获取若干用户对若干物品的显式评分和用户与物品的属性。
所述交互矩阵深度分解模块用来获得映射结果DNN。
所述多特征交叉模块用来获得组合结果Cross。
所述点击率预测模块用来获得内容资源推荐方案。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的方法的步骤。
本发明的技术效果是毋庸置疑的,本发明提供一种融合深度矩阵分解多特征交叉的内容资源推荐方法。本发明同时利用用户、内容资源的属性信息和用户的交互数据做推荐,分为交互矩阵深度分解模块和多特征交叉模块,分别对应交互数据的处理和用户、内容资源属性信息的处理,本发明结合这两个模块的运算结果做点击率预测,从而为用户推荐内容资源。较之于传统推荐方法,本发明的创新点与关键技术点如下:
1)本发明的交互矩阵深度分解模块构造了一个同时包含显式评分和隐式反馈的交互矩阵,使用两个深度神经网络分别学习交互矩阵中的用户评分和物品得分。通过深度神经网络变换用户评分和物品得分的隐藏表示,并将它们映射到同一个深层结构化语义空间。
2)本发明的多特征交叉模块将用户、物品的属性信息转化为特征向量,并通过两两交叉乘积的方式进行充分融合。
3)本发明结合交互矩阵深度分解模块和多特征交叉模块的计算结果,使用sigmoid函数进行点击率预测,为用户做推荐。
4)与传统的单向利用交互数据或者用户、物品的属性信息做推荐的方法不同,本发明同时利用用户、物品的属性信息和交互数据做推荐,考虑全面,提升了推荐效果。
附图说明
图1是本方法的总体结构图;
图2是本方法中的交互矩阵深度分解模块结构图;
图3是本方法中的多特征交叉模块结构图。
具体实施方式
下面结合实施例对本发明作进一步说明,但不应该理解为本发明上述主题范围仅限于下述实施例。在不脱离本发明上述技术思想的情况下,根据本领域普通技术知识和惯用手段,做出各种替换和变更,均应包括在本发明的保护范围内。
实施例1:
参见图1至图3,一种融合深度矩阵分解和多特征交叉的内容资源推荐方法,包括以下步骤:
1)获取若干用户对若干物品的显式评分,并构建交互矩阵Y
2)构建交互矩阵深度分解模块,将交互矩阵Y
3)根据用户属性和物品属性建立独热向量y和数值型特征向量X
4)构建多特征交叉模块,将独热向量y和数值型特征向量X
5)构建点击率预测模块,将映射结果DNN和组合结果Cross输入到点击率预测模块中进行点击行为概率预测,获得内容资源推荐方案。
所述交互矩阵Y
式中,R
所述交互矩阵深度分解模块包括深度神经网络Ip
所述深度神经网络均包括输入层、N-1层隐藏层和输出层。
构建好交互矩阵Y之后,使用深度神经网络(DNN)进行学习。
所述获得映射结果DNN的方法,包括以下步骤:
1)根据交互矩阵Y
Y
Y
Y
2)将高维向量Y
3)计算第一层隐藏层l
l
式中,W
4)计算第i层隐藏层l
l
式中,W
f(x)=max(0,x) (6)。
5)根据隐藏层l
h
6)根据公式(4)-(7),计算深度神经网络Ip
式中,W
7)所述映射结果DNN为深度神经网络Ip
设定用户i具有E个属性,包括用户的年龄、性别和职业,用U
所述独热向量包括值不唯一的属性的可能值。
独热向量y记为:y=(0,1,0,0,0,1,0,1,0,…,0)
所述数值型特征向量包括值唯一的属性的值。
数值型特征向量X
X
式中,q表示向量的维度。
所述多特征交叉模块包括嵌入层和交互层。
所述独热向量y和数值型特征向量X
所述交互层进行向量乘积的计算公式如下所示:
式中,X
所述嵌入层处理包括以下步骤:
1)使用嵌入层对独热向量y的维度进行处理,使得独热向量y的维度与数值型特征向量X
Em
式中,category∈feature,W
2)根据嵌入层处理求得的结果,得到特征向量X
X
式中,X
所述点击率预测模块进行点击行为概率预测使用的是sigmoid函数,预测结果prediction的计算公式如下所示:
prediction=sigmoid(W
式中,W
一种融合深度矩阵分解和多特征交叉的内容资源推荐装置,包括输入获取模块、交互矩阵深度分解模块、多特征交叉模块和点击率预测模块。
所述输入获取模块用来获取若干用户对若干物品的显式评分和用户与物品的属性。
所述交互矩阵深度分解模块用来获得映射结果DNN。
所述多特征交叉模块用来获得组合结果Cross。
所述点击率预测模块用来获得内容资源推荐方案。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的方法的步骤。
实施例2:
参见图1至图3,一种融合深度矩阵分解和多特征交叉的内容资源推荐方法,包括以下步骤:
1)获取若干用户对若干物品的显式评分,并构建交互矩阵Y
2)构建交互矩阵深度分解模块,将交互矩阵Y
3)根据用户属性和物品属性建立独热向量y和数值型特征向量X
4)构建多特征交叉模块,将独热向量y和数值型特征向量X
5)构建点击率预测模块,将映射结果DNN和组合结果Cross输入到点击率预测模块中进行点击行为概率预测,获得内容资源推荐方案。
实施例3:
一种融合深度矩阵分解和多特征交叉的内容资源推荐方法,主要步骤见实施例2,所述交互矩阵Y
式中,R
实施例4:
一种融合深度矩阵分解和多特征交叉的内容资源推荐方法,主要步骤见实施例2,所述交互矩阵深度分解模块包括深度神经网络Ip
所述深度神经网络均包括输入层、N-1层隐藏层和输出层。
实施例5:
一种融合深度矩阵分解和多特征交叉的内容资源推荐方法,主要步骤见实施例2,构建好交互矩阵Y之后,使用深度神经网络(DNN)进行学习。
所述获得映射结果DNN的方法,包括以下步骤:
1)根据交互矩阵Y
Y
Y
Y
2)将高维向量Y
3)计算第一层隐藏层l
l
式中,W
4)计算第i层隐藏层l
l
式中,W
f(x)=max(0,x) (6)。
5)根据隐藏层l
h
6)根据公式(4)-(7),计算深度神经网络Ip
式中,W
7)所述映射结果DNN为深度神经网络Ip
实施例6:
一种融合深度矩阵分解和多特征交叉的内容资源推荐方法,主要步骤见实施例2,设定用户i具有E个属性,包括用户的年龄、性别和职业,用U
所述独热向量包括值不唯一的属性的可能值。
独热向量y记为:y=(0,1,0,0,0,1,0,1,0,…,0)
所述数值型特征向量包括值唯一的属性的值。
数值型特征向量X
X
式中,q表示向量的维度。
实施例7:
一种融合深度矩阵分解和多特征交叉的内容资源推荐方法,主要步骤见实施例2,所述多特征交叉模块包括嵌入层和交互层。
所述独热向量y和数值型特征向量X
所述交互层进行向量乘积的计算公式如下所示:
式中,X
实施例8:
一种融合深度矩阵分解和多特征交叉的内容资源推荐方法,主要步骤见实施例7,所述嵌入层处理包括以下步骤:
1)使用嵌入层对独热向量y的维度进行处理,使得独热向量y的维度与数值型特征向量X
Em
式中,category∈feature,W
2)根据嵌入层处理求得的结果,得到特征向量X
X
式中,X
实施例9:
一种融合深度矩阵分解和多特征交叉的内容资源推荐方法,主要步骤见实施例2,所述点击率预测模块进行点击行为概率预测使用的是sigmoid函数,预测结果prediction的计算公式如下所示:
prediction=sigmoid(W
式中,W
实施例10:
一种融合深度矩阵分解和多特征交叉的内容资源推荐装置,包括输入获取模块、交互矩阵深度分解模块、多特征交叉模块和点击率预测模块。
所述输入获取模块用来获取若干用户对若干物品的显式评分和用户与物品的属性。
所述交互矩阵深度分解模块用来获得映射结果DNN。
所述多特征交叉模块用来获得组合结果Cross。
所述点击率预测模块用来获得内容资源推荐方案。
实施例11:
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的方法的步骤。
实施例12:
参见图1至图3,本发明的目的是提供一种融合深度矩阵分解和多特征交叉的内容资源推荐方法,包括交互矩阵深度分解模块、多特征交叉模块和点击率预测模块。
1)交互矩阵深度分解模块
对于交互矩阵深度分解模块,首先要构建一个交互矩阵Y作为输入:
其中,R
构建好交互矩阵Y之后,使用深度神经网络(DNN)进行学习。对于交互矩阵Y,将每一个用户u
Y
对于深度神经网络中的每一层,实际上是把上一层的输出作为输入映射到本层空间,然后在本层经过运算后作为输出映射到下一层空间。将输入定义为l,中间的隐藏层定义为l
l
l
h
对于隐藏层的激活函数,使用ReLU函数(线性整流函数):
f(x)=max(0,x)
由模块的结构图可以看出,本模块实质上是用两个深度神经网络分别将用户u
其中,W
最后对p
2)多特征交叉模块
①嵌入层
假设用户U有E个属性,比如用户的年龄、性别、职业等,用U
对于值唯一的属性,比如用户的年龄、性别和职业、发行日期等,我们将其初始化为一个可训练的数值型特征向量:
X
其中,q表示向量的维度。
对于值不唯一的属性,比如作品的类别(category),由于它的值可能有多个,我们将其表示为独热(one-hot)向量:
y=(0,1,0,0,0,1,0,1,0,…,0)
为了使该向量的维度与值唯一的属性的特征向量的维度相同,我们使用网络进行处理:
Em
其中,category∈feature,W
Em
X
经过嵌入层的处理后,所有用户和物品的属性均表示为了相同维度的特征向量,将这些特征向量输入交互层。
②交互层
在交互层中,将不同的特征向量进行两两交叉,即对它们进行向量乘积,以达到充分实现特征组合和融合的效果:
其中,X
3)点击率预测模块
使用sigmoid函数结合交互矩阵深度分解模块和多特征交叉模块的计算结果进行点击行为概率预测:
prediction=sigmoid(W