一种基于深度对齐矩阵分解模型进行学术论文推荐的方法与流程

文档序号:15851341发布日期:2018-11-07 10:00阅读:195来源:国知局
一种基于深度对齐矩阵分解模型进行学术论文推荐的方法与流程
本发明涉及一种基于深度对齐矩阵分解模型进行学术论文推荐的方法。
背景技术
目前,随着互联网的发展,网上充斥着大量的学术论文,导致研究者们面临严重的信息过剩的问题。据估计,截至2014年,网上已经有几百亿的学术论文了,而且还在以每天6,000多篇的数量增长。如何能帮助研究者用户们快速的从如此大量的论文库中找到他们可能感兴趣的文章,成为人们关注的问题。当前大多数相关工作采用基于关键词检索的方法,将学术论文当作普通的一些网页处理。然而这些方法既忽略了论文本身的结构化特征,也没有针对用户进行个性化建模。近年来,随着如mendeley、citeulike等社交网络的兴起,提供了大量的“用户-论文”交互信息。例如:citeulike网站上,用户可以创建他们自己的图书馆用来存放他们喜欢论文。有了这些数据,可以使用学术论文推荐算法处理论文数量过多、信息过剩的问题。现有的一些工作,主要利用“用户-论文”交互信息,基于假设“对于相似的论文,用户倾向于给出相似的打分”,使用基于协同过滤的推荐算法解决学术论文推荐问题。在众多的基于协同过滤的方法中,矩阵分解是一种比较成功的方法,并被广泛使用在很多推荐领域如“电影推荐”、“社交网络推荐”等。基于矩阵分解的协同过滤方法的主要思想是将“用户-项目”打分矩阵分解到低维空间,然后在低维空间上通过相似度计算进行推荐。然而仅仅使用“用户-论文”交互信息的协同过滤方法会面临冷启动的问题,即一篇未被打分过的新论文不会被考虑推荐用户。因此,当前已经有一些工作探索如何能在协同过滤的基础上,使用“论文本身的文本内容”作为辅助信息,进行更好的推荐。例如:协同话题回归模型(collaborativetopicregressionmodel,简称ctr)、协同深度学习模型(collaborativedeeplearningmodel,简称cdl)。ctr将潜在狄利克雷分配(latentdirichletallocation,简称lda)文本处理模型和概率协同过滤模型(probabilisticmatrixfactorization,简称pmf)结合在一起,做混合推荐。然而,当论文文本信息稀疏时,lda的表现不是很好。因此,cdl在ctr的基础上,代替lda,进一步使用深度学习方法多层降噪自动编码机stackeddenoisingautoencoders,简称sdae)模型处理文本内容,并和pmf结合起来做混合推荐。上述的混合方法是利用论文的文本内容解决协同过滤方法中的冷启动问题,而对“用户-论文”打分矩阵稀疏问题,没有大的改善。另外,它们对两种数据源信息的融合方法是直接将辅助的文本信息直接“加和”到协同过滤的过程中,这种处理方式显然太粗糙,对两种数据源的融合并不是很深入。于是,本发明希望找到一种新的混合推荐模型,能够在使用“用户-论文交互信息”的协同过滤方法基础上,更好的利用“论文本身的文本内容”这种辅助信息解决交互数据稀疏以及论文冷启动的问题,进行更好的学术论文推荐。技术实现要素:发明目的:为了克服现有协同过滤推荐方法中“用户-论文交互数据稀疏”以及论文冷启动的问题,本发明使用了一种新型的混合推荐算法,将论文的文本内容加入到基于协同过滤推荐的算法中,同时使用“用户-论文交互”以及“论文的文本内容”两种数据源的信息,向用户推荐其感兴趣的学术论文。本发明提供了一种基于深度对齐矩阵分解模型进行学术论文推荐的方法,分别对两种数据源“用户-论文交互”信息、“论文文本内容”信息,构造两个多层感知器;因为两个感知器分别会为同一篇论文学习到一种向量表示,本发明通过最大化这两种论文表示之间的相似度,在两个多层感知器之间搭建起一座“桥梁”,由此获得一个深度对齐模型;通过训练这个模型,可以使得这两种数据源同时为学术论文推荐做贡献,具体步骤如下:包括如下步骤:步骤1,构建论文与用户输入矩阵u、论文与单词输入矩阵p;步骤2,通过第一个非线性多层感知器对输入矩阵u做矩阵分解,将用户和论文映射同一个低维空间上,分别得到用户的低维表示向量vu和论文的低维表示向量vp;通过第二个非线性多层感知器对输入矩阵p做矩阵分解,将论文和单词映射同一个低维空间上,分别得到论文的低维表示向量v’p和单词的低维表示向量vz;步骤3,轮流训练第一个非线性多层感知器和第二个非线性多层感知器,且在每个非线性多层感知器的损失函数中,加入最大化论文的两种表示vp和v’p之间的相似度作为约束;步骤4,根据每个用户的低维表示向量vu和候选论文表示(vp+v’p)之间的内积值,给用户推荐论文。步骤1包括如下步骤:步骤1-1,每一个用户由唯一的用户id标识,每一篇论文由唯一的论文id标识,每一个用户拥有一个在线收藏夹,其中存放着其感兴趣的论文;由用户的在线收藏夹构建论文与用户输入矩阵u:如果论文i在用户j的在线收藏夹中,则矩阵u的第i行第j列值uij为1,否则为0;步骤1-2,论文的文本内容包括论文的标题和摘要,对每篇论文处理得到该论文的关键词列表,所有论文的关键词列表一起构成关键词词典,从而构建论文与单词输入矩阵p:如果单词k在论文i中,则矩阵p的第i行第k列值pik为1,否则为0。步骤1-2中,采用如下方法对每篇论文处理得到该论文的关键词列表:对论文中的每个单词求其tfidf值(参照文献sparckjonesk.documentretrievalsystems[c/ol]//willettp..london,uk,uk:taylorgrahampublishing,1988:132–142.),然后对所有的单词按照其tfidf值的大小降序排序,选择tfidf值前10的单词作为关键词列表返回。步骤2包括如下步骤:步骤2-1,从论文与用户输入矩阵u中,分别得到论文pi和用户uj的原始表示为矩阵u第i行数据组成的向量ui*和第j列数据组成的向量u*j;从论文与单词输入矩阵p中,分别得到论文pi和单词zk的原始表示为第i行数据组成的向量pi*和第k列数据组成的向量p*k;步骤2-2,经过非线性多层感知器的每一层,输入向量都会被映射到新的语义空间上的向量,形式化定义两个非线性多层感知器:用x表示输入向量,y表示输出向量,li(i=1,2,3,...,n-1)表示第i个中间的隐层(参照文献:xueh,daix,zhangj,etal.deepmatrixfactorizationmodelsforrecommendersystems[c/ol]//proceedingsofthetwenty-sixthinternationaljointconferenceonartificialintelligence,ijcai-17.2017:3203–3209,),使用均值为0,方差为0.1的正态分布随机构造并初始化n个权重矩阵w1,wi-1......wn,使用均值为0,方差为0.1的正态分布生成n个随机常数值b1,bi-1......bn,wn表示第n个权重矩阵,bn表示第n个常数值,公式f()表示感知器每一层的激活函数,f的具体的定义如步骤2-3、2-4所示,则:步骤2-3,对于第一个非线性多层感知器中的每一层的激活函数f,使用relu:f(x)=max(0,x),以u作为输入,获取用户uj的在输出层低维空间的向量表示和论文pi的在输出层低维空间的向量表示步骤2-4,对于第二个非线性多层感知器中的每一层的激活函数f,使用relu:f(x)=max(0,x),以p作为输入,获取论文pi的在输出层低维空间的向量表示和单词zk的在输出层低维空间的向量表示步骤2-5,获得在最后一个隐层语义空间上对uij的预测值和pik的预测值由此获得了预测矩阵和预测矩阵预测矩阵的第i行第j列值为预测矩阵的第i行第k列值为步骤2-6,选择交叉熵crossentropy作为目标函数来衡量u和的差异以及p和之间的差异,因为计算得到的预测值和可能是负数,对预测值和做如下处理:步骤2-7,分别为第一个非线性多层感知器定义目标函数jpu,为第二个非线性多层感知器定义目标函数jpz:其中,使用矩阵u中第i行第j列的值uij为1的行号和列号,组成二元组(论文i,用户j)作为正样本,构造正样本集u+;从所有的uij值为0数据集合中,随机选择3*|u+|个二元组(论文i,用户j)构成负样本集u-;其中,论文i原始表示为矩阵u的第i行数据组成的向量ui*,用户j原始表示为矩阵u的第j列数据组成的向量u*j;从矩阵p中抽取所有第i行第k列的值pik为1的行号和列号组成的二元组(论文i,单词k)作为正样本,构造正样本集p+;从所有的值为0数据集合中,随机选择n*|p+|个二元组(论文i,单词k)构成负样本集p-;其中,论文i原始表示为矩阵p的第i行数据组成的向量pi*,单词k的原始表示为矩阵p的第列数据组成的向量p*k;步骤2-3中,通过下面的公式获取用户uj的在输出层低维空间的向量表示和论文pi的在输出层低维空间的向量表示其中ut表示矩阵u的转置;参照文献:xueh,daix,zhangj,etal.deepmatrixfactorizationmodelsforrecommendersystems[c/ol]//proceedingsofthetwenty-sixthinternationaljointconferenceonartificialintelligence,ijcai-17.2017:3203–3209,针对矩阵u,使用正态分布(均值为0,方差为0.1)随机初始化若干个权重矩阵表示矩阵u的第n个权重矩阵;针对矩阵ut,使用正态分布(均值为0,方差为0.1)随机初始化若干个权重矩阵n代表多层感知器的层数,本发明中设置为2。表示矩阵ut的第n个权重矩阵。步骤2-4中,通过下面的公式获取论文pi的在输出层低维空间的向量表示和单词zk的在输出层低维空间的向量表示其中pt表示矩阵p的转置;参照文献:xueh,daix,zhangj,etal.deepmatrixfactorizationmodelsforrecommendersystems[c/ol]//proceedingsofthetwenty-sixthinternationaljointconferenceonartificialintelligence,ijcai-17.2017:3203–3209,针对矩阵p,使用正态分布(均值为0,方差为0.1)随机初始化n个权重矩阵表示矩阵p的第1个权重矩阵;针对矩阵pt,使用正态分布(均值为0,方差为0.1)随机初始化n个权重矩阵n代表多层感知器的层数,本发明中设置为2。表示矩阵pt的第一个权重矩阵。步骤2-5中,通过下面的公式获取在最后一个隐层语义空间上对uij的预测值和pik的预测值步骤3包括如下步骤:步骤3-1,训练第一个非线性多层感知器时,使用论文单词部分第二个非线性多层感知器学习得到的论文表示进行约束,其目标损失函数loss1如下:其中,是第一个非线性多层感知器中的权重矩阵,λ1和λ2是常数参数,本发明设置参数为:λ1=0.99,λ2=0.01;通过最小化损失函数loss1,训练第一个非线性多层感知器,更新权重矩阵的值;步骤3-2,训练第二个非线性多层感知器时,使用用户论文部分的第二个非线性多层感知器学到的论文表示进行约束,其目标损失函数loss2如下:其中,是第二个非线性多层感知器中的权重矩阵,λ1和λ2是常数参数,本发明设置参数为:λ1=0.99,λ2=0.01;通过最小化损失函数loss2,训练第二个非线性多层感知器,更新权重矩阵的值;步骤3-3,轮流执行步骤3-1和步骤3-2,直到第一个非线性多层感知器和第二个非线性多层感知器都达到收敛状态。步骤4包括如下步骤:步骤4-1,输入测试数据集,数据集中包括很多用户u,每个用户ui都对应若干篇(参照文献:hex,liaol,zhangh,etal.neuralcollaborativefiltering[c/ol]//www’17:proceedingsofthe26thinternationalconferenceonworldwideweb.republicandcantonofgeneva,switzerland:internationalworldwidewebconferencessteeringcommittee,2017:173–182.,选为100篇)待推荐的论文;对于测试数据集中的每个用户uj,使用第一个非线性多层感知器,学习得到用户的隐层表示vuj;步骤4-2,对于测试数据集合中的论文,使用第一个非线性多层感知器和第二个非线性多层感知器,分别学习到每个论文的两种隐层向量表示vpi和v’pi,用它们的和(vpi+v’pi)作为论文新的隐层向量表示;步骤4-3,计算用户隐层表示vuj和各个论文新的隐层向量表示(vpi+v’pi)之间的内积,作为用户uj对论文pi的预测打分,根据这些打分对论文进行排序,挑选出前面(参照文献:hex,liaol,zhangh,etal.neuralcollaborativefiltering[c/ol]//www’17:proceedingsofthe26thinternationalconferenceonworldwideweb.republicandcantonofgeneva,switzerland:internationalworldwidewebconferencessteeringcommittee,2017:173–182.,设置k为10)篇论文推荐给用户uj。按照步骤4-3-1对推荐结果进行评测;步骤4-3-1,使用命中率(hitratio,简称hr)以及归一化累积获得折扣(normalizeddiscountedcumulativegain,简称ndcg)作为衡量推荐效果好坏的评测指标:hr@k表示用户推荐的前k篇论文中,是否存在用户测试集中正样本的论文,存在则hr@k值为1,否则为0;ndcg@k表示给用户推荐的前k篇论文的质量,ndcg@k值越高,则推荐的这k篇文章质量越高;具体的ndcg@k计算如下,其中是正则化项,给用户推荐的k篇文章中第i篇文章是用户测试集中的正样本时ri为1,否则ri为0:本发明提出一种新的深度对齐矩阵分解模型,并基于这种模型完成学术论文推荐。通过两个多层感知器,分别将用户和论文,论文和单词映射到相同维度的低维特征空间;然后通过最大化该低维下同一论文的两种表示之间的相似度,在两种信息源之间搭建起来一个“桥梁”;轮流训练这两个感知器,且在训练每一个感知器时,都使用论文两种表示之间的相似度作为约束,从而可以引入并使用另外一个数据源的信息,从而能够拉近两种数据源之间的距离,使它们能够共同为学术论文推荐做贡献。有益效果:本发明同时利用“用户-论文”交互信息以及论文的文本信息,提出了一个新的基于深度对齐模型进行学术论文推荐的算法。相较于现有的基于关键词的学术引擎,本发明利用了“用户-论文”交互信息,能够更好的给用户进行个性化推荐;相较于当前的一些基于协同过滤的推荐算法,本发明增加使用了论文的文本内容信息,缓解了协同过滤推荐算法面临的冷启动问题;相较于现有的一些混合学术论文推荐方法如ctr和cdl,本发明利用两个对齐的多层感知器做深度矩阵分解,更好的融合了两种数据源,缓解了“用户-论文”交互数据稀疏的问题。附图说明下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。图1是本发明的流程图;图2是本发明提出的深度对齐矩阵分解模型的体系结构图。具体实施方式下面结合附图及实施例对本发明做进一步说明。本发明提出了一种新的深度对齐矩阵分解模型,并基于这种模型完成学术论文推荐。具体的深度矩阵分解模型体系结构如图1所示:首先通过两个非线性多层感知器,分别将用户和论文,论文和单词映射到相同维度的低维特征空间;然后通过最大化该维度下同一论文的两种表示之间的相似度,在两个感知器之间搭建起来一个“桥梁”;在每一个感知器中,都加入论文两种表示之间的相似度约束,从而引入另一种数据源的信息;通过轮流训练这两个感知器,可以融合两种数据源,使它们能够共同为学术论文推荐做贡献。本发明所述基于深度对齐矩阵分解模型进行学术论文推荐的步骤如下:步骤1,人工定义一些超参:u:“论文-用户”原始输入矩阵p:“论文-单词”原始输入矩阵n:多层感知器的层数,本发明中设置为2m:轮流训练中每一批次(batch)的大小,本发明中设置为128;n:负采样的比率,本发明中设置为3;步骤2,构造测试集{用户:[论文]}和两个输入矩阵:首先按照步骤2-1构造用户的测试集收藏夹和训练集收藏夹;然后使用训练集收藏夹由步骤2-2构造“论文-用户”训练矩阵u和“论文-单词”矩阵p;使用矩阵u和矩阵p作为输入,按照体系结构图2所示,训练整个模型;步骤2-1:对每个用户,从其收藏夹中随机选取一篇论文作为测试集中的正样本,该用户收藏夹中剩下的所有论文组成训练集收藏夹;从用户的收藏夹之外的所有论文集中随机选取99篇论文作为负样本,连同测试集中的正样本一起作为该用户的测试集收藏夹;步骤2-2:由训练集收藏夹构造“论文-用户”训练矩阵u和“论文-单词”矩阵p:如果论文i在用户j的收藏夹中,则矩阵u的第i行j列值uij为1,否则为0;如果论文i中存在单词k,则矩阵p的第i行k列值pik为1,否则为0;步骤3,使用矩阵u中第i行第j列的值uij为1的行号和列号,组成二元组(论文i,用户j)作为正样本,构造正样本集u+;从所有的uij值为0数据集合中,随机选择3*|u+|个二元组(论文i,用户j)构成负样本集u-;其中,如图2所示,论文i原始表示为矩阵u的第i行数据组成的向量ui*,用户j原始表示为矩阵u的第j列数据组成的向量u*j;从矩阵p中抽取所有第i行第k列的值pik为1的行号和列号组成的二元组(论文i,单词k)作为正样本,构造正样本集p+;从所有的值为0数据集合中,随机选择n*|p+|个二元组(论文i,单词k)构成负样本集p-;其中,如图2所示,论文i原始表示为矩阵p的第i行数据组成的向量pi*,单词k的原始表示为矩阵p的第列数据组成的向量p*k;步骤4,参照文献:xueh,daix,zhangj,etal.deepmatrixfactorizationmodelsforrecommendersystems[c/ol]//proceedingsofthetwenty-sixthinternationaljointconferenceonartificialintelligence,ijcai-17.2017:3203–3209,使用正态分布(均值为0,标准差为0.1)随机初始化图1中两个多层感知器中的各个参数:步骤5,从u+,u-集合中选择m个二元组(论文i,用户j);对每一个二元组和其打分uij,按照如下步骤处理:步骤5-1,使用下面公式计算论文i和用户j的最终向量表示,其中f为激活函数relu(f(x)=max(0,x)):步骤5-2,使用如下公式可以计算得出,用户j和论文i之间的预测评分值:步骤6,对这m个二元组,使用下面公式可以计算得到“论文-用户”部分的第一个非线性多层感知器的平均训练损失loss1;loss1中λ1和λ2都是人为设置的常数参数,使用后向传播梯度下降方法(参照文献:rumelhartd,mcclellandj.learninginternalrepresentationsbyerrorpropagation[m]//neurocomputing:foundationsofresearch.mitpress,1988:318-362.),最小化该多层感知器的损失loss1,更新参数步骤7,从p+,p-集合中选择m个二元组(论文i,单词k);对每一个二元组及其打分pik,按照如下步骤处理:步骤7-1,使用下面公式计算论文i和单词k的最终向量表示:步骤7-2,使用如下公式可以计算得出,论文i和单词k之间的预测评分值:步骤8,对m个二元组,使用下面公式可以计算得到“论文-单词”部分的第二个非线性多层感知器的平均训练损失loss2;loss2中λ1和λ2都是人为设置的常数参数,使用后向传播梯度下降方法,最小化该部分损失loss2,更新权重矩阵步骤9,轮流训练步骤5~步骤8,直到遍历完所有的“论文-用户”样本数据u+∪u-以及“论文-单词”样本数据p+∪p-。步骤10-1,对于测试数据集中的每个用户uj,使用第一个非线性多层感知器模型,学习得到用户的隐层表示vuj;步骤10-2,同时对于测试数据集合中的论文,使用非线性多层感知器模型1和非线性多层感知器模型2,学习到每个论文的两种隐层向量表示vpi和v’pi,用它们的和作为论文新的隐层向量表示;步骤10-3,计算用户向量vuj和各个论文表示(vpi+v’pi)之间的内积,作为用户uj对论文pi的预测打分,对这些打分对论文进行排序,挑选出前面k篇(参照文献:hex,liaol,zhangh,etal.neuralcollaborativefiltering[c/ol]//www’17:proceedingsofthe26thinternationalconferenceonworldwideweb.republicandcantonofgeneva,switzerland:internationalworldwidewebconferencessteeringcommittee,2017:173–182.,k设置为10)论文推荐给用户uj。步骤10-4,对推荐结果进行评测。计算命中率(hitratio,简称hr)以及归一化累积获得折扣(normalizeddiscountedcumulativegain,简称ndcg)作为衡量推荐效果好坏的指标:hr@k表示用户推荐的前k篇论文中,是否存在用户测试集中正样本的论文,存在则hr@k值为1,否则为0;其中ri表示给用户推荐的前k篇论文中,用户测试集中正样本论文的排名位置;实施例本实施例所有的步骤均运行ubuntu14.04平台,使用python语言,tensorflow1.2gpu版本库,分别在两个学术论文推荐领域内数据集citeulike-a、citeulike-t上进行实验。实验配置为:操作系统ubuntu14.04,内存32g,4块titansx显卡。实验数据准备如下:本发明使用分别由两个研究组整理的两个数据集citeulike-a和citeulike-t。它们的统计信息如表1所示。这两个数据集都是从学术社交网站citeulike中整理得到的。这个网站允许每个研究者用户创建他们个人的在线图书馆,里面存放他们感兴趣的论文,且每篇论文都内容包括其标题和摘要等文本信息。构建“论文-用户交互”矩阵时,citeulike-a只保留收藏论文个数超过10篇的用户,而citeulike-t保留收藏超过3篇论文的用户;因此citeulike-t的u矩阵比citeulike-a的u矩阵更大也更为稀疏。构建“论文-单词”矩阵p时,citeulike-a去除停用词,并根据tfidf值(参照文献sparckjonesk.documentretrievalsystems[c/ol]//willettp..london,uk,uk:taylorgrahampublishing,1988:132–142.)从每篇文章中选取较大的一些词,总共组成了8,000个单词量,而citeulike-t用同样的方法删选出来20,000单词量的词汇。表1数据集用户论文用户论文矩阵密度词汇量论文平均单词量citeulike-a5,55116,9800.22%8,00066.6citeulike-t7,94728,9750.07%20,00018.8本发明的目的是为了同时利用“用户-论文”交互信息以及论文的文本信息,能够更好的给用户进行个性化学术论文推荐;相较于当前的一些基于协同过滤的推荐算法,本发明增加使用了论文的文本内容信息,弥补了协同过滤推荐算法面临的冷启动问题;相较于现有的一些混合学术论文推荐方法如ctr和cdl,本发明利用两个对齐的多层感知器做深度矩阵分解,更好的融合两种数据源的数据,并通过深度矩阵分解模型缓解了“用户-论文”交互数据稀疏的问题。为了验证本发明的有效性,本发明与1)经典的基于协同过滤的推荐算法svd;2)当前最好的基于协同过滤的推荐算法dmf;3)该领域现有的一些混合学术论文推荐方法如ctr和cdl做比较。比较的衡量指标是命中率(hr)和ndcg,如表2所示,为两个数据集上各方法的推荐结果的hr和ndcg对比:表2可以看出在hr和ndcg两种衡量指标下,本发明不仅比现有的基于协同过滤的推荐方法svd、dmf表现要好,同时也要比现有的两种混合方法ctr和cdl表现优秀。另外,本发明在数据集稀疏时(citeulike-t),相对于其他方法,表现尤为突出,这证实了本发明确实可以缓解数据稀疏的问题。本发明提出了一种新的深度对齐矩阵分解模型,并基于这种模型完成学术论文推荐。通过两个非线性多层感知器,分别将用户和论文,论文和词映射到相同维度的低维特征空间;然后通过最大化该维度下同一论文的两种表示之间的相似度,在两种信息源之间搭建起来一个“桥梁”;在训练每一个感知器时,都使用论文两种表示之间的相似度作为约束,从而引入另一个数据源的信息;通过轮流训练这两个感知器,拉近两种数据源之间的距离,使它们能够共同为学术论文推荐做贡献。本发明提供了一种基于深度对齐矩阵分解模型进行学术论文推荐的方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明在python语言、tensorflow的平台上优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1