CN110348968A - 一种基于用户及项目耦合关系分析的推荐系统及方法 - Google Patents
一种基于用户及项目耦合关系分析的推荐系统及方法 Download PDFInfo
- Publication number
- CN110348968A CN110348968A CN201910637253.2A CN201910637253A CN110348968A CN 110348968 A CN110348968 A CN 110348968A CN 201910637253 A CN201910637253 A CN 201910637253A CN 110348968 A CN110348968 A CN 110348968A
- Authority
- CN
- China
- Prior art keywords
- user
- project
- comment text
- coupled relation
- explicit
- 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
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/335—Filtering based on additional data, e.g. user or group profiles
-
- 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
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Economics (AREA)
- Marketing (AREA)
- Computational Linguistics (AREA)
- General Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于用户及项目耦合关系分析的推荐系统及方法,包括数据采集和处理、划分数据集、构建耦合模型和训练模型和项目推荐。本发明考虑用户特征与项目特征之间的非常微观的耦合关系,当评分信息比较稀疏时这种耦合关系可以给用户推荐其喜好的项目,提高了推荐的质量;并运用了Attention机制捕获用户对于项目不同特征的喜好程度,使推荐系统具有更好的推荐效果和可解释性。另外,本发明利用Doc2vec从评论文本中提取用户和项目的显式特征,降低了用户/项目显式特征的维度,加快模型运行速度以及提高推荐准确度,相比于矩阵分解,本发明采用的卷积神经网络以及深度神经网络的非线性性有助于更深层次的学习特征间的交互。
Description
技术领域
本发明属于自然语言处理及计算机人工智能的技术领域,尤其涉及一种基于用户及项目耦合关系分析的推荐系统及方法。
背景技术
随着互联网信息技术的快速发展和普及,人们越来越喜欢在网上购物并在线评论以及给项目打分,然而面对电子商务平台上如此繁多的同类项目,消费者不得不花费大量的时间在挑选自己喜欢的项目上。因此给用户推荐自己喜欢的项目并且具有可解释性至关重要,现存的很多推荐系统可解释性差并认为用户和项目是独立同分布的而忽略了用户和项目之间存在的异构性和耦合性,实际上用户和项目之间,用户特征之间,项目特征之间存在着各种各样的耦合关系,这种耦合关系可以更好的解释用户对项目的偏好。
发明内容
基于以上现有技术的不足,本发明所解决的技术问题在于提供一种基于用户及项目耦合关系分析的推荐系统及方法,具有良好的推荐准确度和可解释性。
为了解决上述技术问题,本发明通过以下技术方案来实现:本发明提供一种基于用户及项目耦合关系分析的推荐系统,包括:
数据采集和处理模块,用于从亚马逊下载评论数据集后清理脏数据,合并每个用户对应的所有项目的评论作为用户评论文本以及合并所有用户对项目的评论文本作为项目评论文本;
划分数据集模块,用于将处理好的数据集按8:1:1的比例划分为训练集、测试集和验证集;
耦合模型模块,用于卷积神经网络学习用户/项目显式-隐式耦合;多层感知器学习用户特征与项目特征之间的耦合;
训练模型和项目推荐模块,用于将所述划分数据集模块得到的训练数据集和测试数据集分别用于训练和评估所述耦合模型模块构建的耦合模型,根据用户对项目的预测评分判断是否将项目推荐给用户。
本发明还提供一种基于用户及项目耦合关系分析的推荐方法,包括以下步骤:
S1、数据采集和处理:从亚马逊下载评论数据集后清理脏数据,合并每个用户对应的所有项目的评论作为用户评论文本以及合并所有用户对项目的评论文本作为项目评论文本;
S2、划分数据集:将处理好的数据集按8:1:1的比例划分为训练集、测试集和验证集;
S3、构建耦合模型:卷积神经网络学习用户/项目显式-隐式耦合;多层感知器学习用户特征与项目特征之间的耦合;
S4、训练模型和项目推荐:步骤S2中所得到的训练数据集和测试数据集分别用于训练和评估步骤S3构建的耦合模型,根据用户对项目的预测评分判断是否将项目推荐给用户。
可选的,所述步骤S1的数据采集和处理的具体步骤如下:
S101、将下载的json格式的亚马逊产品评论数据集转化为csv格式存储;
S102、将每个用户对应的所有项目的评论文本合并作为用户评论文本,将所有用户对项目的评论文本合并作为项目评论文本;
S103、删除每个用户评论文本低于50个单词的记录,清理用户评论文本中的停止词,标点符号,数字,频度小于10的词。
可选的,所述步骤S3中构建耦合模型的具体步骤如下:
S301、构建输入层:输入层包括四个输入内容,用户项目id和对应的用户项目评论文本;
S302、构建用户/项目显式-隐式耦合关系学习以及用户特征与项目特征耦合关系学习框架;
S303、构建输出层:预测用户对项目的评分。
进一步的,所述步骤S302中构建用户/项目显式-隐式耦合关系学习以及用户特征与项目特征耦合关系学习框架的具体步骤如下:
S302-1、构建向量映射层:将用户和项目id通过神经网络全连接层转化为指定维度embedding_dim的向量UCF和VCF,代表用户项目的隐式特征,使embedding_dim等于Doc2vec模型学习的用户/项目显式特征的维度;
S302-2、Doc2vec模型学习用户项目显式特征:将所有用户评论文本和项目评论文本分别送入Doc2vec模型学习用户和项目的显式特征;
S302-3、将通过神经网络嵌入层得到的用户项目隐式向量(UCF和VCF)与通过Doc2vec模型学习到的用户项目显式向量(UCB和VCB)通过耦合函数g得到用户/项目显式-隐式耦合矩阵。
进一步的,所述步骤S302-2通过Doc2vec模型学习用户项目显式特征的具体步骤如下:
S302-2-1、为每个用户/项目评论文本添加一个随机初始化的代表向量,此代表向量与其对应的评论文本作为Doc2vec的输入;
S302-2-2、Doc2vec使用随机梯度下降算法不断更新每个评论文本代表向量;
S302-2-3、所有用户/项目的评论文本代表矩阵,矩阵的每一列是一个评论文本代表向量,即一个用户/项目的显式特征。
可选的,所述步骤S4中训练模型和项目推荐的具体步骤如下:
S401、构建损失函数:使用平均绝对误差(mae)损失函数计算模型的损失值,损失函数公式如下所示:
其中,m为测试数据集的长度,yi是测试数据集中的标签,是预测值;
S402、构建优化函数:使用Adam作为模型的优化函数。
由上,本发明的基于用户及项目耦合关系分析的推荐方法具有以下优点:
(1)、本发明考虑了用户显式隐式特征之间,项目显式隐式特征之间,用户特征与项目特征之间的非常微观的耦合关系,当评分信息比较稀疏时这种耦合关系可以给用户推荐其喜好的项目,提高了推荐的质量。
(2)、本发明运用了Attention机制捕获用户对于项目不同特征的喜好程度,使推荐系统具有更好的推荐效果和可解释性。
(3)、本发明利用Doc2vec从评论文本中提取用户和项目的显式特征,降低了用户/项目显式特征的维度,加快模型运行速度以及提高推荐准确度。
(4)、本发明是协同过滤与基于内容的推荐的结合,可以很好的解决数据稀疏性和冷启动问题。
(5)、本发明使用卷积神经网络(CNN)以及深度神经网络学习用户/项目显式隐式特征以及用户特征与项目特征之间的耦合关系,相比于矩阵分解,CNN和MLP的非线性性有助于更深层次的学习特征间的交互。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下结合优选实施例,并配合附图,详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍。
图1为本发明的基于用户及项目耦合关系分析的推荐方法的流程图;
图2为本发明的数据采集和处理流程图;
图3为本发明的构建耦合模型流程图;
图4为本发明为构建用户/项目显式-隐式耦合关系以及用户特征与项目特征耦合关系学习框架流程图;
图5为本发明通过Doc2vec模型学习用户/项目显式特征流程图;
图6为本发明的训练模型和项目推荐流程图;
图7为本发明的基于用户及项目耦合关系分析的推荐方法的结构框图。
具体实施方式
下面结合附图详细说明本发明的具体实施方式,其作为本说明书的一部分,通过实施例来说明本发明的原理,本发明的其他方面、特征及其优点通过该详细说明将会变得一目了然。在所参照的附图中,不同的图中相同或相似的部件使用相同的附图标号来表示。
本发明的基于用户及项目耦合关系分析的推荐系统,包括:
数据采集和处理模块,用于从亚马逊下载评论数据集后清理脏数据,合并每个用户对应的所有项目的评论(相同的userid)作为用户评论文本以及合并所有用户对项目的评论文本(相同的itemid)作为项目评论文本。
划分数据集模块,用于将处理好的数据集按8:1:1的比例划分为训练集、测试集和验证集;训练集数据用于训练模型,学习用户/项目显式-隐式耦合和用户项目耦合关系;测试集数据用于评估模型的泛化能力;验证集数据用于调整模型的超参数。
耦合模型模块,用于卷积神经网络(CNN)学习用户/项目显式-隐式耦合;多层感知器(MLP)学习用户特征与项目特征之间的耦合;
训练模型和项目推荐模块,用于将所述划分数据集模块得到的训练数据集和测试数据集分别用于训练和评估所述耦合模型模块构建的耦合模型,根据用户对项目的预测评分判断是否将项目推荐给用户。
如图1所示,本发明的基于用户及项目耦合关系分析的推荐方法,该方法包括如下步骤:
S1、数据采集和处理:从亚马逊下载评论数据集后清理脏数据,合并每个用户对应的所有项目的评论(相同的userid)作为用户评论文本以及合并所有用户对项目的评论文本(相同的itemid)作为项目评论文本。
S2、划分数据集:将处理好的数据集按8:1:1的比例划分为训练集、测试集和验证集。训练集数据用于训练模型,学习用户/项目显式-隐式耦合和用户项目耦合关系;测试集数据用于评估模型的泛化能力;验证集数据用于调整模型的超参数。
S3、构建耦合模型:卷积神经网络(CNN)学习用户/项目显式-隐式耦合;多层感知器(MLP)学习用户特征与项目特征之间的耦合。
S4、训练模型和项目推荐:步骤S2中所得到的训练数据集和测试数据集分别用于训练和评估步骤S3构建的耦合模型,根据用户对项目的预测评分判断是否将项目推荐给用户。
如图2所示,步骤S1中的数据采集和处理的具体步骤如下:
S101、数据集格式转化:将下载的json格式的亚马逊产品评论数据集转化为csv格式存储。
json格式的数据集如下所示:
{"reviewerID":"A2SUAM1J3GNN3B","asin":"0000013714","reviewerName":"J.McDonald","helpful":[2,3],"reviewText":"I bought this for my husband whoplays the piano.He is having a wonderful time playing these old hymns.Themusic is at times hard to read because we think the book was published forsinging from more than playing from.Great purchase though!","overall":5.0,"summary":"Heavenly Highway Hymns","unixReviewTime":1252800000,"reviewTime":"09 13,2009"}
把json格式数据集中的"reviewerID","asin","overall","reviewText"字段的数据转化为csv格式的数据集如下所示:
S102、将每个用户对应的所有项目的评论文本(相同的userid)合并作为用户评论文本,将所有用户对项目的评论文本(相同itemid)合并作为项目评论文本。
每个用户/项目评论文本合并前的数据集格式如下所示:
用户评论文本合并后的数据集格式如下所示:
项目评论文本合并后的数据集格式如下所示:
S103、删除每个用户(项目)评论文本低于50个单词的记录,清理用户(项目)评论文本中的停止词,标点符号,数字,频度小于10的词。
清理后的用户(项目)评论文本如下所示:
如图3所示,步骤S3中构建耦合模型的具体步骤如下:
S301、构建输入层:输入层包括四个输入内容,用户项目id和对应的用户项目评论文本。输入层的形式为(userid,itemid,user_reviews,item_reviews)。
在Keras中,输入层可用如下代码实现:
user_id=Input(shape=(1,),dtype='string',name='user_id')
item_id=Input(shape=(1,),dtype='string',name='item_id')
user_fea=Input(shape=(k,),dtype='float32',name='user_fea')
item_fea=Input(shape=(k,),dtype='float32',name='item_fea')
其中k为隐向量的维度也是LDA主题模型提取的主题个数。
S302、构建用户/项目显式-隐式耦合关系学习以及用户特征与项目特征耦合关系学习框架。
S303、构建输出层:预测用户对项目的评分。
在Keras中,输出层实现代码如下所示:
prediction=Dense(1,kernel_initializer='glorot_normal',name='prediction')(prediction)
如图4所示,步骤S302中构建学习用户/项目特征之间以及用户特征与项目特征之间耦合关系的框架的具体步骤如下所示:
S302-1、构建向量映射层:将用户和项目id通过神经网络全连接层转化为指定维度embedding_dim的向量UCF和VCF,代表用户项目的隐式特征,我们使embedding_dim等于Doc2vec模型学习的用户/项目显式特征的维度。
例如:指定embedding_dim=20
userid=2通过神经网络全连接层转化成向量如下所示:
[-0.00749762 -0.02151975 0.00523305 -0.02227279 -0.02132436 -0.01079273 0.01727066 -0.01092268 0.00999936 0.0233566 -0.00560872 -0.02145314 0.02113025 0.0178023 -0.02133563 -0.02135003 -0.00111125 -0.01905928 -0.01002887 0.00150579]
在Keras中,向量映射层实现代码如下所示:
MF_Embedding_User=Embedding(embeddings_initializer=init_normal,name='user_embedding',output_dim=latent_dim,embeddings_regularizer=l2(regs[0]),input_dim=num_users,input_length=1)
MF_Embedding_Item=Embedding(embeddings_initializer=init_normal,name='item_embedding',utput_dim=latent_dim,embeddings_regularizer=l2(regs[0]),input_dim=num_items,input_length=1)
S302-2、Doc2vec模型学习用户项目显式特征:将所有用户评论文本和项目评论文本分别送入Doc2vec模型学习用户和项目的显式特征。
S302-3、将通过神经网络嵌入层得到的用户项目隐式向量(UCF和VCF)与通过Doc2vec模型学习到的用户项目显式向量(UCB和VCB)通过耦合函数g得到用户/项目显式-隐式耦合矩阵(Xmatrix),耦合矩阵中的每一个元素表示用户/项目显式特征与隐式特征之间的耦合关系,将显式-隐式耦合矩阵(Xmatrix)作为卷积层的输入,卷积层将输入特征与卷积核做卷积学习输入的特征表示,最大池化层对特征降维,学习更加抽象的耦合向量,并通过外积融合方式得到融合向量f,将u和v作为Attention层的输入,Attention层捕获了用户对于项目不同特征喜好的权重向量,将融合向量权重和送入多层感知器(MLP)学习用户特征与项目特征之间的耦合关系。
g耦合函数的计算公式如下所示:
gij=uCFi(vCFi)*uCBi(vCBi)
其中,uCFi表示用户的第i个隐式特征;uCBj表示用户的第i个显式特征。
融合向量f的计算公式如下:
其中,ui(i=1,2,...,k)∈u表示用户u的第i个特征,vi(i=1,2,...,k)∈v表示项目v的第i个特征。
权重计算公式如下所示:
其中,表示用户对于项目不同特征喜好的权重向量,为用户/项目第k个特征的权重值(例如:一个电影有多个特征:行动,爱情,恐怖等),为用户/项目第j个特征的权重值,k为特征的数量,vt为隐藏层到注意力层的权重向量,W和b分别为权重矩阵和偏差向量,exp为指数函数,Relu为激活函数,Relu激活函数的计算公式如下所示:
在Keras中,求用户/项目特征耦合矩阵(Xmatrix)实现代码如下所示:
merge_user_fea=Lambda(lambda x:K.batch_dot(x[0],x[1],axes=[1,2]))([user_latent_CF,user_fea_CB])
merge_item_fea=Lambda(lambda x:K.batch_dot(x[0],x[1],axes=[1,2]))([item_latent_CF,item_fea_CB])
CNN学习用户/项目显式-隐式耦合关系实现代码如下所示:
user_fusion_latent=Reshape((latent_dim,latent_dim,1))(merge_user_fea)
user_fusion_latent=Conv2D(latent_dim,(3,3))(user_fusion_latent)
user_fusion_latent=BatchNormalization(axis=3)(user_fusion_latent)
user_fusion_latent=Activation('relu')(user_fusion_latent)
user_fusion_latent=MaxPooling1D()(user_fusion_latent)
item_fusion_latent=Reshape((latent_dim,latent_dim,1))(merge_item_fea)
item_fusion_latent=Conv2D(latent_dim,(3,3))(item_fusion_latent)
item_fusion_latent=BatchNormalization(axis=3)(item_fusion_latent)
item_fusion_latent=Activation('relu')(item_fusion_latent)
item_latent_fusion=MaxPooling1D()(item_latent_fusion)
融合向量f实现代码如下所示:
vec=keras.layers.Multiply()([user_latent,item_latent])
Attention层求权重实现代码如下所示:
att=Dense(32,kernel_initializer='random_uniform',activation='softmax')(user_item_concat)
通过多层感知器(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)
如图5所示,步骤S302-2中通过Doc2vec模型学习用户项目显式特征的具体步骤如下:
S302-2-1、为每个用户/项目评论文本添加一个随机初始化的代表向量,此代表向量与其对应的评论文本作为Doc2vec的输入。
实现代码如下所示:
for i,sen in enumerate(sentence):
all_sentence.append(TaggedDocument(sen.split(','),tags=[i]))
S302-2-2、Doc2vec使用随机梯度下降算法不断更新每个评论文本代表向量。
实现代码如下所示:
model=Doc2Vec(vector_size=vector_size,min_count=min_count,epochs=epoch)
model.build_vocab(all_sentence)
model.train(all_sentence,total_examples=model.corpus_count,epochs=model.epochs)
S302-2-3、最终,我们得到所有用户的评论文本代表矩阵,矩阵的每一列是一个评论文本代表向量(代表评论文本的主旨),即一个用户/项目的显式特征uCB/vCB。
实现代码如下所示:
vecs=[np.array(model.docvecs[z.tags[0]].reshape(1,vector_size))for zin corpus]
如图6所示,步骤S4训练模型和项目推荐的具体步骤为:
S401、构建损失函数:使用平均绝对误差(mae)损失函数计算模型的损失值,损失函数公式如下所示:
其中,m为数据集的长度,yi是数据集中的标签,是预测值。
在Keras中,mae实现代码如下所示:
model.compile(optimizer=Adam(lr=learning_rate),loss='mean_squared_error')
S402、构建优化函数:使用Adam作为模型的优化函数;其中,学习率参数设置为0.001,其他参数使用keras的默认值即可,其他参数包括如下:
beta1=0.9:一阶矩估计的指数衰减率。
beta2=0.999:二阶矩估计的指数衰减率。
epsilon=10E-8:该参数是非常小的数,其为了防止在实现中除零。
在Keras中,优化函数实现代码如下所示:
model.compile(optimizer=Adam(lr=learning_rate),loss='mean_squared_error')
S403、项目推荐:将一个用户的信息以及项目信息送入耦合模型,输出用户对项目的评分,判断是否将项目推荐给用户。
本发明公开了基于用户及项目耦合关系分析的推荐系统及方法,该方法包括如下:S1、数据采集和处理;S2、划分数据集;S3、构建耦合模型:(1)用户/项目显式-隐式耦合关系学习:用户/项目id通过神经网络全连接层转化为固定大小的向量(Embedding),代表用户/项目的隐式特征;将每个用户对所有项目的评论文本(相同的userid)合并作为用户评论文本,将所有用户对项目的评论文本(相同的itemid)合并作为项目评论文本,分别将所有用户评论文本和项目评论文本送入Doc2vec模型学习用户和项目的显式特征;通过耦合函数计算用户/项目显式-隐式耦合矩阵,将耦合矩阵送入卷积神经网络(CNN)学习用户/项目隐式特征与显式特征之间的耦合关系,输出用户/项目显式-隐式耦合向量;(2)用户特征与项目特征耦合关系学习:通过对用户耦合向量和项目耦合向量逐元素乘积的方式得到用户-项目特征耦合向量,将用户耦合向量与项目耦合向量送入Attention层,Attention层捕获了用户对于项目不同特征喜好的权重向量,代表了用户对于特定项目不同特征的喜好程度;将用户-项目特征耦合向量权重和送入多层感知器(MLP)学习用户特征与项目特征之间的耦合关系。本发明的方法还包括:S4、训练耦合模型和项目推荐:利用评分信息和用户项目的评论文本作为模型的输入,模型在训练过程中不断更新参数,从而更好的学习用户/项目显式-隐式耦合关系以及用户特征与项目特征之间的耦合关系。
以上所述是本发明的优选实施方式而已,当然不能以此来限定本发明之权利范围,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和变动,这些改进和变动也视为本发明的保护范围。
Claims (7)
1.一种基于用户及项目耦合关系分析的推荐系统,其特征在于,包括:
数据采集和处理模块,用于从亚马逊下载评论数据集后清理脏数据,合并每个用户对应的所有项目的评论作为用户评论文本以及合并所有用户对项目的评论文本作为项目评论文本;
划分数据集模块,用于将处理好的数据集按8:1:1的比例划分为训练集、测试集和验证集;
耦合模型模块,用于卷积神经网络学习用户/项目显式-隐式耦合;多层感知器学习用户特征与项目特征之间的耦合;
训练模型和项目推荐模块,用于将所述划分数据集模块得到的训练数据集和测试数据集分别用于训练和评估所述耦合模型模块构建的耦合模型,根据用户对项目的预测评分判断是否将项目推荐给用户。
2.一种基于用户及项目耦合关系分析的推荐方法,其特征在于,包括以下步骤:
S1、数据采集和处理:从亚马逊下载评论数据集后清理脏数据,合并每个用户对应的所有项目的评论作为用户评论文本以及合并所有用户对项目的评论文本作为项目评论文本;
S2、划分数据集:将处理好的数据集按8:1:1的比例划分为训练集、测试集和验证集;
S3、构建耦合模型:卷积神经网络学习用户/项目显式-隐式耦合;多层感知器学习用户特征与项目特征之间的耦合;
S4、训练模型和项目推荐:步骤S2中所得到的训练数据集和测试数据集分别用于训练和评估步骤S3构建的耦合模型,根据用户对项目的预测评分判断是否将项目推荐给用户。
3.根据权利要求2所述的基于用户及项目耦合关系分析的推荐方法,其特征在于,所述步骤S1的数据采集和处理的具体步骤如下:
S101、将下载的json格式的亚马逊产品评论数据集转化为csv格式存储;
S102、将每个用户对应的所有项目的评论文本合并作为用户评论文本,将所有用户对项目的评论文本合并作为项目评论文本;
S103、删除每个用户评论文本低于50个单词的记录,清理用户评论文本中的停止词,标点符号,数字,频度小于10的词。
4.根据权利要求2所述的基于用户及项目耦合关系分析的推荐方法,其特征在于,所述步骤S3中构建耦合模型的具体步骤如下:
S301、构建输入层:输入层包括四个输入内容,用户项目id和对应的用户项目评论文本;
S302、构建用户/项目显式-隐式耦合关系学习以及用户特征与项目特征耦合关系学习框架;
S303、构建输出层:预测用户对项目的评分。
5.根据权利要求4所述的基于用户及项目耦合关系分析的推荐方法,其特征在于,所述步骤S302中构建用户/项目显式-隐式耦合关系学习以及用户特征与项目特征耦合关系学习框架的具体步骤如下:
S302-1、构建向量映射层:将用户和项目id通过神经网络全连接层转化为指定维度embedding_dim的向量UCF和VCF,代表用户项目的隐式特征,使embedding_dim等于Doc2vec模型学习的用户/项目显式特征的维度;
S302-2、Doc2vec模型学习用户项目显式特征:将所有用户评论文本和项目评论文本分别送入Doc2vec模型学习用户和项目的显式特征;
S302-3、将通过神经网络嵌入层得到的用户项目隐式向量(UCF和VCF)与通过Doc2vec模型学习到的用户项目显式向量(UCB和VCB)通过耦合函数g得到用户/项目显式-隐式耦合矩阵。
6.根据权利要求5所述的基于用户及项目耦合关系分析的推荐方法,其特征在于,所述步骤S302-2通过Doc2vec模型学习用户项目显式特征的具体步骤如下:
S302-2-1、为每个用户/项目评论文本添加一个随机初始化的代表向量,此代表向量与其对应的评论文本作为Doc2vec的输入;
S302-2-2、Doc2vec使用随机梯度下降算法不断更新每个评论文本代表向量;
S302-2-3、所有用户/项目的评论文本代表矩阵,矩阵的每一列是一个评论文本代表向量,即一个用户/项目的显式特征。
7.根据权利要求2所述的基于用户及项目耦合关系分析的推荐方法,其特征在于,所述步骤S4中训练模型和项目推荐的具体步骤如下:
S401、构建损失函数:使用平均绝对误差(mae)损失函数计算模型的损失值,损失函数公式如下所示:
其中,m为测试数据集的长度,yi是测试数据集中的标签,是预测值;
S402、构建优化函数:使用Adam作为模型的优化函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910637253.2A CN110348968B (zh) | 2019-07-15 | 2019-07-15 | 一种基于用户及项目耦合关系分析的推荐系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910637253.2A CN110348968B (zh) | 2019-07-15 | 2019-07-15 | 一种基于用户及项目耦合关系分析的推荐系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110348968A true CN110348968A (zh) | 2019-10-18 |
CN110348968B CN110348968B (zh) | 2022-02-15 |
Family
ID=68176375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910637253.2A Active CN110348968B (zh) | 2019-07-15 | 2019-07-15 | 一种基于用户及项目耦合关系分析的推荐系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110348968B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110866145A (zh) * | 2019-11-06 | 2020-03-06 | 辽宁工程技术大学 | 一种共同偏好辅助的深度单类协同过滤推荐方法 |
CN111310029A (zh) * | 2020-01-20 | 2020-06-19 | 哈尔滨理工大学 | 一种基于用户商品画像和潜在因子特征提取的混合推荐方法 |
CN112084415A (zh) * | 2020-09-17 | 2020-12-15 | 辽宁工程技术大学 | 一种基于用户和项目长短期时间耦合关系分析的推荐方法 |
CN112084407A (zh) * | 2020-09-08 | 2020-12-15 | 辽宁工程技术大学 | 一种融合图神经网络和注意力机制的协同过滤推荐方法 |
CN112084428A (zh) * | 2020-09-17 | 2020-12-15 | 辽宁工程技术大学 | 一种基于耦合网络嵌入及知识图谱的协同过滤推荐方法 |
CN112269927A (zh) * | 2020-10-22 | 2021-01-26 | 辽宁工程技术大学 | 一种基于会话序列动态行为偏好耦合关系分析的推荐方法 |
CN112307341A (zh) * | 2020-11-02 | 2021-02-02 | 沈阳民航东北凯亚有限公司 | 航班推送方法及装置 |
CN112529350A (zh) * | 2020-06-13 | 2021-03-19 | 青岛科技大学 | 一种针对冷启动任务的开发者推荐方法 |
CN112800344A (zh) * | 2021-01-29 | 2021-05-14 | 重庆邮电大学 | 一种基于深度神经网络的电影推荐方法 |
CN114139052A (zh) * | 2021-11-19 | 2022-03-04 | 北京百度网讯科技有限公司 | 用于智能推荐的排序模型训练方法、智能推荐方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160379132A1 (en) * | 2015-06-23 | 2016-12-29 | Adobe Systems Incorporated | Collaborative feature learning from social media |
CN107133277A (zh) * | 2017-04-12 | 2017-09-05 | 浙江大学 | 一种基于动态主题模型和矩阵分解的旅游景点推荐方法 |
CN109670121A (zh) * | 2018-12-18 | 2019-04-23 | 辽宁工程技术大学 | 基于注意力机制的项目级和特征级深度协同过滤推荐算法 |
-
2019
- 2019-07-15 CN CN201910637253.2A patent/CN110348968B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160379132A1 (en) * | 2015-06-23 | 2016-12-29 | Adobe Systems Incorporated | Collaborative feature learning from social media |
CN107133277A (zh) * | 2017-04-12 | 2017-09-05 | 浙江大学 | 一种基于动态主题模型和矩阵分解的旅游景点推荐方法 |
CN109670121A (zh) * | 2018-12-18 | 2019-04-23 | 辽宁工程技术大学 | 基于注意力机制的项目级和特征级深度协同过滤推荐算法 |
Non-Patent Citations (3)
Title |
---|
QUANGUI ZHANG 等: "A Generic Framework for Learning Explicit and Implicit User-Item Couplings in Recommendation", 《IEEE ACCESS》 * |
QUANGUI ZHANG 等: "CoupledCF: Learning Explicit and Implicit User-item Couplings in Recommendation for Deep Collaborative Filtering", 《PROCEEDINGS OF THE TWENTY-SEVENTH INTERNATIONAL JOINT CONFERENCE ON ARTIFICIAL INTELLIGENCE (IJCAI-18)》 * |
张全贵 等: "融合元数据及隐式反馈信息的多层次联合学习推荐方法", 《计算机应用研究》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110866145A (zh) * | 2019-11-06 | 2020-03-06 | 辽宁工程技术大学 | 一种共同偏好辅助的深度单类协同过滤推荐方法 |
CN110866145B (zh) * | 2019-11-06 | 2023-10-31 | 辽宁工程技术大学 | 一种共同偏好辅助的深度单类协同过滤推荐方法 |
CN111310029A (zh) * | 2020-01-20 | 2020-06-19 | 哈尔滨理工大学 | 一种基于用户商品画像和潜在因子特征提取的混合推荐方法 |
CN111310029B (zh) * | 2020-01-20 | 2022-11-01 | 哈尔滨理工大学 | 一种基于用户商品画像和潜在因子特征提取的混合推荐方法 |
CN112529350B (zh) * | 2020-06-13 | 2022-10-18 | 青岛科技大学 | 一种针对冷启动任务的开发者推荐方法 |
CN112529350A (zh) * | 2020-06-13 | 2021-03-19 | 青岛科技大学 | 一种针对冷启动任务的开发者推荐方法 |
CN112084407B (zh) * | 2020-09-08 | 2024-03-12 | 辽宁工程技术大学 | 一种融合图神经网络和注意力机制的协同过滤推荐方法 |
CN112084407A (zh) * | 2020-09-08 | 2020-12-15 | 辽宁工程技术大学 | 一种融合图神经网络和注意力机制的协同过滤推荐方法 |
CN112084428A (zh) * | 2020-09-17 | 2020-12-15 | 辽宁工程技术大学 | 一种基于耦合网络嵌入及知识图谱的协同过滤推荐方法 |
CN112084428B (zh) * | 2020-09-17 | 2024-02-02 | 辽宁工程技术大学 | 一种基于耦合网络嵌入及知识图谱的协同过滤推荐方法 |
CN112084415B (zh) * | 2020-09-17 | 2024-02-02 | 辽宁工程技术大学 | 一种基于用户和项目长短期时间耦合关系分析的推荐方法 |
CN112084415A (zh) * | 2020-09-17 | 2020-12-15 | 辽宁工程技术大学 | 一种基于用户和项目长短期时间耦合关系分析的推荐方法 |
CN112269927A (zh) * | 2020-10-22 | 2021-01-26 | 辽宁工程技术大学 | 一种基于会话序列动态行为偏好耦合关系分析的推荐方法 |
CN112307341A (zh) * | 2020-11-02 | 2021-02-02 | 沈阳民航东北凯亚有限公司 | 航班推送方法及装置 |
CN112800344B (zh) * | 2021-01-29 | 2022-03-22 | 重庆邮电大学 | 一种基于深度神经网络的电影推荐方法 |
CN112800344A (zh) * | 2021-01-29 | 2021-05-14 | 重庆邮电大学 | 一种基于深度神经网络的电影推荐方法 |
CN114139052A (zh) * | 2021-11-19 | 2022-03-04 | 北京百度网讯科技有限公司 | 用于智能推荐的排序模型训练方法、智能推荐方法及装置 |
WO2023087667A1 (zh) * | 2021-11-19 | 2023-05-25 | 北京百度网讯科技有限公司 | 用于智能推荐的排序模型训练方法、智能推荐方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110348968B (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110348968A (zh) | 一种基于用户及项目耦合关系分析的推荐系统及方法 | |
Afoudi et al. | Hybrid recommendation system combined content-based filtering and collaborative prediction using artificial neural network | |
WO2022007526A1 (zh) | 一种基于多视图注意力机制的旅游包推荐方法 | |
Young et al. | Affective news: The automated coding of sentiment in political texts | |
Luo et al. | Applying the learning rate adaptation to the matrix factorization based collaborative filtering | |
CN111079028A (zh) | 基于多源辅助信息的协同过滤推荐系统及方法 | |
CN104268292A (zh) | 画像系统的标签词库更新方法 | |
CN103426102A (zh) | 基于本体分类的商品特征推荐方法 | |
CN112256859A (zh) | 一种基于双向长短期记忆网络显式信息耦合分析的推荐方法 | |
CN106708938A (zh) | 用于辅助推荐的方法及装置 | |
CN110348919A (zh) | 物品推荐方法、装置和计算机可读存储介质 | |
Lang et al. | Movie recommendation system for educational purposes based on field-aware factorization machine | |
Du et al. | An interactive network for end-to-end review helpfulness modeling | |
Li et al. | Pbnr: Prompt-based news recommender system | |
Roshchina | TWIN: Personality-based Recommender System | |
Serrano | A big data intelligent search assistant based on the random neural network | |
CN109522410A (zh) | 文档聚类方法及平台、服务器和计算机可读介质 | |
CN110570226B (zh) | 一种联合主题模型和异质信息网络的评分预测方法 | |
Klašnja-Milićević et al. | Folksonomy and tag-based recommender systems in e-learning environments | |
Nguyen et al. | Analyzing customer experience in hotel services using topic modeling | |
Sidana | Recommendation systems for online advertising | |
CN108228833B (zh) | 一种利用用户倾向性学习解决社区项目推荐任务的方法 | |
Zou et al. | Automatic product copywriting for e‐commerce | |
CN111667344A (zh) | 一种融合评论与评分的个性化推荐方法 | |
Dahale | A natural language processing approach for musical instruments recommendation system |
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 |