一种联合主题模型和异质信息网络的评分预测方法与流程

文档序号:19421158发布日期:2019-12-14 01:29阅读:249来源:国知局
一种联合主题模型和异质信息网络的评分预测方法与流程

本发明涉及推荐系统中的评分预测领域,具体涉及一种联合主题模型和异质信息网络的评分预测方法。



背景技术:

预测用户对未购买商品的打分情况,目前存在三种类型的方法:

第一种是根据用户历史评分记录,使用协同过滤实现评分预测。此种方法对于稀疏的用户评分数据会造成冷启动问题。

第二种通过利用评论和评分信息来实现评分预测,lda是一种比较传统的分析评论数据的方法,但目前使用的更多的是通过cnn等深度学习来处理评论信息。此种方法忽视商品固有的属性信息和用户共同购买信息预测效果不佳。

第三种通过商品的属性信息和用户的共同购买信息来构建异质信息网络来实现评分预测。此种方法忽视用户的评论信息,无法准确的构造用户商品向量。我们的模型能充分利用上述信息,从而提高模型预测的准确性。



技术实现要素:

本发明针对现有技术的不足,提供一种联合主题模型和异质信息网络的评分预测方法,以解决评分预测中出现的冷启动,可解释性不强,准确率不高的问题。

为解决技术问题,本发明的解决方案包括以下步骤:

步骤(1)针对指定用户商品对,利用主题模型提取评论信息,从而构建用户和商品的向量表示;

步骤(2)利用商品属性信息和用户共同购买信息构建异质信息网络;

步骤(3)从异质网络中提取出用户商品对的最终关系表示向量;

步骤(4)针对用户商品对,连接用户向量、关系表示向量、商品向量表示,并输入到afm实现评分预测。

步骤(1)具体实现如下:

1-1.首先通过双向lstm获取评论中某个单词的上下文向量表示。假设用户表示为一个k维的潜在因子向量,其中的每一维表示用户对相关主题喜爱程度;即k表示主题的个数。

1-2.传统的lda模型假设文档是主题的多项式分布,主题是单词的多项式分布;由于每条评论对于每个主题的重要性是不一样的,不同单词对主题的重要程度也不一样,因此我们为每一个主题设置一个上下文主题向量vk∈rdim,对于用户的第i条评论,表示为(wi,1,wi,2,wi,3…,wi,t),其中t表示单词的个数,wi,t表示单词对应的上下文表示向量,

首先如公式(1),通过一层的mlp获取单词wi,t在第k个主题下的隐藏表示接着如公式(2)我们把单词表示向量和第k个主题的相似度,作为此单词对这个主题的重要权重,并且通过softmax函数获取标准重要权重接着如公式(3),通过每个单词向量的加权求和来表示此条评论在这个主题上的表示最终如公式(4),通过一层mlp把此条评论向量映射为一个对主题相关度的值ci,k;

最终第i条评论,映射到每一个主题之后的最终表示为ci=[ci,1,ci,2,…,ci,k];其中ci,k表示第i条评论对第k个主题相关程度值;表示隐藏参数矩阵,它把单词向量hi,t转换为主题k下的隐藏向量表示,表示可训练的偏差向量.表示此单词对主题k的重要程度;表示映射矩阵,它把评论在主题k的表示映射为对相应主题的反映程度值。表示偏差系数.

1-3.首先针对每个用户获取u∈rlu×k,其中lu表示用户评论的个数,k表示主题的个数,也是用户表示向量的维度.u=[c1,c2,…,clu],其中ci∈rk表示用户第i条评论的表示向量.同理针对每个商品我们用v∈rlv×k,其中lv表示商品评论的条数.如下式中,我们通过直接相乘获得关联矩阵的结果,然后对每行元素的最大池化来获取此条评论的重要程度,接着通过一个softmax层获取标准化的重要程度值,最后通过用户矩阵中行向量的线性加权来获取最终的用户表示;

wr=umyt(5)

其中m∈rk×k,表示可训练的中间矩阵。wr∈rlu×lv;表示最终获得的关联矩阵

接着通过最大行池化来计算每条评论的重要程度,并最终获得用户的一个向量表示.:

au=softmax(maxrow(wr))(6)

au∈rlu×1向量的每一维表示对应评论的重要程度权重值,表示最终的用户向量表示.上面的公式(7)中,只对用户每条评论重要程度进行选择,并没有针对物品,主要是因为在现实世界中,商品的特点相对稳定.

步骤2、构建异质信息网络:

利用商品属性信息和用户共同购买信息构建异质信息网络,根据三种元路径构建异质信息网络,三种元路径分别为ubub、ubcatb和ubbrdb,其中ubub表示用户共同购买信息;ubcatb表示和用户以前购买商品的类别相同的商品;ubbrdb表示和用户以前购买商品的品牌相同的商品。

步骤3、提取商品对的表示向量;

3-1.首先通过metapath2vec++获取所有节点的初始向量表示,提取信息的时候采用cnn卷积每种类型元路径的所有实例数据:

其中,hu,i,p,s∈rl1表示对于指定的用户和商品对,元路径类型为p的某个具体路径s卷积后的向量表示;fu→i,p∈rl1表示对于指定的用户商品对,元路径类型为p的关联向量表示。

3-2.通过注意力机制实现不同路径信息的融合:

用fu→i表示对于指定用户商品对,融合所有类型的元路径实例之后的向量表示,pu→i表示用户u到商品i的三种元路径类型集合,由于最终要进行评分预测,把从评论中提取的信息也关联到attention中,最终我们设计一个两层的结构来实现attention.

au,i,p=relu(w2αu,i,p+b)(11)

其中[]表示的是连接操作,表示主题模型中提取出的用户向量表示,表示主题模型中提取出的商品向量表示,w1∈rl3×(l1+2×k),bv∈rl3,w2∈r1×l3都表示可训练的参数矩阵;

接着通过softmax层标准化权重大小,然后通过线性加权获得用户商品对的表示向量:

其中fu→i,p表示用户u和商品i,在元路径类型为p下的关联向量,au,i,p表示对用关联向量的权重系数.

步骤4、实现评分预测:

针对用户商品对,连接用户向量、关系表示向量、商品对的表示向量,并输入到afm实现评分预测。把三个向量直接连接组成最终afm输入x,其中

其中,表示评论信息中提取的用户表示向量,表示商品所受到的所有评论中提取出的商品表示向量,fu→i表示商品属性信息和用户共同购买信息中提取出的表示向量。⊙表示向量之间的乘积,{v1,v2…,vn}表示因子参数向量,用来表示任意二维特征xi和xj的交互.aij表示特征xi和xj交互之后的二维特征的权重系数.wi表示一维特征xi的重要程度系数.w0是全局偏差系数.

步骤5、根据模型计算出的预测评分数据和真实评分数据,计算rmse值,并把此值作为模型效果的评价指标。

本发明有益效果如下:

本发明利用评论信息、商品的属性信息、用户共同购买信息来实现评分预测,由于充分利用上述所有的信息,所以能够获得更好的效果,避免冷启动以及增强可解释性

附图说明

图1是本发明的整体实施方案流程图;

图2是本发明工艺实施方案的具体流程图;

图3是本发明的深度学习评分预测模型网络架构。

具体实施方式

附图的公开了本发明所涉及优选实施例的流程示意图;以下将结合附图详细的说明本发明的技术方案。

步骤1、构建用户和商品的向量表示:

1-1首先通过双向lstm获取评论中某个单词的上下文向量表示。假设用户可以表示为一个k维的潜在因子向量,其中的每一维表示用户对相关主题喜爱程度.

1-2传统的lda模型假设文档是主题的多项式分布,主题是单词的多项式分布;由于每条评论对于每个主题的重要性是不一样的,不同单词对主题的重要程度也不一样,因此我们为每一个主题设置一个上下文主题向量vk∈rdim,对于用户的第i条评论,表示为(wi,1,wi,2,wi,3…,wi,t),其中t表示单词的个数,wi,t表示单词对应的上下文表示向量,首先如公式(1),通过一层的mlp获取单词wi,t在第k个主题下的隐藏表示接着如公式(2)我们把单词表示向量和第k个主题的相似度,作为此单词对这个主题的重要权重,并且通过softmax函数获取标准重要权重接着如公式(3),通过每个单词向量的加权求和来表示此条评论在这个主题上的表示最终如公式(4),通过一层mlp把此条评论向量映射为一个对主题相关度的值ci,k;

最终第i条评论,映射到每一个主题之后的最终表示为ci=[ci,1,ci,2,…,ci,k];其中ci,k表示第i条评论对第k个主题相关程度值;表示隐藏参数矩阵,它把单词向量hi,t转换为主题k下的隐藏向量表示,表示可训练的偏差向量.表示此单词对主题k的重要程度;表示映射矩阵,它把评论在主题k的表示映射为对相应主题的反映程度值。表示偏差系数.

1-3首先针对每个用户我们获取u∈rlu×k,其中lu表示用户评论的个数,k表示主题的个数,也是用户表示向量的维度.u=[c1,c2,…,clu],其中ci∈rk表示用户第i条评论的表示向量.同理针对每个商品我们用v∈rlv×k,其中lv表示商品评论的条数.如下式中,我们通过直接相乘获得关联矩阵的结果,然后对每行元素的最大池化来获取此条评论的重要程度,接着通过一个softmax层获取标准化的重要程度值,最后通过用户矩阵中行向量的线性加权来获取最终的用户表示.

wr=umyt

其中m∈rk×k,表示可训练的中间矩阵。wr∈rlu×lv;表示最终获得的关联矩阵。接着我们通过最大行池化来计算每条评论的重要程度,并最终获得用户的一个向量表示.

au=softmax(maxrow(wr))

其中,au∈rlu×1向量的每一维表示对应评论的重要程度权重值,表示最终的用户向量表示.上面的公式中,我只对用户每条评论重要程度进行选择,并没有针对物品,主要是因为在现实世界中,商品的特点相对稳定.

步骤2、构建异质信息网络:

利用商品属性信息和用户共同购买信息构建异质信息网络,主要根据三种元路径构建异质信息网络:

包含三种元路径其中ubub表示用户共同购买信息;ubcatb表示和用户以前购买商品的类别相同的商品;ubbrdb表示和用户以前购买商品的品牌相同的商品.

步骤3、提取商品对的表示向量;

3-1首先通过metapath2vec++获取所有节点的初始向量表示,提取信息的时候采用cnn卷积每种类型元路径的所有实例数据,

其中hu,i,p,s∈rl1,表示对于指定的用户和商品对,元路径类型为p的某个具体路径s卷积后的向量表示.fu→i,p∈rl1,对于指定的用户商品对,元路径类型为p的最终向量表示.

3-2注意力机制来实现不同路径信息的融合:我们用fu→i表示对于指定用户商品对,融合所有类型的元路径实例之后的向量表示,pu→i表示用户u到商品i的三种元路径类型集合,由于最终要进行评分预测,我们把从评论中提取的信息也关联到attention中,最终我们设计一个两层的结构来实现attention.

au,i,p=relu(w2αu,i,p+b)

其中[]表示的是连接操作,表示主题模型中提取出的用户向量表示,表示主题模型中提取出的商品向量表示,w1∈rl3×(l1+2×k),bv∈rl3,w2∈r1×l3都表示参数

接着通过softmax层标准化权重大小,然后通过线性加权获得用户商品对的表示向量.

其中fu→i,p表示用户u和商品i,在元路径类型为p下的关联向量,au,i,p表示对用关联向量的权重系数.

步骤4、实现评分预测:

针对用户商品对,连接用户向量、关系表示向量、商品对的表示向量,并输入到afm实现评分预测。把三个向量直接连接组成最终afm输入x,其中

其中,表示评论信息中提取的用户表示向量,表示商品所受到的所有评论中提取出的商品表示向量,fu→i表示商品属性信息和用户共同购买信息中提取出的表示向量。⊙表示向量之间的乘积,{v1,v2…,vn}表示因子参数向量,用来表示任意二维特征xi和xj的交互.aij表示特征xi和xi交互之后的二维特征权重系数.wi表示一维特征xi的重要程度系数.w0是全局偏差系数.

步骤5、根据模型计算出的预测评分数据和真实评分数据,计算rmse值,并把此值作为模型效果的评价指标。

6)其中训练联合评分预测模型的步骤如下:

6.1随机把数据分为三部分,比例为8∶1∶1,一部分为训练集,其它两部分为测试集和验证集

6.2对训练集构造商品属性和用户共同购买信息的异质信息网络,对训练集中的评论信息进行预处理。使用metapath2vec++初始化异质网络中每个点的向量表示。

6.3将评论数据送入主题模型中进行提取,通过cnn卷积提取异质信息网络中元路径信息。然后把数据向量连接起来,直接送入到afm中实现评分预测。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1