CN110781401A - 一种基于协同自回归流实现的Top-n项目推荐方法 - Google Patents
一种基于协同自回归流实现的Top-n项目推荐方法 Download PDFInfo
- Publication number
- CN110781401A CN110781401A CN201911079406.2A CN201911079406A CN110781401A CN 110781401 A CN110781401 A CN 110781401A CN 201911079406 A CN201911079406 A CN 201911079406A CN 110781401 A CN110781401 A CN 110781401A
- Authority
- CN
- China
- Prior art keywords
- user
- project
- distribution
- item
- items
- 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.)
- Pending
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种利用协同自回归流(CAF)实现的项目推荐方法,将基于自回归流的生成模型扩展到协同过滤技术,用于建模隐式反馈。CAF通过一系列可逆变换将简单的初始密度转换为更复杂的符合数据真实分布的密度,挖掘用户访问过的项目以及用户和项目的属性特征中存在的潜在信息,从而能够学习到更有表示能力的用户潜在表示和项目潜在表示,稳定有效地为用户推荐下一次最有可能访问的项目。此外,本发明在模型中加入了协同自回归流去学习隐含变量的真实分布,这可以减小传统的变分模型(比如VAE)在基于会话的推荐问题中的误差。
Description
技术领域
本发明属于机器学习中的神经网络领域,是一种基于深度学习的方法,主要利用自回归流(Autoregressive Flow)去挖掘用户访问过的项目以及用户和项目的属性特征中存在的潜在信息,学习用户和项目的潜在表示,并在此基础上利用协同过滤(Collaborative Filtering)技术给用户推荐n个最有可能访问的项目。
背景技术
随着互联网技术的快速发展,人们的生活越来越离不开网络,随之出现的便是海量的用户项目交互数据。我们利用这些数据的属性特征,研究用户与项目的交互行为,分析用户的喜好,并向用户呈现他们可能喜欢但是没有访问过的项目,以此来促进个性化的项目推荐,从而能够有效缓解互联网信息过载的问题。
传统的协同过滤方法通过矩阵分解(Matrix Factorization)利用用户对项目的评分矩阵来预测用户的喜好。这种方法没有考虑用户以及项目的属性信息,只能简单的模拟用户与项目交互的线性关系,无法提取用户与项目交互的复杂关系,导致模型推荐性能不好。还有一类方法结合传统的贝叶斯推理技术和不确定性表示去学习用户与项目之间的稀疏隐式反馈和辅助信息的复杂交互。这类方法通常需要假设真实数据的后验分布为高斯分布,然而真实世界的数据并不一定服从这种分布形式。因此,这种假设会使得模型不够灵活,无法与推荐的真实后验分布和不确定性相匹配,容易导致推荐错误。
基于上述问题,本发明提出一种基于深度学习方法,利用两个变分自动编码器分别对用户和项目进行建模,并在对用户和项目嵌入向量表示进行编码得到用户和项目的潜在表示过程中加入协同自回归流,从而解决传统项目推荐方法中由于无法模拟用户和项目之间的非线***互以及模型不够灵活导致的推荐准确率不高、推荐效率低等问题。
发明内容
本发明的目的旨在针对传统项目推荐方法存在的推荐准确率不高、推荐性能低等技术不足的现状,提出一种基于协同自回归流的表示方法,实现了对用户最有可能访问项目的准确、高效预测,解决了现有模型推荐效果不好的问题。
本发明的思路为,根据用户访问项目的情况,将用户和项目表示成嵌入向量,再利用两个变分自动编码器(Variational Autoencoder,VAE)对用户和项目的嵌入向量进行学习,从而得到用户和项目的潜在表示。此外,本发明在得到用户与项目的潜在表示过程中,加入了变分推断的过程,利用协同自回归流灵活地模拟用户和项目的非线***互,学习用户和项目数据的真实分布,这样很大程度能够避免直接使用变分自编码器的误差,从而达到更好的项目推荐效果。
基于上述发明思路,本发明设计了一种利用协同自回归流实现的项目推荐方法,其具体包括以下步骤:
S1,数据的预处理:根据原始数据中用户历史访问项目的情况,将数据集划分成训练集,验证集和测试集;再根据训练集中用户访问项目的情况构建一个项目标签矩阵R;再对训练集中的每一个用户和每一个项目进行嵌入,得到用户嵌入向量矩阵U和项目嵌入向量矩阵V;
S2,优化模型参数,获取最优项目推荐模型:将用户嵌入向量矩阵U和项目嵌入向量矩阵V分别输入到不同的变分自动编码器中,在编码过程中引入协同自回归流,得到的用户和项目的最终隐含变量表示矩阵和然后让用户和项目的最终隐含变量表示与其相对应的协同信息相结合得到用户和项目的最终潜在表示矩阵U′和V′,接着将用户和项目的最终潜在表示的矢量积输入到一个分类器中,得到第一损失,再将用户和项目的最终隐含变量表示输入到一个解码器中得到第二损失,将第一损失与第二损失相加生成最后的总损失,然后最小化总损失,即得到所述的项目推荐模型;
S3,给用户推荐项目:利用上述训练好的项目推荐模型,给用户做Top-n项目推荐。
上述利用协同自回归流实现的项目推荐模型训练方法,步骤S1的目的在于处理原始数据集,划分训练集,验证集和测试集,再将训练集中所有的用户和项目进行嵌入,具体包括以下分步骤:
S11,划分数据集:根据原始数据集中用户访问项目的情况,从每一个用户历史访问过的项目中随机选择70%作为训练集,选择20%作为测试集,剩下的10%作为验证集;
S12,根据训练集中用户访问项目的情况构建用户嵌入向量矩阵U和项目嵌入向量矩阵V以及项目标签矩阵R,具体包括以下步骤:
S121,构建用户嵌入向量矩阵U:将训练集中所有用户Us={u1,…,ui,…,uM}表示为嵌入向量,根据用户对项目的偏好初始化一个用户嵌入向量矩阵 其中M表示用户的数量,N表示项目的数量,uij表示用户嵌入向量矩阵中的元素,如果用户ui访问过项目vj,则uij=1,否则标记为0,用户嵌入向量矩阵U中的第i行表示用户ui的嵌入向量ui;
S122,构建项目嵌入向量矩V:将训练集中所有项目Vs={v1,…,vj,…,vN}表示为嵌入向量,项目嵌入向量矩阵为用户嵌入向量矩阵的转置,即V=UT,项目嵌入向量矩阵V中的第j行表示项目vj的嵌入向量vj;
上述利用协同自回归流实现的项目推荐模型训练方法,步骤S2的目的在于,将步骤S1中得到的用户嵌入变量矩阵U和项目嵌入变量矩阵V输入到两个引入了协同自回归流的变分自动编码器中,得到用户和项目的最终隐含变量表示矩阵和进而得到用户和项目的最终潜在表示矩阵U′和V′。接着构建第一损失和第二损失,最小化两个损失之和,得到最优的项目推荐模型。该步骤具体包括以下分步骤:
本步骤利用编码器(多层感知机)对表示成用户和项目的嵌入向量进行编码,每一层的计算过程如下:
……
上式中,t表示多层感知机的层数,在本发明中t=3,通过最后一层的结果和分别计算用户和项目的初始隐含变量表示和 和均服从高斯分布,其中用户初始隐含变量表示分布的均值为方差为则对于项目初始隐含变量表示其均值方差通过项目的均值和方差得到编码器每一层的计算过程中,表示非线性的激活函数,常见的有sigmoid或tanh,本发明中选取sigmoid作为激活函数,和分别表示用户嵌入向量和项目嵌入向量经过第t层神经网络得到的隐藏状态表示,矩阵和偏差向量均为用户编码器的训练参数,其中上标t表示这是经过第t层神经网络的参数,而 是求用户初始隐含变量表示分布时需要学习的参数;矩阵 以及偏差向量为项目编码器的训练参数,上标t表示这是经过第t层神经网络的参数,是求项目初始隐含变量表示分布时需要学习的参数;和都是用于随机采样的标准正态分布的变量;
S22,定义K个可逆自回归流,将上一步得到的用户初始隐含变量表示和项目初始隐含变量表示输入这K个自回归流中进行可逆变换,学习得到用户和项目的最终隐含变量表示和使其分布更接近于真实的潜在层数据分布。学习和分布的过程如下(由于用户和项目的最终隐含变量表示的学习过程是一致的,因此我们此处省略下标ui和vj,用统一的符号z0和zK去表示初始隐含变量表示和最终隐含变量表示):
求用户和项目的最终隐含变量表示的过程,包括以下分步骤:
S221,求目标分布p(zk):在得到最终隐含变量表示的过程中,我们首先得到zk的d个维度,其中的k看作是经过第k个流,zk中的第i个维度是以zk-1的前i-1维为条件的,根据其分布为p(zk-1),计算zk的d个维度,从而获得zk的分布p(zk),
上式中,M(·)和S(·)分别是求均值和方差的神经网络,通过S22我们可以得到一个目标分布p(zk),由于生成目标分布的过程是基于p(zk-1)的已知概率密度分布,因此,对于GPU的并行化,该过程非常快。这一个过程主要是利用逆自回归流(InverseAutoregressive Flow,IAF)的思想,它是一种特殊的神经网络,可以同时输出均值和标准差的所有值,便于对μ1:i-1和σ1:i-1的采样;
上式中,M′(·)和S′(·)分别是使用掩模自回归流求均值和方差的特殊神经网络,在模型中充当的是可逆计算过程;
S223,通过步骤S221和S222得到两个基于不同条件的同一目标分布p(zk)和但是它们在模拟自回归流的过程中存在不同的偏差,为了利用两个输出分布来稳定训练过程,我们计算两个输出分布之间的KL散度,
上式中,uc和vc均从高斯分布中取得,分别表示用户和项目的协同信息,随着模型的优化,这两个向量也不断地被优化,最后可以很好的表示用户和项目的协同信息;
S24,不断重复步骤S21至S23,直到获取所有用户和项目的最终潜在表示,将所有用户和项目的最终潜在表示连接起来得到用户和项目的最终潜在表示矩阵U′和V′;
S25,构建两个损失函数L1和L2,将L1和L2加在一起生成最后的总损失L,并最小化这个总损失函数,完成对模型的训练,得到所述项目推荐模型。其中L1为预测项目与标签项目的交叉熵损失函数,L2用于让学习到的隐含变量分布更接近于真实分布的重构损失函数。该步骤具体包括以下分步骤:
S251,获取第一损失L1:将S24中得到的用户和项目的最终潜在表示矩阵U′和V′的矢量积输入到一个多层感知机组成的分类器中,输出用户访问每一个项目的概率矩阵,即看作是用户对所有项目的评分矩阵R′,再利用S1得到的项目标签矩阵R与预测评分矩阵R′求交叉熵损失,
上式中,r′ij表示用户ui访问项目vj的概率,将L1作为第一损失,M为用户总数,N为项目总数;
S252,获取第二损失L2:再将S23中得到的用户和项目最终隐含变量表示和输入到一个可逆的解码器中,构建用户和项目隐含变量的联合分布,让其与输入用户和项目数据的联合分布求相对熵,得到第二损失L2;(为了表述方便,在第二损失计算公式中,取消用户和项目的下标i和j)
通过用户后验分布q(zu|u)近似隐含变量zu的真实分布p(u,zu),q(zu|u)定义为同样的,用项目后验分布q(zv|v)近似隐含变量zv的真实分布p(v,zv),q(zv|v)定义为p(u,zu)和p(v,zv)表示用户和项目输入数据的真实分布,zu、zv表示协同自回归流模型中的隐含变量,u、v表示模型输入数据,θ、φ分别表示概率分布的参数,上式中和表示重构损失,和为常数项,剩下四项表示自回归流。对第二损失L2进行优化的过程中,实际上已经完成了对S223中的最小化,具体的推导过程参照以下论文:【van den Oord,A.,Li,Y.,Babuschkin,I.,Simonyan,K.,Vinyals,O.,Kavukcuoglu,K.,van den Driessche,”Parallel wavenet:Fast high-fidelity speech synthesis”】;
S253,将第一损失和第二损失加在一起生成最后的总损失L=L1+L2,并最小化这个总损失函数,完成对模型的训练,得到所述项目推荐模型。
上述利用协同自回归流实现的项目推荐模型训练方法,步骤S3的目的在于,利用S2训练好的项目推荐模型给用户进行个性化的项目推荐,包含以下步骤:
S31,根据S2训练好的模型,得到用户评分矩阵R′,再将用户在训练集中访问过的项目索引位置的评分置为0,例如用户ui在训练集中访问过项目vj,则将评分矩阵R′中对应的元素r′ij置为0,再将新的评分矩阵中的每一行按照评分高低进行排序得到矩阵R″;
S32,根据S31中得到的评分矩阵R″,选取R″中评分前n的项目作为最后给用户推荐的结果。
本发明提供的利用协同自回归流实现的项目推荐方法(CollaborationAutoregressive Filtering,CAF),将基于流的生成模型扩展到协同过滤技术上,用于建模隐式反馈。同时,结合用户和项目的辅助信息和协同信息,能够更好的学习用户和项目的潜在表示,而且能够通过自回归流学习隐含变量的真实分布,从而大大提高推荐性能。
本发明提供的利用协同自回归流实现的项目推荐方法。与现有技术相比,具有以下有益效果:
1、本发明利用两个变分自动编码器分别学习用户和项目的潜在变量表示,然后采用协同过滤技术给用户进行项目推荐。传统的方法很多都是利用用户项目矩阵来学习用户偏好,很少结合用户,项目,用户项目三个方面做推荐,这就使得传统的模型不能全面的捕捉用户项目的交互信息。
2、本发明在模型编码过程中加入了协同自回归流去学习隐含变量的真实分布,减小了传统的变分模型(比如VAE)在项目推荐问题中的误差;这是因为传统的VAE需要假设一个先验分布,而这个先验分布将带来很大的误差;正则化流则不用假设先验分布,使得学习到的分布更接近于隐含变量的真实分布。
3、本发明中的自回归流采用了可逆自回归流(Inverse Autoregressive Flow,IAF)和掩模自回归流(Masked Autoregressive Flow,MAF),能够有效的促进变分推断和数据采样的效率,缩小了隐含变量简单分布和具有复杂分布的实际数据之间的差距。
附图说明
图1为利用协同自回归流实现的项目推荐模型整体结构图。
图2为使用自回归流进行变分推断的过程。
图3为用户和项目最终潜在表示的可视化图谱。
图5为项目推荐模型(CAF)在不同数据集上的预测结果随着自回归流中的参数K变化示意图;(a)对应MovieLens数据集,(b)对应CiteULike数据集;(c)对应LastFM数据集,K可以理解为可逆函数(或称为自回归流)的个数。
图6为项目推荐模型(CAF)在不同数据及上的预测结果随训练轮数变化示意图。
术语解释
变分推断(variational inference):变分推断简单来说便是需要根据已有数据推断需要的分布p;当p不容易表达,不能直接求解时,可以尝试用变分推断的方法。即,寻找容易表达和求解的分布q,当q和p的差距很小的时候,q就可以作为p的近似分布代替p。整个过程会用到一个变分的自编码器(VAE)导出一个证据下界(ELBO),通过最大化证据下界来学习我们的近似分布q。
协同过滤(Collaborative Filtering):简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人透过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。协同过滤又可分为评比(rating)或者群体过滤(social filtering)。其后成为电子商务当中很重要的一环,即根据某顾客以往的购买行为以及从具有相似购买行为的顾客群的购买行为去推荐这个顾客其“可能喜欢的项目”,也就是借由社群的喜好提供个人化的信息、商品等的推荐服务。除了推荐之外,近年来也发展出数学运算让***自动计算喜好的强弱进而去芜存菁使得过滤的内容更有依据,也许不是百分之百完全准确,但由于加入了强弱的评比让这个概念的应用更为广泛,除了应用于电子商务之外还可应用于信息检索领域、网络个人影音柜、个人书架等领域。
具体实施方式
以下结合附图对本发明作进一步描述。
实施例利用协同自回归流实现的项目推荐模型训练
本实施例采用三个真实数据集MovieLens、CiteULike和LastFM(数据集可以分别从https://grouplens.org/datasets/movielens/1M/,http://www.citeulike.org/,http://www.lastfm.com/获得)作为研究对象,对本发明提供的项目推荐推荐模型训练方法进行详细的解释。
如图1所示,本实施例提供的利用协同自回归化流实现的项目推荐模型(CAF)主要由编码器、自回归流层、解码器、分类器构成,该项目推荐模型首先对数据进行预处理:对于MovieLens数据集我们将保留用户对电影的评分为1到5的数据,其他的数据删除;把CiteULike数据集中访问少于十篇文章的用户排除掉;对于LastFM数据集,我们保留所有的数据。
表1数据集的统计信息
本实施例中数据集的统计信息如表1所示,在三个实验数据集上划分训练集、验证集和测试集,对于每一个用户随机选择70%访问项目作为训练集,10%作为验证集,剩下的20%为测试集。
根据用户访问项目的情况构建一个项目标签矩阵R,再将输入数据中的每一个用户和每一个项目进行嵌入,得到用户嵌入向量矩阵U和项目嵌入向量矩阵V;
构建好训练数据集后,本实施例采用训练集中的数据按照步骤S2训练得到三个项目推荐模型,验证集主要用于调参,测试集用于后面的测试效果讨论。
如附图1所示,首先将用户嵌入向量矩阵U和项目嵌入向量矩阵V输入到步骤S2,首先根据S21中多层感知机网络编码获得每一个用户和每一个项目的隐含变量和如附图2所示,为了得到用户和项目最终隐含变量表示和将S21中编码器的输出和带入到步骤S22中,经过K个可逆自回归流的变换,得到和然后再根据S23将和与服从高斯分布的用户和项目协同信息结合得到用户和项目的最终潜在表示,随着模型的不断更新,用户和项目的潜在表示不断被优化,从而得到用户和项目的最终潜在表示ui′和vj′,重复步骤S2直到模型收敛,最终得到所有用户和所有项目的潜在表示U′和V′。
如附图1中解码器和分类器部分所示,将S23得到的用户和项目最终潜在表示矩阵U′和V′的矢量积输入到步骤S25的分类器中得到由项目标签矩阵R和预测评分矩阵R′计算交叉熵的第一损失;再将S23中得到的最终用户和项目隐含变量和输入到S25的可逆解码器中,构建用户和项目隐含变量的联合分布,根据L2求第二损失;将第一损失和第二损失联合起来求总损失L,并最小化L,完成对模型的训练,得到所述的项目推荐模型。
应用例
针对三个实验数据集的测试集,分别采用实施例训练得到的项目推荐模型按照以下步骤执行项目推荐:
S1′,根据训练好的模型CAF,得到用户评分矩阵R′,再将这个评分矩阵中用户训练集中访问过的项目索引位置的值置为0,对新得到的评分矩阵按评分高低进行排序得到一个有序的评分矩阵R″。
S2′,获取用户预测项目,本步骤采用评分矩阵法,根据步骤S1′得到的用户评分矩阵R″给每一个用户进行项目推荐,选取R″中评分前n(n=5,10,20,50)的项目作为最后给用户推荐的结果,如果这n个项目中存在测试数据中用户真实的标签项目,则认为此次预测正确,在实际应用中,每次给用户推荐n个项目,如果里面有用户感兴趣的,则推荐成功。这样在得到推荐项目的同时,能够进一步提高项目推荐的精确度和效率。
采用上述项目推荐模型(CAF)在测试集上的预测效果见表2加粗部分所示。
表2:在三个数据集上进行项目推荐模型结果
为了进一步说明本发明提供的利用协同自回归流实现的项目推荐方法的预测效果。本应用例用三个实验数据集在七种基线方法(BPR、CDL、CVAE、CVAE-B、MVAE、VAE-AR、CLVAES)上训练得到项目推荐模型,然后利用这七种模型在测试集中给用户推荐接下来最有可能访问的n个项目,这七种模型的预测结果见表2所示。其中的指标R@n表示在测试用例中,预测正确的项目个数占真实的项目个数的比例,即召回率;P@n表示在测试集中,预测正确的项目个数占预测的项目个数的比例,即精确率。
对表格中其余方法的介绍如下:
BPR:是一种广泛使用的矩阵分解方法,它通过随机梯度下降使用成对排序目标函数利用隐式反馈优化潜在因子。可以参考论文:S.Rendle,C.Freudenthaler,Z.Gantner,and L.Schmidt-Thieme.2009.Bpr:Bayesian personalized ranking from implicitfeedback.In UAI.
CDL:是一种联合贝叶斯模型学习辅助信息,并通过堆叠去噪自动编码器和协同过滤提取潜在特征。可以参考论文:P.Wang,J.Guo,Y.Lan,J.Xu,S.Wan,andX.Cheng.2015.Learning hierarchical representation model for nextbasketrecommendation.In SIGIR.
CVAE:是第一个基于变分自动编码器的协同项目推荐方法,它将项目中的内容信息合并到矩阵分解中(结合BPR模型来改进CVAE以提高模型的推荐的方法为表2中的CVAE-B)。CVAE模型可以参考论文:X.Li and J.She.2017.Collaborative variationalautoencoder for recommender systems.In KDD.
MVAE:使用多项式条件似然作为先验分布,并且它没有包含辅助信息用于推荐。可以参考论文:D.Liang,R.G.Krishnan,M.D.Hoffman,and T.Jebara.2018.Variationalautoencoders for collaborative filtering.In WWW.
VAE-AR:利用变分自动编码器对用户隐式反馈信息和项目辅助信息进行建模,并使用对抗生成网络提取受辅助信息影响的潜在变量表示。可以参考论文:W.Lee,K.Song,and I.-C.Moon.2017.Augmented variational autoencoders for collaborativefiltering with auxiliary information.In CIKM.
CLVAE:是一种基于条件变分自动编码器的推荐方法,它扩展了具有分层变分自动编码器结构的CVAE。可以参考论文:W.Lee,K.Song,and I.-C.Moon.2017.Augmentedvariational autoencoders for collaborative filtering with auxiliaryinformation.In CIKM.
从表2的预测结果可以看出,本发明提供的利用协同自回归流实现的项目推荐方法,其预测的精度全面高于现有的一些方法。
为了说明协同自回归流为什么能提高预测结果,本实施例提供的和一般方法的隐含变量进行可视化的比较,如图3所示,从图3中可以看出CAF模型的聚类效果更好,这也是CAF的预测效果高于其他方法的原因。
为了说明使用自回归流能够近似数据真实后验的结果,本应用例提供了三个数据的项目隐含变量随着自回归流个数的不同取值的可视化比较,如图4所示。理论上而言,更多的可逆变换可能接近更复杂的分布,但是对于我们的模型来说,较小的值就足够了。在MovieLens数据集上,可以清楚地观察到当K=7时获得最明显的表示,之后项目的隐含变量表示再次扭曲。在CiteULike和LastFM数据集上,经过5个自回归流转换足以获得最佳可视化。这种可视化很重要,因为可视化表示本质上更具可解释性,并且可视化的程度可以用于指导基于自回归流的推荐***的训练过程。
为了说明自回归流的个数对预测结果的影响,本应用例进行实验以研究K(自回归流个数)对推荐性能的影响,推荐性能的结果(R@10指标)如图5所示。从图5(a)中可以看出MovieLens数据集随着流的个数的增加,预测的正确率在上升,直到K>7之后开始下降;图5(b)(c)分别对应CiteULike和LastFM数据集,在K<5的时候,预测的正确率不断上升,而K>5时正确率开始下降。我们可以看到图5的结果与图4的可视化结果一致,同时也说明了隐含变量越可分,CAF的推荐性能越好。
为了说明训练轮数对预测结果的影响,本应用例CAF模型在三个数据集上分别训练40轮,然后按照实施例给出的方法分别利用数据集MovieLens、CiteULike和LastFM的训练集进行训练,并用训练好的CAF模型在数据集在三个数据集的测试集中进行预测,给用户推荐最有可能在接下来的时间里访问的项目,预测结果如图6所示。从图中可以看出,在数据集MovieLens上训练轮次取25时效果最好,而对于CiteULike和LastFM数据集,在训练30轮后效果最好。
综上所述,本发明利用协同自回归流实现项目推荐,我们的协同自回归流算法通过利用概率推荐的贝叶斯推断和灵活的后验近似的自回归流来解决偏差推理问题,可以有效解决数据集缺少用户项目信息的问题,而且能够减轻现有贝叶斯推荐方法中固有的不可知后验估计问题。加入的自回归流能够很好的解决之前变分推断(比如VAE)过程中的误差。使得我们的模型可以学习到用户和项目的真实分布,同时能够捕捉到用户和项目的复杂的交互关系,这对于提高预测精度有很大的帮助。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (4)
1.一种基于协同自回归流实现的Top-n项目推荐方法,其特征在于包括以下步骤:
S1,数据的预处理:根据原始数据中用户历史访问项目的情况,将数据集划分成训练集,验证集和测试集;再根据训练集中用户访问项目的情况构建一个项目标签矩阵R;再对训练集中的每一个用户和每一个项目进行嵌入,得到用户嵌入向量矩阵U和项目嵌入向量矩阵V;
S2,优化模型参数,获取最优项目推荐模型:将用户嵌入向量矩阵U和项目嵌入向量矩阵V分别输入到不同的变分自动编码器中,在编码过程中引入协同自回归流,得到的用户和项目的最终隐含变量表示矩阵和然后让用户和项目的最终隐含变量表示与其相对应的协同信息相结合得到用户和项目的最终潜在表示矩阵U′和V′,接着将用户和项目的最终潜在表示的矢量积输入到一个分类器中,得到第一损失,再将用户和项目的最终隐含变量表示输入到一个解码器中得到第二损失,将第一损失与第二损失相加生成最后的总损失,然后最小化总损失,即得到所述的项目推荐模型;
S3,给用户推荐项目:利用上述训练好的项目推荐模型,给用户做Top-n项目推荐。
2.根据权利要求1所述基于协同自回归流实现的Top-n项目推荐方法,其特征在于所述步骤S1包括以下分步骤:
S11,划分数据集:根据原始数据集中用户访问项目的情况,从每一个用户历史访问过的项目中随机选择70%作为训练集,选择20%作为测试集,剩下的10%作为验证集;
S12,根据训练集中用户访问项目的情况构建用户嵌入向量矩阵U和项目嵌入向量矩阵V以及项目标签矩阵R,具体包括以下步骤:
S121,构建用户嵌入向量矩阵U:将训练集中所有用户Us={u1,…,ui,…,uM}表示为嵌入向量,根据用户对项目的偏好初始化一个用户嵌入向量矩阵 其中M表示用户的数量,N表示项目的数量,uij表示用户嵌入向量矩阵中的元素,如果用户ui访问过项目vj,则uij=1,否则标记为0,用户嵌入向量矩阵U中的第i行表示用户ui的嵌入向量ui;
S122,构建项目嵌入向量矩V:将训练集中所有项目Vs={v1,…,vj,…,vN}表示为嵌入向量,项目嵌入向量矩阵为用户嵌入向量矩阵的转置,即V=UT,项目嵌入向量矩阵V中的第j行表示项目vj的嵌入向量vj;
S123,构建项目标签矩阵R:根据训练集中用户访问项目的情况构建一个项目标签矩阵其中rij=uij。
3.根据权利要求1所述基于协同自回归流实现的Top-n项目推荐方法,其特征在于所述步骤S2包含以下分步骤:
本步骤利用编码器,即多层感知机,对表示成用户和项目的嵌入向量进行编码,每一层的计算过程如下:
第二层:
……
第t层:
上式中,t表示多层感知机的层数,在本发明中t=3,通过最后一层的结果和分别计算用户和项目的初始隐含变量表示和 和均服从高斯分布,其中用户初始隐含变量表示分布的均值为 方差为则对于项目初始隐含变量表示其均值方差通过项目的均值和方差得到编码器每一层的计算过程中,表示非线性的激活函数,常见的有sigmoid或tanh,本发明中选取sigmoid作为激活函数,和分别表示用户嵌入向量和项目嵌入向量经过第t层神经网络得到的隐藏状态表示,矩阵和偏差向量均为用户编码器的训练参数,其中上标t表示这是经过第t层神经网络的参数,而 是求用户初始隐含变量表示分布时需要学习的参数;矩阵以及偏差向量为项目编码器的训练参数,上标t表示这是经过第t层神经网络的参数,是求项目初始隐含变量表示分布时需要学习的参数;和都是用于随机采样的标准正态分布的变量;
S22,定义K个可逆自回归流,将上一步得到的用户初始隐含变量表示和项目初始隐含变量表示输入这K个自回归流中进行可逆变换,学习得到用户和项目的最终隐含变量表示和使其分布更接近于真实的潜在层数据分布。由于用户和项目的最终隐含变量表示的学习过程是一致的,因此我们此处省略下标ui和vj,用统一的符号z0和zK去表示初始隐含变量表示和最终隐含变量表示,因此,学习和分布的过程如下:
求用户和项目的最终隐含变量表示的过程,包括以下分步骤:
S221,求目标分布p(zk):在得到最终隐含变量表示的过程中,我们首先得到zk的d个维度,其中的k看作是经过第k个流,zk中的第i个维度是以zk-1的前i-1维为条件的,根据其分布为p(zk-1),计算zk的d个维度,从而获得zk的分布p(zk),
上式中,M(·)和S(·)分别是求均值和方差的神经网络,通过S22我们可以得到一个目标分布p(zk),由于生成目标分布的过程是基于p(zk-1)的已知概率密度分布,因此,对于GPU的并行化,该过程非常快。这一个过程主要是利用逆自回归流(Inverse AutoregressiveFlow,IAF)的思想,它是一种特殊的神经网络,可以同时输出均值和标准差的所有值,便于对μ1:i-1和σ1:i-1的采样;
上式中,M′(·)和S′(·)分别是使用掩模自回归流求均值和方差的特殊神经网络,在模型中充当的是可逆计算过程;
S223,通过步骤S221和S222得到两个基于不同条件的同一目标分布p(zk)和但是它们在模拟自回归流的过程中存在不同的偏差,为了利用两个输出分布来稳定训练过程,我们计算两个输出分布之间的KL散度,
上式中,uc和vc均从高斯分布中取得,分别表示用户和项目的协同信息,随着模型的优化,这两个向量也不断地被优化,最后可以很好的表示用户和项目的协同信息;
S24,不断重复步骤S21至S23,直到获取所有用户和项目的最终潜在表示,将所有用户和项目的最终潜在表示连接起来得到用户和项目的最终潜在表示矩阵U′和V′;
S25,构建两个损失函数L1和L2,将L1和L2加在一起生成最后的总损失L,并最小化这个总损失函数,完成对模型的训练,得到所述项目推荐模型。其中L1为预测项目与标签项目的交叉熵损失函数,L2用于让学习到的隐含变量分布更接近于真实分布的重构损失函数。该步骤具体包括以下分步骤:
S251,获取第一损失L1:将S24中得到的用户和项目的最终潜在表示矩阵U′和V′的矢量积输入到一个多层感知机组成的分类器中,输出用户访问每一个项目的概率矩阵,即看作是用户对所有项目的评分矩阵R′,再利用S1得到的项目标签矩阵R与预测评分矩阵R′求交叉熵损失,
上式中,r′ij表示用户ui访问项目vj的概率,将L1作为第一损失,M为用户总数,N为项目总数;
S252,获取第二损失L2:再将S23中得到的用户和项目最终隐含变量表示和输入到一个可逆的解码器中,构建用户和项目隐含变量的联合分布,让其与输入用户和项目数据的联合分布求相对熵,为了表述方便,在第二损失计算公式中,取消用户和项目的下标i和j,得到第二损失L2:
通过用户后验分布q(zu|u)近似隐含变量zu的真实分布p(u,zu),q(zu|u)定义为同样的,用项目后验分布q(zv|v)近似隐含变量zv的真实分布p(v,zv),q(zv|v)定义为p(u,zu)和p(v,zv)表示用户和项目输入数据的真实分布,zu、zv表示协同自回归流模型中的隐含变量,u、v表示模型输入数据,θ、φ分别表示概率分布的参数,上式中和表示重构损失,和为常数项,剩下四项表示自回归流。对第二损失L2进行优化的过程中,实际上已经完成了对S223中的最小化,具体的推导过程参照以下论文:【van den Oord,A.,Li,Y.,Babuschkin,I.,Simonyan,K.,Vinyals,O.,Kavukcuoglu,K.,van den Driessche,”Parallel wavenet:Fast high-fidelity speech synthesis”】;
S253,将第一损失和第二损失加在一起生成最后的总损失L=L1+L2,并最小化这个总损失函数,完成对模型的训练,得到所述项目推荐模型。
4.根据权利要求1所述基于协同自回归流实现的Top-n项目推荐方法,其特征在于所述步骤S3包含以下分步骤:
S31,根据S2训练好的模型,得到用户评分矩阵R′,再将用户在训练集中访问过的项目索引位置的评分置为0,例如用户ui在训练集中访问过项目vj,则将评分矩阵R′中对应的元素r′ij置为0。再将新的评分矩阵中的每一行按照评分高低进行排序得到矩阵R″;
S32,根据S31中得到的评分矩阵R″,选取R″中评分前n的项目作为最后给用户推荐的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911079406.2A CN110781401A (zh) | 2019-11-07 | 2019-11-07 | 一种基于协同自回归流实现的Top-n项目推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911079406.2A CN110781401A (zh) | 2019-11-07 | 2019-11-07 | 一种基于协同自回归流实现的Top-n项目推荐方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110781401A true CN110781401A (zh) | 2020-02-11 |
Family
ID=69389888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911079406.2A Pending CN110781401A (zh) | 2019-11-07 | 2019-11-07 | 一种基于协同自回归流实现的Top-n项目推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110781401A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111310048A (zh) * | 2020-02-25 | 2020-06-19 | 西安电子科技大学 | 基于多层感知机的新闻推荐方法 |
CN111552881A (zh) * | 2020-05-09 | 2020-08-18 | 苏州市职业大学 | 基于分层变分注意力的序列推荐方法 |
CN111708937A (zh) * | 2020-05-27 | 2020-09-25 | 西安理工大学 | 基于标签迁移的跨域推荐方法 |
CN112085158A (zh) * | 2020-07-21 | 2020-12-15 | 西安工程大学 | 一种基于堆栈降噪自编码器的图书推荐方法 |
CN112435751A (zh) * | 2020-11-10 | 2021-03-02 | 中国船舶重工集团公司第七一六研究所 | 基于变分推断和深度学习的腹膜透析模式辅助推荐*** |
CN114065039A (zh) * | 2021-11-17 | 2022-02-18 | 重庆邮电大学 | 一种基于均值池化操作的自编码器推荐方法及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040225509A1 (en) * | 2003-05-07 | 2004-11-11 | Olivier Andre | Use of financial transaction network(s) information to generate personalized recommendations |
CN108320187A (zh) * | 2018-02-02 | 2018-07-24 | 合肥工业大学 | 一种基于深度社交关系的推荐方法 |
US20190130281A1 (en) * | 2017-10-31 | 2019-05-02 | Microsoft Technology Licensing, Llc | Next career move prediction with contextual long short-term memory networks |
CN109979429A (zh) * | 2019-05-29 | 2019-07-05 | 南京硅基智能科技有限公司 | 一种tts的方法及*** |
CN110162709A (zh) * | 2019-05-24 | 2019-08-23 | 中森云链(成都)科技有限责任公司 | 一种结合对偶对抗生成网络的鲁棒的个性化排名方法 |
CN110232480A (zh) * | 2019-03-01 | 2019-09-13 | 电子科技大学 | 利用变分的正则化流实现的项目推荐方法及模型训练方法 |
-
2019
- 2019-11-07 CN CN201911079406.2A patent/CN110781401A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040225509A1 (en) * | 2003-05-07 | 2004-11-11 | Olivier Andre | Use of financial transaction network(s) information to generate personalized recommendations |
US20190130281A1 (en) * | 2017-10-31 | 2019-05-02 | Microsoft Technology Licensing, Llc | Next career move prediction with contextual long short-term memory networks |
CN108320187A (zh) * | 2018-02-02 | 2018-07-24 | 合肥工业大学 | 一种基于深度社交关系的推荐方法 |
CN110232480A (zh) * | 2019-03-01 | 2019-09-13 | 电子科技大学 | 利用变分的正则化流实现的项目推荐方法及模型训练方法 |
CN110162709A (zh) * | 2019-05-24 | 2019-08-23 | 中森云链(成都)科技有限责任公司 | 一种结合对偶对抗生成网络的鲁棒的个性化排名方法 |
CN109979429A (zh) * | 2019-05-29 | 2019-07-05 | 南京硅基智能科技有限公司 | 一种tts的方法及*** |
Non-Patent Citations (8)
Title |
---|
F ZHOU 等: "Recommendation via Collaborative Autoregressive Flows", 《NEURAL NETWORKS》 * |
FAN ZHOU 等: "Variational Session-based Recommendation Using Normalizing Flows", 《THE WORLD WIDE WEB CONFERENCEMAY》 * |
常标: "面向在线媒体的信息流动模式分析及流行度预测方法研究", 《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》 * |
李宗阳: "基于深度学习的用户行为过程预测方法研究与实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
李鹏: "基于高斯混合模型的变分自动编码器", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
胡杰 等: "无线网络中的业务行为及业务容量——概念、模型及发展", 《中国电子科学研究院学报》 * |
莫玉华: "基于流和生成网络的推荐***研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
陈辉 等: "自回归预测多级矢量量化线谱频率编码技术", 《西安科技大学学报》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111310048A (zh) * | 2020-02-25 | 2020-06-19 | 西安电子科技大学 | 基于多层感知机的新闻推荐方法 |
CN111310048B (zh) * | 2020-02-25 | 2023-06-20 | 西安电子科技大学 | 基于多层感知机的新闻推荐方法 |
CN111552881A (zh) * | 2020-05-09 | 2020-08-18 | 苏州市职业大学 | 基于分层变分注意力的序列推荐方法 |
CN111552881B (zh) * | 2020-05-09 | 2024-01-30 | 苏州市职业大学 | 基于分层变分注意力的序列推荐方法 |
CN111708937A (zh) * | 2020-05-27 | 2020-09-25 | 西安理工大学 | 基于标签迁移的跨域推荐方法 |
CN111708937B (zh) * | 2020-05-27 | 2022-12-16 | 北京阅视无限科技有限公司 | 基于标签迁移的跨域推荐方法 |
CN112085158A (zh) * | 2020-07-21 | 2020-12-15 | 西安工程大学 | 一种基于堆栈降噪自编码器的图书推荐方法 |
CN112435751A (zh) * | 2020-11-10 | 2021-03-02 | 中国船舶重工集团公司第七一六研究所 | 基于变分推断和深度学习的腹膜透析模式辅助推荐*** |
CN114065039A (zh) * | 2021-11-17 | 2022-02-18 | 重庆邮电大学 | 一种基于均值池化操作的自编码器推荐方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | Session-based recommendation with graph neural networks | |
CN110781401A (zh) | 一种基于协同自回归流实现的Top-n项目推荐方法 | |
CN109299396B (zh) | 融合注意力模型的卷积神经网络协同过滤推荐方法及*** | |
CN111797321B (zh) | 一种面向不同场景的个性化知识推荐方法及*** | |
CN112529168B (zh) | 一种基于gcn的属性多层网络表示学习方法 | |
CN111127146B (zh) | 基于卷积神经网络与降噪自编码器的信息推荐方法及*** | |
CN110955826B (zh) | 基于改进型循环神经网络单元的推荐*** | |
WO2019118644A1 (en) | Systems and methods for collaborative filtering with variational autoencoders | |
CN111274398A (zh) | 一种方面级用户产品评论情感分析方法及*** | |
CN112364976A (zh) | 基于会话推荐***的用户偏好预测方法 | |
CN111859166A (zh) | 一种基于改进的图卷积神经网络的物品评分预测方法 | |
CN112328900A (zh) | 一种融合评分矩阵和评论文本的深度学习推荐方法 | |
CN111881671B (zh) | 一种属性词提取方法 | |
CN112699310A (zh) | 基于深度神经网络的冷启动跨域混合推荐的方法及*** | |
Deodhar et al. | A framework for simultaneous co-clustering and learning from complex data | |
Alfarhood et al. | DeepHCF: a deep learning based hybrid collaborative filtering approach for recommendation systems | |
Jiang et al. | An intelligent recommendation approach for online advertising based on hybrid deep neural network and parallel computing | |
CN112381225A (zh) | 优化未来性能的推荐***重训练方法 | |
CN111930926A (zh) | 结合评论文本挖掘的个性化推荐算法 | |
Liu et al. | TCD-CF: Triple cross-domain collaborative filtering recommendation | |
CN110659962B (zh) | 一种商品信息输出方法及相关装置 | |
CN114529063A (zh) | 一种基于机器学习的金融领域数据预测方法、设备及介质 | |
CN113111257A (zh) | 一种基于协同过滤的融合多源异构信息的推荐方法 | |
AL SBOU et al. | Performance comparison of three different types of autoencoders using recommendation systems | |
Ahirwadkar et al. | Deepautoencf: A Denoising Autoencoder For Recommender Systems |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200211 |
|
WD01 | Invention patent application deemed withdrawn after publication |