CN112084415A - 一种基于用户和项目长短期时间耦合关系分析的推荐方法 - Google Patents
一种基于用户和项目长短期时间耦合关系分析的推荐方法 Download PDFInfo
- Publication number
- CN112084415A CN112084415A CN202010982167.8A CN202010982167A CN112084415A CN 112084415 A CN112084415 A CN 112084415A CN 202010982167 A CN202010982167 A CN 202010982167A CN 112084415 A CN112084415 A CN 112084415A
- Authority
- CN
- China
- Prior art keywords
- user
- project
- long
- vector
- dynamic
- 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
- 238000010168 coupling process Methods 0.000 title claims abstract description 100
- 230000008878 coupling Effects 0.000 title claims abstract description 96
- 238000005859 coupling reaction Methods 0.000 title claims abstract description 96
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000007774 longterm Effects 0.000 title claims abstract description 30
- 239000013598 vector Substances 0.000 claims description 93
- 230000006870 function Effects 0.000 claims description 19
- 238000012549 training Methods 0.000 claims description 19
- 238000011156 evaluation Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 14
- 238000012360 testing method Methods 0.000 claims description 10
- 230000003993 interaction Effects 0.000 claims description 9
- 238000005457 optimization Methods 0.000 claims description 7
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 5
- 238000004140 cleaning Methods 0.000 claims description 5
- 230000004927 fusion Effects 0.000 claims description 5
- 230000003213 activating effect Effects 0.000 claims description 3
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 2
- 238000001914 filtration Methods 0.000 abstract description 7
- 230000000694 effects Effects 0.000 abstract description 2
- 230000004913 activation Effects 0.000 description 11
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/9535—Search customisation based on user profiles and personalisation
-
- 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
- G06N3/045—Combinations of networks
-
- 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
- G06N3/048—Activation functions
-
- 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
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Databases & Information Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于用户和项目长短期时间耦合关系分析的推荐方法,包括数据采集和处理、划分数据集、构建耦合模型、训练模型和项目推荐。本发明运用了LSTM算法学习了用户及项目在长短期时间内的动态特征信息,使推荐系统具有更好的推荐效果和可解释性,从非独立同分布的角度探究用户/项目之间的耦合关系,并考虑到了其中长短期动态耦合,利用MLP多层感知器捕获了用户/项目之间的动态耦合关系,提高了推荐的质量和准确度;将非独立同分布及将长短期时间因素作为动态特征结合到了协同过滤中,可以较好的解决数据稀疏性和冷启动问题。
Description
技术领域
本发明属于计算机人工智能的技术领域,尤其涉及一种基于用户和项目长短期时间耦合关系分析的推荐方法。
背景技术
随着个性化服务的快速发展,随着用户兴趣的不断发展,推荐系统的推荐准确性也越来越高。然而,大多数传统的顺序推荐方法都隐含地假设用户和项是独立且同分布的(IID)。具体来说,他们忽略了用户和项之间的复杂耦合性及异构性,而考虑到非独立同分布(Non-IID)的推荐系统几乎没有考虑到用户特征及项目特征的动态耦合性,实际上用户的评分喜好都会随着时间有长短期的变化,项目对于大众的受欢迎情况也会随着长短期时间而变化,例如,同一用户的长期偏好与近期的喜好可能是相关的,这种动态的耦合关系可以更好的解释用户对项目的动态偏好,从而为用户提供更准确的推荐。
发明内容
基于以上现有技术的不足,本发明所解决的技术问题在于提供一种基于用户和项目长短期时间耦合关系分析的推荐方法,具有良好的推荐准确度和可解释性。
为了解决上述技术问题,本发明通过以下技术方案来实现:本发明提供一种基于用户和项目长短期时间耦合关系分析的推荐方法,包括:
S1、数据采集和处理:在Grouplens网站下载MovieLens 100K和MovieLens 1M数据集,清理脏数据;
S2、划分数据集:将处理好的数据集按8:1:1的比例划分为训练集、测试集和验证集;
S3、构建耦合模型:用长短期记忆神经网络学习用户的动态偏好及项目的动态受欢迎情况,用多层感知器分别学习用户特征耦合关系与项目特征耦合关系,并将两者融合进行推荐;
S4、训练模型和项目推荐:步骤S2中所得到的训练数据集和测试数据集分别用于训练和评估步骤S3构建的耦合模型,考虑用户/项目长短期的动态偏好以及相应用户/项目特征信息之间的耦合关系,根据用户对项目的预测评分判断是否将项目推荐给用户。
所述步骤S1的数据采集和处理的具体步骤如下:
S101、Grouplens网站下载MovieLens 100K和MovieLens 1M数据集,做数据预处理,并清理脏数据;
S102、提取数据集中用户/项目在长期和短期内的评价信息及基本特征信息,将其转化为向量。
进一步的,所述步骤S3中构建耦合模型的具体步骤如下:
S301、构建输入层:输入层包括4个输入内容,用户项目ID、用户长短期评价信息、项目ID及项目长短期评价信息;
S302、构建用户动态预测模型、项目动态预测模型以及基于用户和项目长短期时间耦合性方法;即构建基于用户项目长短期时间耦合关系学习框架;
S303、构建输出层:预测用户对项目的评分。
进一步的,所述步骤S302中构建用户动态预测模型、项目动态预测模型以及基于用户及项目的长短期时间耦合关系方法的具体步骤如下:
S302-1、构建用户动态预测模型:通过输入用户ID及用户长短期评分信息,将用户ID Embedding转化为指定维度的向量,代表用户人口统计学的基本特征,将用户在长短期内的评分信息Embedding转化为指定维度,用以连接长短期时间记忆网络(LSTM),学习用户的动态偏好,将用户基本特征向量与用户动态偏好向量进行拼接,传入多层感知器,学习用户动态偏好的耦合关系;
S302-2、构建项目动态预测模型:通过输入项目ID及项目的长短期评分信息,将项目ID Embedding转化为指定维度的向量,代表项目的基本特征,将项目在长短期内的被评分信息Embedding转化为指定维度,用以连接长短期时间记忆网络(LSTM),学习项目的动态受欢迎程度,将项目的基本特征信息与项目的动态向量进行拼接,传入多层感知器,学习项目动态受欢迎情况的耦合关系;
S302-3、构建基于用户和项目长短期时间耦合性方法,用户动态预测模型的输出与项目动态预测模型的输出合并为一个串联的向量,然后由一个全连接层进行处理,输出最终的向量。该方法的最终输出由一个Sigmoid函数激活,从而压缩到范围[0,1]。
进一步的,所述步骤S302-1构建用户动态预测模型的具体步骤如下:
S302-1-1、每个用户的基本特征信息转化为向量并进行Embedding,输出用户的基本特征信息向量;用户在长短期内的评价信息转化为向量,并对其进行Embedding,将此向量作为LSTM的输入;
S302-1-2、LSTM算法学习出用户在长短期时间的动态特征,输出用户的动态特征向量,再将用户的动态特征向量与用户的基本特征信息向量进行Concatenation操作,将结果向量作为MLP的输入;
S302-1-3、MLP多层感知器学习出用户动态特征的耦合关系,并将输入向量转化为用户动态耦合关系向量,作为后续全连接层的输入。
进一步的,所述步骤S302-2构建用户动态预测模型的具体步骤如下:
S302-2-1、每个项目的基本特征信息转化为向量并进行Embedding,输出项目的基本特征信息向量;项目在长短期内的评价信息转化为向量,并对其进行Embedding,将此向量作为LSTM的输入;
S302-2-2、LSTM算法学习出项目在长短期时间内动态的受欢迎的情况,输出项目的动态特征向量,再将项目的动态特征向量与项目的基本特征信息向量进行Concatenation操作,将结果向量作为MLP的输入;
S302-2-3、MLP多层感知器学习出项目动态特征的耦合关系,并将输入向量转化为项目动态耦合关系向量,作为后续全连接层的输入。
进一步的,所述步骤S302-3中训练模型和项目推荐的具体步骤如下:
S302-3-1、将用户动态预测模型和项目动态预测模型的输出向量用融合层进行融合,输出的向量作为全连接层的输入;
S302-3-2、通过全连接层学习用户项目交互关系,即用全连接层将用户项目关系转化为非线性交互;
S302-3-3、将上步产生的非线性关系用Sigmoid函数激活,从而压缩到范围[0,1]。
进一步的,所述步骤S4中训练模型和项目推荐的具体步骤如下:
S401、构建损失函数:使用平均绝对误差(MAE)损失函数计算模型的损失值,损失函数公式如下所示:
S402、构建优化函数:使用Adam作为模型的优化函数。
由上,本发明的基于用户和项目长短期时间耦合关系分析的推荐方法至少具有以下优点:
(1)、本发明考虑了用户的长短期动态耦合关系,项目的长短期动态耦合关系,用户动态特征与项目动态特征之间在长短期的耦合关系,当评分信息比较稀疏时这种耦合关系可以给用户推荐其在相应时间内的偏好项目,提高了推荐质量。
(2)、本发明运用了LSTM算法学习了用户及项目在长短期时间内的动态特征信息,使推荐系统具有更好的推荐效果和可解释性。
(3)、本发明从非独立同分布的角度探究用户/项目之间的耦合关系,并考虑到了其中长短期动态耦合,利用MLP多层感知器捕获了用户/项目之间的动态耦合关系,提高了推荐的质量和准确度。
(4)、本发明将非独立同分布及将长短期时间因素作为动态特征结合到了协同过滤中,可以较好的解决数据稀疏性和冷启动问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更简明易懂,以下结合优选实施例,并配合附图,详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍。
图1为本发明的基于用户和项目长短期时间耦合关系分析的推荐方法流程图;
图2为本发明的基于用户和项目长短期时间耦合关系分析的推荐模型的流程图;
图3为本发明的基于用户和项目长短期时间耦合关系学习框架的流程图;
图4为本发明的用户动态预测模型的流程图;
图5为本发明的基于用户和项目长短期时间耦合性方法的流程图;
图6为本发明的训练模型和项目推荐的流程图;
图7为本发明的基于用户和项目长短期时间耦合性的协同过滤推荐方法的结构框图。
具体实施方式
下面结合附图详细说明本发明的基于用户和项目长短期时间耦合性的协同过滤推荐方法的具体实施方式。
如图1和图7所示,本发明的基于用户和项目长短期时间耦合性的协同过滤推荐方法,该方法包括如下步骤:
S1、数据采集和处理:在Grouplens网站下载MovieLens 100K和MovieLens 1M数据集,清理脏数据。
用户的长短期动态数据包括"UserID","MovieID","L_Rating","S_Rating","Long_Time","Short_Time",如下所示:
UserID | MovieID | L_Rating | S_Rating | Long_Time | Short_Time |
1 | 1993 | 1 | 1 | 978300760 | 854300797 |
用户的人口统计学信息数据包括"UserID","Gender","Age","Occupation","Zip-code",如下所示:
UserID | Gender | Age | Occupation | Zip-code |
1 | F | 1 | 10 | 48067 |
项目的特征数据包括"MovieID","Title","Genres",如下所示:
MovieID | Title | Genres |
1 | Toy Story(1995) | Animation|Children's|Comedy |
项目的长短期动态数据包括"MovieID","UserID","L_Rating","S_Rating","Long_Time","Short_Time",如下所示:
MovieID | UserID | L_Rating | S_Rating | Long_Time | Short_Time |
1993 | 1 | 1 | 1 | 978300760 | 854300797 |
S2、划分数据集:将处理好的数据集按8:1:1的比例划分为训练集、测试集和验证集;
S3、构建耦合模型:用长短期记忆神经网络学习用户的动态偏好及项目的动态受欢迎情况,用多层感知器分别学习用户特征耦合关系与项目特征耦合关系,并将两者融合进行推荐;
S4、训练模型和项目推荐:步骤S2中所得到的训练数据集和测试数据集分别用于训练和评估步骤S3构建的耦合模型,考虑用户/项目长短期的动态偏好以及相应用户/项目特征信息之间的耦合关系,根据用户对项目的预测评分判断是否将项目推荐给用户。
如图2所示,步骤S3中构建基于用户和项目长短期时间耦合关系分析的推荐模型的具体步骤如下:
S301、构建输入层:输入层包括4个输入内容,用户项目ID、用户长短期评价信息、项目ID及项目长短期评价信息输入层的形式为(user_id_input,user_tim_input,item_id_input,item_tim_input,)。
在Keras中,输入层可用如下代码实现:
user_id_input=Input(shape=(1,),dtype='float32',name='user_id_input')
user_tim_input=Input(shape=(K,),dtype='float32',name='user_tim_input')
item_id_input=Input(shape=(1,),dtype='float32',name='item_id_input')
item_tim_input=Input(shape=(18,),dtype='float32',name='item_tim_input')
S302、构建用户动态预测模型、项目动态预测模型以及基于用户和项目长短期时间耦合性方法。即构建基于用户项目长短期时间耦合关系学习框架;
S303、构建输出层:预测用户对项目的评分。
在Keras中,输出层可用如下代码实现:
topLayer=Dense(1,activation='sigmoid',init='lecun_uniform',name='topLayer')(dense_1)
如图3所示,步骤S302中构建基于用户和项目长短期时间耦合关系学习框架的具体步骤如下所示:
S302-1、构建用户动态预测模型:通过输入用户ID及用户长短期评分信息,将用户ID Embedding转化为指定维度的向量UCF,代表用户人口统计学的基本特征,将用户在长短期内的评分信息Embedding转化为指定维度UCB,用以连接长短期时间记忆网络(LSTM),学习用户的动态偏好,将用户基本特征向量与用户动态偏好向量进行拼接得到向量U,传入多层感知器,学习用户动态偏好的耦合关系;
通过多层感知器(MLP)学习用户之间动态特征的耦合关系的实现代码如下所示:
predict_vec=keras.layers.Multiply()([vec,att])
predict_vec=Dense(16)(predict_vec)
predict_vec=BatchNormalization()(predict_vec)
predict_vec=Activation('relu')(predict_vec)
predict_vec=Dense(8)(predict_vec)
predict_vec=BatchNormalization()(predict_vec)
predict_vec=Activation('relu')(predict_vec);
S302-2、构建项目动态预测模型:通过输入项目ID及项目的长短期评分信息,将项目ID Embedding转化为指定维度的向量VCF,代表项目的基本特征,将项目在长短期内的被评分信息Embedding转化为指定维度VCB,用以连接长短期时间记忆网络(LSTM),学习项目的动态受欢迎程度,将项目的基本特征信息与项目的动态向量进行拼接得到向量V,传入多层感知器,学习项目动态受欢迎情况的耦合关系;
S302-3、构建基于用户和项目长短期时间耦合性方法,用户动态预测模型的输出U与项目动态预测模型的输出V合并为一个串联的向量(记为r),然后由一个全连接层进行处理,输出最终的向量。基于用户和项目长短期时间耦合性方法的最终输出由一个Sigmoid函数激活,从而压缩到范围[0,1]。
因此,基于用户和项目长短期时间耦合性方法的最终输出表达式为:
在Keras中,输出层实现代码如下所示:
merge_attr_id_embedding=merge([attr_2,id_2],mode='concat')
dense_1=Dense(256)(merge_attr_id_embedding)
dense_1=Activation('relu')(dense_1)
如图4所示,步骤S302-1及中构建用户动态预测模型的具体步骤如下:
S302-1-1、构建向量映射层:每个用户的基本特征信息转化为向量并进行Embedding,输出用户的基本特征信息向量;用户在长短期内的评价信息转化为向量,并对其进行Embedding,将此向量作为LSTM的输入。
实现代码如下所示:
user_vector_input=Input(shape=(20,),dtype='float32',name='user_vector_input')
user_vector_embedding=Embedding(input_dim=6041,output_dim=64,
name='user_vector_embedding',embeddings_initializer=RandomNormal(mean=0.0,stddev=0.01,seed=None),W_regularizer=l2(0),input_length=10)
user_vector_embedding=user_vector_embedding(user_vector_input)
user_vector_embedding=Lambda(lambda x:K.mean(x,axis=1))(user_vector_embedding)
item_attr_input=Input(shape=(18,),dtype='float32',name='item_attr_input')
item_attr_embedding=Dense(18,activation='relu',name='item_attr_embedding')(item_attr_input)
S302-1-2、LSTM算法学习出用户在长短期时间的动态特征,输出用户的动态特征向量,再将用户的动态特征向量与用户的基本特征信息向量进行Concatenation操作,将结果向量作为MLP的输入;
通过多层感知器(MLP)学习用户特征与项目特征之间的耦合关系的实现代码如下所示:
predict_vec=keras.layers.Multiply()([vec,att])
predict_vec=Dense(16)(predict_vec)
predict_vec=BatchNormalization()(predict_vec)
predict_vec=Activation('relu')(predict_vec)
predict_vec=Dense(8)(predict_vec)
predict_vec=BatchNormalization()(predict_vec)
predict_vec=Activation('relu')(predict_vec)
S302-1-3、MLP多层感知器学习出用户动态特征的耦合关系,并将输入向量转化为用户动态耦合关系向量,作为后续全连接层的输入;
如图5所示,步骤S302-3中基于用户和项目长短期时间耦合性方法的具体步骤如下:
S302-3-1、构建向量映射层:将用户动态预测模型和项目动态预测模型的输出向量U、V用融合层进行融合,输出的融合向量记为f,作为全连接层的输入;
融合向量f实现代码如下所示:
vec=keras.layers.Multiply()([user_latent,item_latent]);
S302-3-2、通过全连接层学习用户项目交互关系,即用全连接层将用户项目关系转化为非线性交互,表示为:
...
其中,W1,W2,...,WL和b1,b2,...,bL表示各层的权矩阵和偏置,a1,a2,...,aL表示由ReLU激活函数激活的每一层的输出;
在Keras中,构建深层潜在因素表示网络的用户项目交互转换为非线性交互的代码如下所示:
id_1=Dense(64)(merge_id_embedding)
id_1=Activation('relu')(id_1)
id_2=Dense(32)(id_1)
id_2=Activation('relu')(id_2);
S302-3-3、将上步产生的非线性关系用Sigmoid函数激活,从而压缩到范围[0,1],并将目标问题解释为概率:pΘ(y=1|u,v|),用作为预测输出:其中W0是最后一层的权重矩阵,aL是上一层的输出,b0是最后一层的偏重向量。
在Keras中,用户项目交互概率的代码如下所示:
topLayer=Dense(1,activation='sigmoid',init='lecun_uniform',name='topLayer')(id_2)
如图6所示,步骤S4的训练模型和项目推荐的具体步骤为:
S401、构建损失函数:使用平均绝对误差(MAE)损失函数计算模型的损失值,损失函数公式如下所示:
在Keras中,MAE实现代码如下所示:
model.compile(optimizer=Adam(lr=learning_rate),loss='mean_squared_error')
S402、构建优化函数:使用Adam作为模型的优化函数;其中,学习率参数设置为0.001,其他参数使用keras的默认值即可。
在Keras中,优化函数实现代码如下所示:
model.compile(optimizer=Adam(lr=learning_rate),loss='mean_squared_error')
本发明的基于用户和项目长短期时间耦合关系分析的推荐方法包括如下:S1、数据采集和处理;S2、划分数据集;S3、构建基于用户和项目长短期时间耦合关系学习框架:(1)用户动态预测模型;(2)项目动态预测模型;(3)基于用户和项目长短期时间耦合性方法。S4、训练耦合模型和项目推荐。
一个项目的受欢迎程度可能会随着时间段的不同而改变,用户的平均评分也可能会随着时间的推移而上升或下降,本发明既考虑用户/项目之间的关系,也考虑到用户/项目在长期和短期时间内动态偏好之间微观的耦合关系,起到辅助协同过滤推荐的作用,尤其是当评分信息比较稀疏时借助于这种耦合关系仍可以较好的给用户推荐其喜好的项目,提高了推荐的质量。本发明建立了基于用户/项目的长短期时间耦合模型,应用LSTM算法学习用户/项目的动态特征,并用多层感知器(MLP)来分析长短期时间之间内用户/项目的耦合关系,结合非独立同分布的协同过滤精确推荐结果。
最后应说明的是:以上所述是本发明的优选实施方式而已,当然不能以此来限定本发明之权利范围,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和变动,这些改进和变动也视为本发明的保护范围。
Claims (8)
1.一种基于用户和项目长短期时间耦合关系分析的推荐方法,其特征在于,包括:
S1、数据采集和处理:在Grouplens网站下载MovieLens 100K和MovieLens 1M数据集,清理脏数据;
S2、划分数据集:将处理好的数据集按8:1:1的比例划分为训练集、测试集和验证集;
S3、构建耦合模型:用长短期记忆神经网络学习用户的动态偏好及项目的动态受欢迎情况,用多层感知器分别学习用户特征耦合关系与项目特征耦合关系,并将两者融合进行推荐;
S4、训练模型和项目推荐:步骤S2中所得到的训练数据集和测试数据集分别用于训练和评估步骤S3构建的耦合模型,考虑用户/项目长短期的动态偏好以及相应用户/项目特征信息之间的耦合关系,根据用户对项目的预测评分判断是否将项目推荐给用户。
2.根据权利要求1所述的基于用户和项目长短期时间耦合关系分析的推荐方法,其特征在于,所述步骤S1的数据采集和处理的具体步骤如下:
S101、Grouplens网站下载MovieLens 100K和MovieLens 1M数据集,做数据预处理,并清理脏数据;
S102、提取数据集中用户/项目在长期和短期内的评价信息及基本特征信息,将其转化为向量。
3.根据权利要求1所述的基于用户和项目长短期时间耦合关系分析的推荐方法,其特征在于,所述步骤S3中构建耦合模型的具体步骤如下:
S301、构建输入层:输入层包括4个输入内容,用户项目ID、用户长短期评价信息、项目ID及项目长短期评价信息;
S302、构建用户动态预测模型、项目动态预测模型以及基于用户和项目长短期时间耦合性方法;即构建基于用户项目长短期时间耦合关系学习框架;
S303、构建输出层:预测用户对项目的评分。
4.根据权利要求3所述的基于用户和项目长短期时间耦合关系分析的推荐方法,其特征在于,所述步骤S302中构建用户动态预测模型、项目动态预测模型以及基于用户及项目的长短期时间耦合关系方法的具体步骤如下:
S302-1、构建用户动态预测模型:通过输入用户ID及用户长短期评分信息,将用户IDEmbedding转化为指定维度的向量,代表用户人口统计学的基本特征,将用户在长短期内的评分信息Embedding转化为指定维度,用以连接长短期时间记忆网络,学习用户的动态偏好,将用户基本特征向量与用户动态偏好向量进行拼接,传入多层感知器,学习用户动态偏好的耦合关系;
S302-2、构建项目动态预测模型:通过输入项目ID及项目的长短期评分信息,将项目IDEmbedding转化为指定维度的向量,代表项目的基本特征,将项目在长短期内的被评分信息Embedding转化为指定维度,用以连接长短期时间记忆网络,学习项目的动态受欢迎程度,将项目的基本特征信息与项目的动态向量进行拼接,传入多层感知器,学习项目动态受欢迎情况的耦合关系;
S302-3、构建基于用户和项目长短期时间耦合性方法,用户动态预测模型的输出与项目动态预测模型的输出合并为一个串联的向量,然后由一个全连接层进行处理,输出最终的向量。
5.根据权利要求4所述的基于用户和项目长短期时间耦合关系分析的推荐方法,其特征在于,所述步骤S302-1构建用户动态预测模型的具体步骤如下:
S302-1-1、每个用户的基本特征信息转化为向量并进行Embedding,输出用户的基本特征信息向量;用户在长短期内的评价信息转化为向量,并对其进行Embedding,将此向量作为LSTM的输入;
S302-1-2、LSTM算法学习出用户在长短期时间的动态特征,输出用户的动态特征向量,再将用户的动态特征向量与用户的基本特征信息向量进行Concatenation操作,将结果向量作为MLP的输入;
S302-1-3、MLP多层感知器学习出用户动态特征的耦合关系,并将输入向量转化为用户动态耦合关系向量,作为后续全连接层的输入。
6.根据权利要求4所述的基于用户和项目长短期时间耦合关系分析的推荐方法,其特征在于,所述步骤S302-2构建项目动态预测模型的具体步骤如下:
S302-2-1、每个项目的基本特征信息转化为向量并进行Embedding,输出项目的基本特征信息向量;项目在长短期内的评价信息转化为向量,并对其进行Embedding,将此向量作为LSTM的输入;
S302-2-2、LSTM算法学习出项目在长短期时间内动态的受欢迎的情况,输出项目的动态特征向量,再将项目的动态特征向量与项目的基本特征信息向量进行Concatenation操作,将结果向量作为MLP的输入;
S302-2-3、MLP多层感知器学习出项目动态特征的耦合关系,并将输入向量转化为项目动态耦合关系向量,作为后续全连接层的输入。
7.根据权利要求3所述的基于用户和项目长短期时间耦合关系分析的推荐方法,其特征在于,所述步骤S302-3中训练模型和项目推荐的具体步骤如下:
S302-3-1、将用户动态预测模型和项目动态预测模型的输出向量用融合层进行融合,输出的向量作为全连接层的输入;
S302-3-2、通过全连接层学习用户项目交互关系,即用全连接层将用户项目关系转化为非线性交互;
S302-3-3、将上步产生的非线性关系用Sigmoid函数激活,从而压缩到范围[0,1]。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010982167.8A CN112084415B (zh) | 2020-09-17 | 2020-09-17 | 一种基于用户和项目长短期时间耦合关系分析的推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010982167.8A CN112084415B (zh) | 2020-09-17 | 2020-09-17 | 一种基于用户和项目长短期时间耦合关系分析的推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112084415A true CN112084415A (zh) | 2020-12-15 |
CN112084415B CN112084415B (zh) | 2024-02-02 |
Family
ID=73736526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010982167.8A Active CN112084415B (zh) | 2020-09-17 | 2020-09-17 | 一种基于用户和项目长短期时间耦合关系分析的推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112084415B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112561174A (zh) * | 2020-12-18 | 2021-03-26 | 西南交通大学 | 基于lstm和mlp的叠加神经网络预测地热产能方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101877161B1 (ko) * | 2017-01-09 | 2018-07-10 | 포항공과대학교 산학협력단 | 문서 문맥정보를 고려하는 상황기반 추천 방법 및 장치 |
CN108334638A (zh) * | 2018-03-20 | 2018-07-27 | 桂林电子科技大学 | 基于长短期记忆神经网络与兴趣迁移的项目评分预测方法 |
CN110059262A (zh) * | 2019-04-19 | 2019-07-26 | 武汉大学 | 一种基于混合神经网络的项目推荐模型的构建方法及装置、项目推荐方法 |
CN110134868A (zh) * | 2019-05-14 | 2019-08-16 | 辽宁工程技术大学 | 一种基于用户偏好异构性分析的推荐方法 |
CN110232480A (zh) * | 2019-03-01 | 2019-09-13 | 电子科技大学 | 利用变分的正则化流实现的项目推荐方法及模型训练方法 |
CN110348968A (zh) * | 2019-07-15 | 2019-10-18 | 辽宁工程技术大学 | 一种基于用户及项目耦合关系分析的推荐系统及方法 |
CN110532471A (zh) * | 2019-08-27 | 2019-12-03 | 华侨大学 | 基于门控循环单元神经网络的主动学习协同过滤方法 |
CN110866145A (zh) * | 2019-11-06 | 2020-03-06 | 辽宁工程技术大学 | 一种共同偏好辅助的深度单类协同过滤推荐方法 |
CN111310063A (zh) * | 2020-02-03 | 2020-06-19 | 电子科技大学 | 基于神经网络的记忆感知门控因子分解机物品推荐方法 |
-
2020
- 2020-09-17 CN CN202010982167.8A patent/CN112084415B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101877161B1 (ko) * | 2017-01-09 | 2018-07-10 | 포항공과대학교 산학협력단 | 문서 문맥정보를 고려하는 상황기반 추천 방법 및 장치 |
CN108334638A (zh) * | 2018-03-20 | 2018-07-27 | 桂林电子科技大学 | 基于长短期记忆神经网络与兴趣迁移的项目评分预测方法 |
CN110232480A (zh) * | 2019-03-01 | 2019-09-13 | 电子科技大学 | 利用变分的正则化流实现的项目推荐方法及模型训练方法 |
CN110059262A (zh) * | 2019-04-19 | 2019-07-26 | 武汉大学 | 一种基于混合神经网络的项目推荐模型的构建方法及装置、项目推荐方法 |
CN110134868A (zh) * | 2019-05-14 | 2019-08-16 | 辽宁工程技术大学 | 一种基于用户偏好异构性分析的推荐方法 |
CN110348968A (zh) * | 2019-07-15 | 2019-10-18 | 辽宁工程技术大学 | 一种基于用户及项目耦合关系分析的推荐系统及方法 |
CN110532471A (zh) * | 2019-08-27 | 2019-12-03 | 华侨大学 | 基于门控循环单元神经网络的主动学习协同过滤方法 |
CN110866145A (zh) * | 2019-11-06 | 2020-03-06 | 辽宁工程技术大学 | 一种共同偏好辅助的深度单类协同过滤推荐方法 |
CN111310063A (zh) * | 2020-02-03 | 2020-06-19 | 电子科技大学 | 基于神经网络的记忆感知门控因子分解机物品推荐方法 |
Non-Patent Citations (3)
Title |
---|
余永红;陈兴国;高阳: "一种基于耦合对象相似度的项目推荐算法", 计算机科学, vol. 41, no. 2 * |
叶慧娟: "基于深度学习的智能化资源推荐方法研究", CNKI * |
郭梦娇;孙劲光;孟祥福: "基于耦合相似度的矩阵分解推荐方法", 计算机科学, vol. 43, no. 4 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112561174A (zh) * | 2020-12-18 | 2021-03-26 | 西南交通大学 | 基于lstm和mlp的叠加神经网络预测地热产能方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112084415B (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110348968B (zh) | 一种基于用户及项目耦合关系分析的推荐系统及方法 | |
TWI754033B (zh) | 關注點文案的生成 | |
CN112084428B (zh) | 一种基于耦合网络嵌入及知识图谱的协同过滤推荐方法 | |
CN110717098B (zh) | 基于元路径的上下文感知用户建模方法、序列推荐方法 | |
Pan et al. | Study on convolutional neural network and its application in data mining and sales forecasting for E-commerce | |
CN112084407A (zh) | 一种融合图神经网络和注意力机制的协同过滤推荐方法 | |
CN112256980A (zh) | 一种基于动态图注意力网络的多关系协同过滤推荐 | |
WO2021139415A1 (zh) | 数据处理方法、装置、计算机可读存储介质及电子设备 | |
CN111199458B (zh) | 一种基于元学习与强化学习的推荐系统 | |
Ni et al. | A two-stage embedding model for recommendation with multimodal auxiliary information | |
CN112256859A (zh) | 一种基于双向长短期记忆网络显式信息耦合分析的推荐方法 | |
CN110866145A (zh) | 一种共同偏好辅助的深度单类协同过滤推荐方法 | |
CN112967088A (zh) | 基于知识蒸馏的营销活动预测模型结构和预测方法 | |
Chen et al. | A survey on heterogeneous one-class collaborative filtering | |
CN112288554B (zh) | 商品推荐方法和装置、存储介质及电子装置 | |
CN112256965A (zh) | 一种基于lambdaMart的神经协同过滤模型推荐方法 | |
CN114386513A (zh) | 一种集成评论与评分的交互式评分预测方法及系统 | |
CN116452263A (zh) | 一种信息推荐方法、装置、设备及存储介质、程序产品 | |
CN113590965B (zh) | 一种融合知识图谱与情感分析的视频推荐方法 | |
CN116680363A (zh) | 一种基于多模态评论数据的情感分析方法 | |
CN114896515A (zh) | 基于时间间隔的自监督学习协同序列推荐方法、设备和介质 | |
CN112084415B (zh) | 一种基于用户和项目长短期时间耦合关系分析的推荐方法 | |
CN116205700A (zh) | 目标产品的推荐方法、装置、计算机设备和存储介质 | |
Liu | Deep learning in marketing: a review and research agenda | |
Hou et al. | A deep reinforcement learning real-time recommendation model based on long and short-term preference |
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 |