30个深度学习库:按Python和C++等10种语言分类(c语言基础学python)
1008
2022-08-23
论文笔记:Tag-Aware Personalized Recommendation Using a Hybrid Deep Model
感想
这篇论文,我断断续续的看了几天,作者做的工作也挺多的,我感觉论文的数据集还是不够大,还不足以支撑训练其它深度神经网络的地步。本文提出的混合深度学习完全是autoencoder的一个变体,用来解决标签数据稀疏性,不可控词汇表等问题,由于添加了重构误差函数,和一般深度学习的损失函数不一样,训练时间消耗大大减少,最后,还采用了负采样的技术,每一次训练的时间大大提高。总体上,和深度学习不是那么沾边,但是也对我们用深度学习解决推荐问题提供了一个思路。
1. 介绍
在Web 2.0时代,许多网站引入了社会标签系统,用户可以自由的使用任意标签(folksonomy)在线进行标注项。因为社交标签是对相关项和用户偏好的概述,标签也几乎不包含其创造者的敏感信息(sensitive information)。他们对隐私增强的个性化推荐是很有价值的信息。结果,研究者在标签感知的个性化推荐上使用基于内容的过滤或者协同过滤上花费了很多精力。可是,用户可以自由选择他们的词汇表,例如同形同音异义词(homonyms),同义词(synonyms),任意语言的词(words in arbitrary languages),或者甚至是用户创造的词(user-created words)。这些导致了非常稀疏,冗余,模糊的标签信息。这使得标签感知的推荐系统的性能退化得严重。
一个对这个问题的解决办法是在标签空间中运用标签空间。可是,聚类需要计算标签之间的相似性,这是非常耗费时间的。另一个方法是使用自编码器(autoencoders)。对于基于标签的用户资料的抽象特征表达首次通过autoencoders进行了建模,之后把这些特征作为基于用户的协同过滤去产生推荐。即使这个方法比基于聚类的协同过滤方法取得的效果更好。但是还是有以下优点:模型的学习信号和目标的个性化推荐不直接相关。例如,从不相关的标签中区别用户的目标项(user’s target items),因此,结果的抽象表示可能对于个性化推荐的不是有效地。
这篇文章中,受上述观察的启发,我们提出了用深度神经网络来解决不可控词汇的问题,我们把基于标签的用户和项的信息映射到一个抽象的深度特征空间,使得用户和他们的目标项的相似度最大,不相关的项使得相似度最小。我们把深度特征空间的相似性叫做深度语义相似度(deep-semantic similarities),这是对基于相似度的深度语义个性化推荐的建模(deep-semantic similarity-based personalized recommendation,DSPR)。DSPR有着下面的优点:
(1) 深度模型使用一个推荐学习信号进行训练,这直接把用户目标项从不相关的项中区别开直接联系起来。因此,对于用户和项资料(item profiles)的的抽象特征对于个性化推荐是非常有效的表达。
(2) 在SDPR的深度神经网络提取了更多抽象和密集的特征。因此DSPR克服了输入标签空间的稀疏性和冗余性。
(3) 输入的同义词对于DSPR的输出空特征具有相似的影响,这解决了社交标签空间的模糊性问题。
(4) 解释性是深度学习应用中的一个普遍关心的问题,这个问题在DSPR上可以得到改进,在输出深度特征空间中个,为每个抽象特征找最有影响力的标签,然后使用他们去总结对应特征的语义。
即使取得了优秀的效果,训练DSPR模型实际上是非常耗时的,这主要是应为DSPR有许多隐含层和大量的候选项。表面上,一方面,DSPR的深度神经网络有许多隐含层,当学习信号传播到开始的几层的时候,信号变得非常小且没有意义(minuscule and insignificant),这就需要许多次的训练以达到模型收敛。另一方面,为了训练SDPR,训练样例中的用户和所有候选项的深度语义相似性,这个相似性得在每次训练中进行计算。因为对于在线推荐系统的候选项的数量通常非常大,训练深度网络经常需要许多的训练样例,每一个训练的过程是非常昂贵的。
为了解决前面的问题,我们提出了一个方法,叫做混合深度学习。直接把autoencoders和DSPR的神经网络集成,来产生基于重构误差的额外学习信号。实验表明,混合深度学习可以加速深度学习模型的训练过程,减少训练模型需要的收敛时间。至于后面的问题,为了减少每次训练的处理时间。我们利用负采样的方法去随机选择样例中的一小部分样例去近似噪声,这个高效的模型叫做利用负采样的基于深度学习的混合个性化推荐方法(HDLPR-NS)。
2贡献
(1) 提出了DSPR模型,使用深度神经网络解决社交标签中不可控的词汇问题。
(2) 进一步提出了HDLPR-NS模型,使用混合深度学习和不采样方法,训练非常高效。
(3) 实验结果表明,DSPR和HDLPR-NS的效果都超过了标签感知推荐的最好方法的效果(是最好基准线的3.8倍)。通过混合深度学习和负采样,HDLPR-NS的模型训练比DSPR的效率高了几百倍,然而这些方法取得了相似的训练效果和推荐性能。
3准备工作(Preliminaries)
个性化推荐定义如下,给定一个用户u和一个项的集合{i1,i2,…,in},系统产生一个排序的推荐列表
其中,ia≥ib,当且仅当Rlv(u,ia)≥Rlv(u,ib), Rlv(u,i)是一个衡量项目i和用户u的相似度量函数。 Folksonomy是一个元组F=(U,T,I,A), U,T和I是用户,标签和项的集合。A包含于UxTxI,A是一个指派集合(u,t,i),t为标签,i为项,u为用户。 用户概况(user profile)是一个特征向量
其中M=|T|, 即词汇表的大小。Gju为
是用户u为项打上标签tj的次数。类似的,项概况(item profile)是一个向量
其中
即项i被标注为标签tj的次数。
4 基于相似度的深度语义个性化推荐
图1为一个DSPR模型(deep-semantic similarity-based personalized recommendation),DSPR把基于标签的用户(tag-based user)和项(item profiles)xu和xi作为两个神经网络的输入,两个网络共享权重。这些输入通过多个隐含层,投射到最终隐含层的一个抽象深度特征空间,这个抽象特征空间是用来计算用户和项信息抽象表达的相似度。最终,通过使用相关分数得到排序的推荐列表,相关分数是由softmax函数的相似度的结果计算的。
正式地,给定一个用户画像xu,项画像(itemprofile)xi,一个全中矩阵W1,一个偏置向量b1.第一个中间隐藏层的输出为h1:
Tanh作为激励函数来用,相似的,第j个隐藏层的hj,j∈{2,…,K},定义如下:
Wj是权重矩阵,bj是偏置向量。K是隐藏层的层数。第K个隐藏层的输出是用户和项画像的抽象特征表示。分别用x ̃u和x ̃j表示
用户u和项目i使用余弦相似度计算器抽象表示的画像,定义如下:
这叫做深度语义相似度(deep-semantic similarity)。
最终,给定用户u的和项目I的相关性分数,是应用softmax函数产生u和i之间的深度语义相似度,这被用来对用户u使用一个个性化推荐排序列表(rank a personalizedrecommendation list)。
一个给定用户的目标项是那些用户标好的数据,为了取得好的个性化推荐,这些项应该比其他的项有更高的相关性。我们于是以最大化目标项(target items)的相关性分数(relevance scores oftarget items)为目的,即最大化用户和他们项的深度语义相似度,最小化无关项。正式的,这等同于最小化下面的损失函数:
-代表参数Wj和bj.(u,i*)是训练集,为用户u和目标项(target item)i*的对。是从训练集中的(u,t,i*)产生的。 在训练中,我们首先初始化权重矩阵Wj,使用随机正态分布,用零向量初始化bj;模型使用mini-batch梯度下降反向传播进行训练;最终,当模型收敛的时候或者达到最大训练次数的时候停止。
5 基于混合深度学习的负采样(Negative Sampling)个性化推荐
5.1 混合深度学习
使用反向传播训练深度神经网络是困难的,当学习信号传递到前面的几层是,值变得非常小了,这样会导致模型训练更慢,需要更多的迭代次数才能够收敛,这个问题叫做梯度消失。这可以使用反向传播算法预训练模型,去微调整个网络。但是我们提出了一个新的混合深度学习的方法,它集成了autoencoders和深度神经网络DSPR,通过重构误差产生额外的学习信号(additional learning signals)。他结合了DSPR的深度语义相关性分数去形成模型的混合深度学习信号。模型叫做基于混合深度学习模型的个性化推荐(hybrid deep learning-based personalized recommendation ,HDLPR)。 增加重构误差作为学习信号可以加速模型训练过程,减少模型收敛所需要的训练次数。在DSPR中,当传播到前面几层的时候,基于深度语义相似性的信号会变得非常弱。因此学习前面基层权重矩阵非常的慢,例如W1和W2。在HDLPR中,我们使用了autoencoders中的系权重(tied weights),例如,解码器的权重矩阵就是编码器的转置,基于重构误差的学习信号将会用于更新W1T,之后反向传播更新W2T,W3T等等。因为更新WTj等同于更新Wj,它弥补了DSPR中的梯度消失问题。
图2展示了我们提出的HDLPR的整个过程,HDLPR的结构和DSPR模型,但是添加了K层去形成decoder,通过把开始的K+1层作为encoder,我们把每层神经网络转换成一个有系权重(tied weights)的autoencoder.随后,decoders得到用户和项画像的抽象特征表达。x ̃u和x ̃i作为输入,在输出层产生用户和项画像的重构误差。用x’u,x’i表示。最后,我们用L2正则式计算计算用户和项画像的重构误差。 正式的,编码器的层数的定义和DSPR的神经网络一样。至于decoders,中间K+j层隐含层的输出HK+j,j∈{1,…,K-1},定义如下:
其中的T代表转置的意思,bK+j为K+j隐藏层的偏置向量。第(2K-1)隐藏层的输出用于重构用户和项画像。
用户画像的重构误差用欧几里得距离(L2范式)来计算。通过集成DSPR的深度语义相关性分数的重构误差,HDLPR的训练目标就是最大化目标项的相关性分数,最小化训练样本中用户和目标项的重构误差。即最小化下面的混合损失函数:
第一项是一个L2正则,用于防止过拟合;第二项是训练样例中用户和目标项画像的重构误差。第三项是基于深度语义相似性的学习信号。λθ和λe参数表示对应项中的不同重要性。λθ>0, λe>0.λθ+λe<1。
5.2负采样
即使混合深度学习极大地减少了模型收敛所需要的训练次数,DSPR和HDLPR在每一次的训练时间仍然很耗费时间。尽管L(-)是Lh(-)第三项,但是计算仍然非常昂贵。
特别地,在一次训练的每个训练样例(u,i*),第二项L(-)需要计算u和所有候选项I的深度语义相似性的和。实际上,在线推荐系统中,候选项的数量往往非常大(数百万),并且训练一个深度神经网络经常需要训练无数个训练样例;因此,训练DSPR和HDLPR的代价非常高。可是,项本质上:不仅要最大化用户和其目标项之间深度语义相似性,而且要最小化那些不相关的项,于是,它有助于把目标项从不相关的项中识别出来。
为了解决这个困境,我们使用负采样已解决处理每个训练样例所需要的时间。在负采样中,对每一个训练样例,我们随机从候选项集中选择很小数量(S)的无关项,其中的候选项为负样例,是近似噪声,用来区分目标项和无关项的。这个有负采样的高效模型叫做HDLPR,它的损失函数定义如下:
其中,(u,i-)是负样例,D-为一个负样例数据集,对每个训练样例(u,i*),负样例通过随机采样S中的负样例i-产生。
6实验
不可控词汇问题的基准为:
i. 基于聚类的cosine相似度(CCS):层级聚类,以用户和项作为聚类的特征向量,他用cosine相似度的基于内容过滤,用于推荐。
ii. 基于内容的协同过滤(CCF):CCF和CCS在特征模型上相似,但是它使用基于用户的协同过滤做推荐。
iii. 基于Autoencoder的协同过滤(ACF):autoencoder用于获取用户画像的抽象表达,把基于用户的协同过滤用于推荐。
为了公平比较,实验在相同的公开真实世界数据集(public real-worlddatasets)上运行,Zuo等人使用了Delicious和Last.Fm数据集,这是从Dellicious bookmarking系统和Last.Fm 自安县音乐系统筹集的,并发布在了HetRec 2011上。在使用相同的预处理移除非频繁标签后,非频繁标签即在Delicious中使用少于15次的标签,得到的数据集如表1:
正如假设,数据集中给定用户的目标项是用户标注的,我们随机选择了80%的指派集合作为数据集,5%的数据作为验证集,15%的数据集作为测试集。训练集中的指派(u,t,i*)用于构造用户和项画像,并且抽取用户-项对用作训练样例,我们也从验证集样例上的指派中抽取用户项对(user-item pairs),用作验证集,验证样例是用来通过early stopping方法避免过拟合的。最后,从测试集上抽取的用户-项对指派作为测试样例,用来衡量推荐的性能。
所有的模型都用python和Theano实现,在NVIDIA Tesla K40GPU服务器上运行,GPU有12GB的现存。DSPR的参数用网格搜索选择。用下面的方法设置:
i. 隐藏层的#是3;
ii. 第一层,二层,三层隐藏层的神经元的#分别是200,300,128;
iii. 训练的batch size大小是128;
iv. 训练模型的学习率是0.005.
这些参数和HELPR-NS模型一样。另外
v. 有两个额外的隐藏层,第四层和第五层的神经元的#分别是300和2000;
vi. 平衡参数λθ和λe分别设置为0.01和0.2;
vii. 每一个训练样例(S)的负样例的#为127;
评估推荐系统最流行的矩阵是precision,reacall,F1-score。用户仅浏览推荐的前几项。我们把这些矩阵应用到一个阶段的K个项之中(cutoff rank k)。例如只考虑推荐列表结果的top-k,叫做precision at k, recall at k, F1-score at k. 用户在推荐列表上一直偏爱他们项排序的前k个,我们也用了mean reciprocal rank(MRR,说实话我也不了解,读者自行百度吧)作为评估矩阵,这个矩阵使得排在前面的项给予更高的重要度。P-value用于衡量改进的意义。
6.1主要结果
图3详细描述了DSPR,HDLPR-NS和3个基准线的性能,评估的标准为P@k,R@k和F@k, 阶段排序k=5, 10,…,5。数据集为Dellicious 和 Last.Fm.
如图3,即使在随机初始化和数据集分配上有点不一样,CCF和ACF和Zuo等人在2016年报告的结果高度一致,一致在维度(magnitude),趋势(tendencies,),相对性能(relative performances)。另外,DSPR和HDLPR-NS的性能非常相似,在Delicious 数据集删,MRR上的p-value=94.31%.而在Last.Fm上,HDLPR-NS的效果稍稍比DSPR好。这表明,DSPR的混合深度学习和负采样没有使模型的性能退化。
通常,显示DSPR和HDLPR-NS模型都超过了其它三个基准模型。DSPR和HELPR-NS的MRR都是最好基准的3.8(34%)倍,CCS在Delicious的p-value值小于0.04%,在Last.Fm小于0.09%,在其它矩阵上的提升也是相似的。DSPR和HDLPR-NS的优秀性能主要是应为其训练目标直接能把用户和不相关的项中区别开来。这些用户和项的抽象特征都是个性化推荐中非常有效的表达。
我们注意到图3,项比数据集Last.Fm,DSPR和HDLPR-NS在Delicious上取得了更高的提升. 而DSPR和HELPR-NS在两个数据集上都维持一个相对稳定的性能,但是在Delicious上的基准却退化很严重,这可能是由于Last.Fm集中于音乐领域内,而Delicious是在页面的多个域内;即使用一个更高的标签移除阈值,Delicious仍然有一个更多变的,更冗余的,更模糊的标签空间,这使得基准测试的性能很差。这表明DSPR和HDLPR-NS在不可控词汇表的问题上取得比baseline更好的效果。
6.2 效率和可拓展性
我们也调查了DSPR和HDLPR-NS的训练效率(efficiency)和拓展性(scalability),记录两个模型的训练时间用以比较其训练的效率。但是标准的损失对比较模型训练质量不合适,DSPR和HDLPR-NS有不同的损失函数。这里,我们使在验证集上用MRR去衡量模型训练的质量。因为,两个模型的训练目标都是在个性化推荐上得到一个更好的性能。MRR-VS越高,模型就越好;为了避免过拟合,每10次训练我们就计算一次MRR-VS的值,因此使用它不会增加训练时间。
我们首先探究了使用混合深度学习的效果,为了避免干扰,我们使用HDLPR做比较做比较。
随着训练次数的增加,HDLPR比DSPR的收敛速度更快。DSPR在Delicious上迭代810次后收敛,在Last.Fm上迭代1750次后收敛。而HDLPR仅仅在Delicious上迭代了70次,在Last.Fm上迭代了80次。这表明混合深度学习可以有效地增强模型的学习过程,减少模型收敛所需要的迭代次数。当模型收敛后,HDLPR的MRR-VS值和DSPR的MRR-VS值几乎一样,在Delicious上,HDLPR为0.0244,DSPR为0.0245,在Last.Fm数据集上,HDLPR为0.0306,DSPR为0.0291。实验证明,混合深度学习将不会使模型的训练质量退化。
我们之后在HDLPR上应用负采样,发现HDLPR-NS与HDLPR有一个相似的训练过程。
表2表明在Delicious和Last,Fm上,在负采样的帮助下,每一次迭代训练的时间大大降低。证明,负采样可以持续的减少每一次迭代的处理时间。
结果,HDLPR-NS上达到瘦脸的总时间消耗,在Delicious上只有0.665小时,在Last.Fm上只有0.296小时。在Dellicious是DSPR的492倍,在Last.Fm上是DSPR的668倍。总结一下,通过使用混合深度学习和负采样,在维持相似训练质量的情况下,HDLPR-NS的训练效率比DSPR的更好。
参考文献
[1]. Zhenghua Xu, Thomas Lukasiewicz, ChengChen, Yishu Miao, Xiangwu Meng:Tag-Aware Personalized Recommendation Usinga Hybrid Deep Model. IJCAI 2017: 3196-3202
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~