软件学报  2014, Vol. 25 Issue (12): 2852-2864   PDF    
基于用户信任和张量分解的社会网络推荐
邹本友1,2, 李翠平1,2, 谭力文1,2, 陈红1,2, 王绍卿1,2,3    
1. 数据工程与知识工程教育部重点实验室, 北京 100872;
2. 中国人民大学 信息学院, 北京 100872;
3. 山东理工大学 计算机学院, 山东 淄博 255091
摘要:社会化网络中的推荐系统可以在浩瀚的数据海洋中给用户推荐相关的信息.社会网络中用户之间的信任关系已经被用于推荐算法中,但是目前的基于信任的推荐算法都是单一的信任模型.提出了一种基于主题的张量分解的用户信任推荐算法,用来挖掘用户在不同的物品选取的时候对不同朋友的信任程度.由于社交网络更新速度快,鉴于目前的基于信任算法大都是静态算法,提出了一种增量更新的张量分解算法用于用户信任的推荐算法.实验结果表明:所提出的基于主题的用户信任推荐算法比现有算法具有更好的准确性,并且增量更新的推荐算法可以大幅度提高推荐算法在训练数据增加后的模型训练效率,适合更新速度快的社会化网络中的推荐任务.
关键词推荐系统     社会网络     信任     张量分解     增量更新    
Social Recommendations Based on User Trust and Tensor Factorization
ZOU Ben-You1,2, LI Cui-Ping1,2, TAN Li-Wen1,2, CHEN Hong1,2, WANG Shao-Qing1,2,3    
1. Key Laboratory of Data Engineering and Knowledge Engineering, Ministry of Education, Beijing 100872, China;
2. Information School, Renmin University of China, Beijing 100872, China;
3. School of Computer Science and Technology, Shandong University of Technology, Zibo 255091, China
Corresponding author: LI Cui-Ping, E-mail: licuiping@ruc.edu.cn
Abstract: In social networks, recommender systems can help users to deal with information overload and provide personalized recommendations to them. The trust relationship of users is used in the social networks' recommender systems. But the state-of-art algorithms only use the single trust relationship which cannot capture the trust to user's friends when looking for different items. This paper proposes a topic-based trust recommendation algorithm using tensor factorization model. As the social information changes rapidly, the state-of-art algorithms often need redo factorization. To address the issue, the paper also presents an effective incremental method to adaptively update its previous factorized components rather than re-computing them on the whole dataset when the data changes. Experiments show that the proposed method can achieve better performance and the incremental method is suitable for the rapid changes in the social networks.
Key words: recommendation systems     social network     trust     tensor factorization     incremental update    

推荐系统(recommender systems)[1, 2]作为个性化服务研究领域的重要分支,通过挖掘用户与项目之间(user- item)的二元关系,帮助用户从大量数据中发现其可能感兴趣的项目(如Web信息、服务、在线商品等),并生成个性化推荐以满足个性化需求.目前,推荐系统在电子商务(如Amazon、eBay、Netflix、阿里巴巴、豆瓣网、当当网等)、信息检索(如iGoogle、GroupLens、百度等)以及移动应用、电子旅游、互联网广告等等众多应用领域取得较大进展.

随着社会网络的迅猛发展,社会网络的大数据时代已经来临.在线社会网络中,如果两个用户之间的交互很频繁,表明他们之间的关系强度很大.用户间的信任程度与交互经历相关,当两个用户之间的经历为正关系时,用户间的信任程度会提交;反之,信任程度下降[3].在eBay和Amazon这样的在线购物网站中,用户间的信任是根据他们之间历史交易的反馈来获得[4],采用用户之间的信任度可以提高物品推荐的满意度[5].

Granovetter[6]引入用户间的链接强度来表示社会网络中的信任关系,强连接关系表示用户间的比较高的信任关系,弱连接表示用户间的信任关系低.Gilbert和Karahalios[7]将连接强度的概念运用到社交网络的场景中,对于Facebook的数据集,作者将用户之间的信任关系映射为二元模式,即用户之间要么信任要么不信任.但是在现实中,用户之间的信任程度是不一样的,二元模式并不能表现出这个特点.Xiang等人[8]提出了一种无监督学习的方法来确定社会网络中信任关系的强度大小.Zarghami等人[9]引入T-index的概念来估计用户之间的信任程度,并且根据用户之间的信任程度来给用户推荐新朋友.Jamali等人[10]提出了一种将用户信任关系与矩阵分解算法相结合的推荐算法,并且应用到社会网络的推荐中.

Ma等人[11]提出将朋友的信任关系加入到社会化推荐.在用户对物品的评分做预测时,不仅考虑了用户自身的偏好对于评分的影响,而且考虑了用户朋友对用户做评分时候的影响.文中将两种影响用线性叠加的方法做处理,得到用户对物品的评分.用户u对物品i的评分预测为其中,a表示用户朋友对于用户评分的影响权重.

上述的推荐算法存在以下两个缺陷:

1) 大多数的推荐算法基于一个假设:用户对其邻居的影响是单一的,但是在实际的社会网络中,每个用户的兴趣是不同的,用户对于不同的话题或知识的见解是不同的.比如:用户买手机电脑等数码产品的时候,这个用户在很大程度上会听取对数码产品比较了解的朋友的建议;用户如果要去三亚旅游,会倾向去去过三亚或者旅游爱好者的朋友的建议;用户如果想购买数据挖掘的教程,可能会倾向微博中比较活跃的从事数据挖掘研究的学者的建议;

2) 现有的推荐算法中,大部分都是假设训练数据是静态的,即训练集在模型训练的时候已经固定,如果训练集中有新的数据加入,比如新用户的加入、新物品的加入等,算法要对新的训练集重新计算.对于更新速度快的社会网络的推荐任务,这种算法就会显得不合时宜.

为了解决上述两个传统推荐算法的缺点,本文提出了两种不同的算法:

1) 提出了一种基于主题和张量分解的信任推荐算法,挖掘用户在不同的主题上对朋友的信任关系;

2) 为了解决传统推荐算法中的训练数据更新引起的算法重算问题,提出了一种可以增量更新的张量分解的用户信任推荐算法.

本文第1节介绍推荐算法和张量分解的相关基础知识.第2节提出基于主题的张量分解的用户信任推荐算法.第3节介绍动态更新的张量分解算法用于朋友信任推荐.第4节是本文的实验部分,通过与传统基于信任的推荐方法的对比,分析我们提出的算法在有效性和效率的表现.第5节是本文的总结. 1 背景知识

本节主要介绍本文用到的相关技术,首先介绍传统的推荐算法和上下文感知的社会化推荐算法,其次介绍张量相关知识以及张量分解相关技术. 1.1 传统推荐算法

传统的推荐算法是通过用户的行为数据建立用户-项目二者之间的二元关系,通过对其挖掘分析得到每个用户潜在的感兴趣的项目,从而进行个性化推荐.Adomavicius等人[1]将推荐系统定义为:假设User={u1,u2,…, uN}为推荐系统中所有用户的集合,Item={i1,i2,…,iN}为推荐系统中所有的项目集合(例如图书、电影等).记s为效用函数,衡量项目i与用户u之间的相关性,例如s:UserxItem®Rating,其中,Rating为整体有序的实数集合(例如在电影的评分推荐中,大都采用1~5之间的整数作为用户对电影的喜欢程度),推荐系统的目标就是对给定的

用户和项目集合找到使得效用函数s(×)最大的项目,即: 1.2 上下文感知的社会化推荐算法

虽然传统的推荐算法采用用户-项目模型已经取得了很大的成功,但这些算法都忽略了一点,就是用户所处的上下文(context)信息.在社会化网络中,用户的上下文信息包括时间、地点、用户的社会关系等信息. Adomavicius等人[1]首次提出上下文感知推荐系统,将传统的用户-项目二维模型s:UserxItem®Rating扩展为包含上下文信息的多维模型:s:D1xxDn®Rating,或者s:UserxItemxContext®Rating.Karatzoglou等人[12]提出采用张量分解的推荐算法,将用户、电影、上下文信息构建为用户-项目-上下文的三阶张量,通过张量分解算法,得到用户在不同上下文信息方面对项目的喜好程度. 1.3 张量基本知识

张量(tensor)是高维数组的总称[13],举例来说,一阶张量就是一个向量,二阶张量是矩阵,三阶张量或者更高阶的张量称为高阶张量.图 1所示为三阶张量XΡIxJxK.

Fig. 1 3-Order tensor 图 1 三阶张量图示

定义1(模式(mode)).定义张量的模式为张量的维度数量大小.例如,张量的模式为N,又称为阶.

Table 1 Symbols used in this paper 表 1 本文用到的符号表

定义2(展开矩阵(matrix unfolding)). 将张量按照第n模式展开,并且以矩阵的形式展现,这个矩阵被称为展开矩阵,符号表示为uf(X,n).张量X的第n模式展开矩阵表示为:.

X(n)的列向量称作张量Xn模式向量.

例如,图 2以三阶张量A为例,将其沿第1~3模式展开后得到3个展开矩阵A(1),A(2),A(3)如下:

.

Fig. 2 Example of tensor A 图 2 张量A的图例

定义3(模式乘积(mode product)). n模式乘积为张量与矩阵在第n模式上的乘积,可以表示为AxnU,结果为大小为.本文简称为模乘.例如,大小为3x4x5的张量A与大小为2x3的矩阵1模乘得到的张量A¢的大小为2x4x5.关于张量的更多细节内容,见文献[14].

定理1. 张量A与矩阵Un模乘的n模矩阵展开可以等价转换为第n模矩阵展开得到的A(n)与矩阵U的乘积:uf(AxnU)=A(n)xU. 1.4 张量分解模型

张量分解(又称为高阶奇异值分解、HOSVD)是在矩阵奇异值分解(SVD)的概念上的延伸.文献提出了多种张量分解的模型:Tucker模型[15]、PARAFAC模型[16]和CANDECOMP模型[17].Tucker模型是一种高阶主成分分析方法,它将N阶张量分解为一个核心张量(core tensor)和N个因子矩阵乘积形式:

XCx1U(1)x2U(2)xNU(N) (1)

其中,,核心张量.因子矩阵可以被认为是每一维上的主成分,U(i)(1≤iN)可以通过对张量Xn模展开矩阵X(n)做SVD分解的到的左奇异矩阵得到[14].

图 3中给出了三阶张量的Tucker分解模型的图例,一个三阶张量可以分解为3个因子矩阵和一个核心张量.如果R1,R2,R3分别小于I1,I2,I3,我们可以将核心张量C看作是对原始张量X的压缩,在某些情况下,压缩后的张量的存储空间可以明显小于原始张量所占的存储空间,比如对稀疏张量的压缩处理[18].实际上,PARAFAC模型和CANDECOMP模型看以看做是Tucker分解的特例,他们要求分解后的R1=R2=R3.

Fig. 3 Tucker decomposition of 3-mode tensor图 3 三阶张量的Tucker分解图例
1.5 张量N阶近似

张量N阶近似(rank-(R1,R2,…,RN) approximation):假设N阶张量X的大小为I1xI2xxIN,XN阶近似是找到一个与X近似的张量,满足二者的平方差最小:

Rn<<In(1≤nN)时,张量可以看作是原始张量X的稠密化近似,对于稀疏的大数据集来说,可以得到一个很好的压缩近似[13].

当因子矩阵确定时,核心张量C可以通过张量X与因子矩阵计算得到:

(2)

通过公式(2)可以看到:对于求X的近似,可以只计算因子矩阵.本文中,我们通过这个方法求张量的核心张量,然后代入公式(1)得到张量的N阶近似. 2 基于用户主题信任推荐算法

本节首先介绍基于用户信任与矩阵分解相结合的推荐算法,然后介绍基于用户信任与张量分解模型的推荐算法.

在上一节中提到的基于用户信任的推荐算法中,全部都是只考虑了用户单方的信任关系.以无向图为例,图 4中给出了算法中所用到的用户信任关系的图例.对于用户1来说,他信任的朋友只有用户2,用户2信任的朋友是用户1和用户4,用户3的信任朋友为用户4,用户4的信任朋友为用户2和用户3.这种方法可以很直观地找到用户的信任关系,方法简单易用.

Fig. 4 Trust between users 图 4 用户间的信息关系

但是在实际的应用中,比如社会网络中,用户存在多方面的兴趣.因此,用户的朋友中也是与用户兴趣相关,在不同方面的鉴赏能力是不同的.比如,每个用户都有自身擅长的领域,有些用户可能对电子产品熟悉,有些用户对汽车产品熟悉,这些特性决定了每个用户在不同方面会考虑不同朋友的建议.基于这种思想,我们提出了一种基于用户多方影响力的推荐算法.图 5中给出了基于主题的信任关系框图,在引入了主题后,我们可以看到:在主题1层面上,用户间的信任关系有User1-User2,User3-User4;主题2层面上,用户的信任关系为User1-User2,User2-User4;在主题3层面上,用户的信任关系为User2-User4,User3-User4.

Fig. 5 Trust between users based on topic图 5 基于主题的用户间的信息关系

在对基于主题的用户信任推荐中,我们使用三维张量来模拟用户-用户-主题的三者关联关系.我们根据文献[14]中采用的交替最小二乘法(alternating least squares,简称ALS)实现张量N阶近似,提出的算法为TrustTensor算法.交替最小二乘法为迭代算法,每次迭代过程是根据其他N-1个基础矩阵求解张量的一个基础

矩阵.例如,在第l+1次迭代求解基础矩阵过程中,我们根据其他N-1个基础矩阵:

首先通过以下公式计算得到近似张量A¢:

;

其次,通过对张量A¢的展开矩阵uf(A¢,n)进行SVD计算得到基础矩阵.算法的伪代码描述如下:

算法1. 基于主题的TrustTensor算法.

1. 输入:用户-用户-项目张量A,主题数目R,迭代阈值e;

2. 输出:核心张量C,基础特征矩阵U(1),U(2),U(3).

3. 初始化U(1),U(2),U(3);

4. 初始化

5. Let l=0;

6. for each nÎ[1, 2, 3]:

7. A¢=A;

8. for each mÎ[1,n-1] and m¹n Do

9.

10. End for

11. for each mÎ[n,3] Do

12.

13. End for

14.

15. End for

16.

17. if ||Cl+1||2-||Cl||2e QUIT;

18. Otherwise,l=l+1,并且跳转到第6行

19. End if

复杂度分析:算法1的主要的资源开销是算法每次迭代计算张量A的近似张量A¢的模乘运算和对A¢的展

开矩阵进行SVD分解过程.计算近似张量A¢的复杂度为;对A¢的展开矩阵进行SVD计算的复杂度为;求核心张量Cl+1的复杂度与求A¢的复杂度相同.所以,算法总体复杂度为.在实际应用中,张量A每个维度的大小In远大于分解因子Rn,所以算法的复杂度可以粗略记为,与张量A的大小密切相关. 3 增量更新的主题信任推荐算法

前一节描述了基于主题的用户信任的张量分解推荐算法TrustTensor,此算法可以描述在不同的主题上下文上用户信任的关系.

对于大多数的社会网络,比如Facebook、Twitter以及新浪微博等,每天都有成千上万的新用户注册,网站每天会新增很多的消息、话题等,对于这些新用户和新物品的推荐的冷启动问题已经成为推荐系统重要的挑战.但是大多数的推荐算法是基于静态数据的,没有考虑到用户和物品的增长,当新用户和物品加入后,推荐系统需要对新的张量进行重新分解,这样,原来分解过的张量数据也要重新计算,浪费了大量的资源.

为了解决这个问题,我们提出了一种动态增量更新的张量分解算法.该方法不需要对原始张量重新计算,只是用到原始张量分解的结果和新加入的用户、物品构成的新张量,对原始分解结果进行动态更新.在介绍动态增量张量分解算法之前,我们先介绍下矩阵增量SVD分解. 3.1 增量SVD分解模型

假设有矩阵,SVD分解的结果为.矩阵,我们介绍如何对矩阵A和矩阵F合并后的矩阵A*进行增量更新.我们记,根据SVD分解的性质,我们知道UtVt

为正交矩阵,我们可以根据下面的公式求得St:

(3)

按照文献[19]提到的方法,我们对A*做如下的计算:

(4)

其中,If大小的单位矩阵.我们记,然后对Y进行SVD计算.

因为矩阵Y的大小为,远小于,所以对Y的SVD计算时间会小很多.

我们假设,那么:

(5)

我们记,根据公式(5),我们可以得到:

(6)

复杂度分析:增量SVD算法的只要资源消耗是对矩阵Y的SVD运算,计算Ut+1.对Y进行SVD分解的时间复杂度的大小为;计算Ut+1的时间复杂度为;对于,我们可以对其进行分块计算,时间复杂度为,所以总的时间复杂度为 3.2 增量张量分解模型

上一节描述了矩阵的增量式SVD分解算法(IncSVD),本节将增量分解的思想拓展到高阶张量.

我们以四阶张量为例.假设原始张量为增量的张量为二者在第4模式合并后组成的新张量我们记为其中,我们假设,那么.图 6中为张量A*的展开矩阵,为了便于理解,将图的左半部分四阶张量A*表示为I1个三阶张量,假设图中灰色的部分表示新加入的部分.图的右半部分是对张量A*按照1,2,3,4模式矩阵展开得到的矩阵,其中,的矩阵、的矩阵、的矩阵、的矩阵.从图中我们可以看到:新加入的张量经过矩阵展开,结果矩阵A(1),A(2),A(3)的列数会增加,矩阵A(4)的行数会增加.

图 6观察到:对于新张量A*的第1模式的矩阵展开得到;而第2模式和第3模式的展开矩阵要对[A(2)|F(2)]和[A(3)|F(3)]进行相应的列变换得到,我们记为;对于第4模式的展开矩阵为

Fig. 6 Illustration of unfolding a 4-order tensor图 6 四阶张量的展开矩阵

我们引入单位矩阵G=[En|Qn](1≤nI1I1In-1),EnQnG分为2I1I1In-1个列向量,其中,

那么Pn可以表示为

(7)

对于图 6中的四阶张量A*:

上述对四阶张量的更新过程已经详细介绍,根据上述介绍,我们提出一种普适的增量张量分解算法,记为IncTrustTensor算法,下面给出算法的伪代码:

算法2. IncTrustTensor算法.

1. 输入:张量A的特征矩阵,新张量F;

2. 输出:特征矩阵.

3. Let ;

4.

5. For each nÎ[2,N-1] Do:

6.

7.

8.

9. End for

10. Let ;

11.

12.

13. End

复杂度分析:在IncTrustTensor算法中,主要的资源消耗是计算SVD的时间,的大小为

所以,对Y进行SVD计算的时间为.其中,为新增加张量的最后一个维度的

大小(我们将张量要增加的维度记为张量的最后一个维度),Rn为张量分解后第n维度上特征值数量.所以,算法总体的时间复杂度为.可见,算法的复杂度与新增张量的大小息息相关.在实际中,新增的用户规模往往要远小于已经存在的用户规模,所以增量计算的复杂度要小于重新计算的复杂度. 4 实验及结果分析

本节首先介绍实验所用到的数据集,然后说明对比算法以及评价标准,最后给出本文提出的TrustTensor算法与IncTrustTensor算法与其他方法的对比实验结果,并对实验结果进行了相应的分析. 4.1 测试数据集

为了验证提出的TrustTensor以及IncTrustTensor在社会化网络推荐方面的性能,我们进行了一系列的对比实验.我们的实验围绕以下几个问题展开:

1) 提出的TrustTensor和现有的基于信任的推荐算法的性能比较;

2) 提出的IncTrustTensor在模型训练时间与TrustTensor以及现有算法的比较;

3) IncTrustTensor在推荐效果上与TrustTensor以及现有算法的比较;

4) IncTrustTensor与TrusTensor算法在不同稀疏程度数据上的准确性比较.

为了解决上述问题,我们选取Epinions数据集对算法进行测试.Epinions.com是一家在线社交网站,用户可以对图书和视频进行评分和评价;同时,Epinions还提供了用户对其他用户的信任关系,Epinions数据集包含了用户明确的信任关系.所以,基于信任的推荐算法大都选用这个数据集进行对比实验.我们在本文中使用的Epinions数据集是Paolo等人在文献[20]中使用的数据集,数据集中包含用户之间的信任信息以及用户对电影的评分.Paolo已经将数据集公开,地址为http://www.trustlet.org/wiki/Downloaded_Epinions_dataset.在本文实验中,按照4:1的比例将数据集分成训练集和测试集.为了验证算法在不同稀疏程度数据上的表现,我们对Epinions数据集按照每个用户的信任记录个数T以及每个商品的评分个数I进行了筛选,得到不同稀疏程度的数据,我们记为Epinions-1(T>10,I>10)和Epinions-2(T>20,I>20).表 2中是对Epinions数据集各项信息的统计.

Table 2 Statistics of the Epinions dataset 表 2 Epinions数据集的各项统计信息
4.2 实验中用到的算法

为了对比提出的方法与其他现有的算法在有效性和效率方面的性能,实验中所用到的算法如下:

1) STE:STE[11]是对用户计算其对朋友的信任程度,在进行物品推荐的时候,根据用户信任得到的评估和用户自己对物品的评估之间的关系,得到用户对物品的评价.因为STE算法并没有基于主题,为了保证对比的一致性,在后续的实验对比中,我们记STE做矩阵分解的时候特征向量的维度为主题数目;

2) TrustTensor:提出的基于主题的用户信任推荐算法,通过算法得到用户在不同的主题下对朋友们的信赖程度,在推荐阶段,根据物品所属的主题以及用户的信任度对用户进行物品推荐;

3) IncTrustTensor:提出的增量式的基于主题的用户信任推荐算法,用来对传统推荐算法大都是静态算法的解决方案.对于IncTrustTensor算法,目标是快速对系统中新加入的数据进行训练.实验中,我们对训练集分成4份,即:每份占总数据的20%,IncTrustTensor以20%的数据每次进行更新. 4.3 评估方法

· 有效性评估.

实验中,对于算法的有效性的评价方法用平均绝对误差(MAE)和均方根误差(RMSE)两种评价方式:

其中,Rtest为测试集中所有的(u,i)集合,ru,i为用户u对物品i的真实评分,为预测用户u对物品i的评分.

· 效率评估.

对于算法的效率评估,我们对比不同算法的运行时间,目的是验证IncTrustTensor方法相对于其他静态算法在效率上的优势.在这部分实验中,为了模拟数据的增量计算,训练集均分为4部分,每次增量计算,我们对上次计算的数据集进行扩展,然后对新数据集进行计算,即要进行4次增量步骤完成对整个训练集的计算,每次计算的数据大小为训练集的1/4,2/4,3/4,4/4.对于STE和TrustTensor方法,每次增量计算时,算法都要对新数据集重新计算得到结果,但是IncTrustTensor算法可以根据上次迭代的结果对新数据集进行更新操作,无需重新进行张量分解计算. 4.4 实验结果与分析

实验1. 算法有效性比较.

实验比较了各种算法在不同的主题个数下的结果.设定了模型分解时候主题个数K= 10,20,30,50.算法的其他参数设置为使各算法最优的时候的相应值.

图 7~图 12是算法在不同稀疏程度的数据上的对比结果,在Epinions,Epinions-1,Epinions-2这3个数据集上,算法的MAE与RMSE随着主题数量的变大而变小,说明算法的准确性在提高;同时,算法在Epinions, Epinions-1,Epinions-2这3个数据集上的准确性随着数据的稀疏度变化而变化.

Fig. 7 MAE of Epinions图 7 Epinions数据集的MAE结果

Fig. 8 RMSE of Epinions图 8 Epinions数据集的RMSE结果

Fig. 9 MAE of Epinions-1图 9 Epinions-1数据集MAE结果

Fig. 10 RMSE of Epinions-1 图 10 Epinions-1数据集RMSE结果

总体而言,TrustTensor与IncTrustTensor的准确度在Epinions数据集上最低,而在Epinions-2数据集上的准确度最高,说明算法随着数据稠密度增加,算法的准确率会提高.

图 7~图 12中可以看出:

Fig. 11 MAE of Epinions-2图 11 Epinions-2数据集MAE结果

Fig. 12 RMSE of Epinions-2 图 12 Epinions-2数据集RMSE结果

1) 随着K的增加,算法精度都有一定程度的提高.但是,K的增大会增加算法的运行时间;

2) STE效果是最差的,这是因为STE方法只是将用户的信任程度和物品的评分做加权叠加,没有考虑到用户信任度在不同主题上的差异化;

3) 提出的TrustTensor方法和IncTrustTensor方法因为考虑了不同主题下用户对朋友的信任度,所以算法结果要好于其他没有分类考虑用户信任的算法.

实验证明:考虑了主题的TrustTensor和IncTrustTensor算法比STE有了很大的提高,充分说明了考虑不同主题下用户对朋友信任的有效性和合理性.

· 实验2. 算法效率比较.

图 13~图 16中为3个算法在不同的主题数量下不同的运行时间图(数据集为Epinions).

Fig. 13 Run time of Topic=10 图 13 主题数量为10的运行时间

Fig. 14 Run time of Topic=20图 14 主题数量为20的运行时间

Fig. 15 Run time of Topic=30图 15 主题数量为30的运行时间

Fig. 16 Run time of Topic=50图 16 主题数量为50的运行时间

从图中可以看到:TrustTensor的运行时间比STE要长,而且在3种算法的运行时间中是最长的.这是因为TrustTensor算法是基于三阶张量分解算法,而STE算法是二阶张量下的算法,三阶张量在分解时候的时间复杂度是高于二阶张量的.

我们提出的增量更新的张量分解算法IncTrustTensor在运行时间上远远小于其他两个算法,并且算法的运行时间不随数据量的变大而增长.这是因为STE算法和TrustTensor算法在每个增量步骤的时候要对原来数据和增量的数据而且合并后的新数据集重新做分解运算,所以算法时间会有较大增长;而IncTrustTensor在增量步骤的时候只需要对新增量的数据进行分解计算,这就保证了每个步骤的计算时间都保持在相对较低的水平,算法运行时间远远小于STE算法和TrustTensor算法. 5 总 结

本文首先对现有的基于用户信任的算法进行了总结,为了解决目前的基于信任的推荐算法都是单一信任模型的缺陷,本文提出了一种基于主题的张量分解的用户信任推荐算法,用来挖掘用户在不同的物品选取的时候对不同朋友的信任程度;由于社交网络更新速度快,鉴于目前的基于信任算法大都是静态算法,本文提出了一种增量更新的张量分解算法用于用户信任的推荐算法.最后,通过实验证明TrustTensor算法与IncTrustTensor算法比现有算法具有更好的准确性,并且IncTrustTensor算法可以大幅度提高推荐算法在训练数据增加后的模型训练效率,适合更新速度快的社会化网络中的推荐任务.

参考文献
[1] Adomavicius G, Tuzhilin A. Toward the next generation of recommender systems: A survey of the state-of-the-art and possible extensions. IEEE Trans. on Knowledge and Data Engineering, 2005,17:734-749 .
[2] Wang LC, Meng XW, Zhang YJ. Context-Aware recommender systems. Ruan Jian Xue Bao/Journal of Software, 2012,23(1):1-20 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/4100.htm
[3] Sherchan W, Nepal S, Paris C. A survey of trust in social networks. ACM Computing Surveys (CSUR), 2013,45(4):47 .
[4] Ruohomaa S, Kutvonen L. Trust management survey. In: Proc. of the 3rd Int’l Conf. on Trust Management. Berlin: Springer- Verlag, 2005. 77-92 .
[5] Singh S, Bawa S. A privacy, trust and policy based authorization framework for services in distributed environments. Int’l Journal of Computer Science, 2007,2(2):85-92.
[6] Granovetter M. The strength of weak ties. American Journal of Sociology, 1973,78(6):l360-1380 .
[7] Gilbert E, Karahalios K. Predicting tie strength with social media. In: Proc. of the SIGCHI Conf. on Human Factors in Computing Systems. New York: ACM Press, 2009. 211-220 .
[8] Xiang R, Neville J, Rogati M. Modeling relationship strength in online social networks. In: Proc. of the 19th Int’l Conf. on World Wide Web. New York: ACM Press, 2010. 981-990 .
[9] Zarghami A, Fazeli S, Dokoohaki N, Matskin M. Social trust-aware recommendation system: A t-index approach. In: Proc. of the 2009 IEEE/WIC/ACM Int’l Joint Conf. on Web Intelligence and Intelligent Agent Technology, Vol.3. Washington: IEEE Computer Society, 2009. 85-90 .
[10] Jamali M, Ester M. TrustWalker: A random walk model for combining trust-based and item-based recommendation. In: Proc. of the 15th ACM SIGKDD Int’l Conf. on Knowledge Discovery and Data Mining. New York: ACM Press, 2009. 397-406 .
[11] Ma H, King I, Lyu MR. Learning to recommend with social trust ensemble. In: Proc. of the 32nd Int’l ACM SIGIR Conf. on Research and Development in Information Retrieval. New York: ACM Press, 2009.203-210 .
[12] Karatzoglou A, Amatriain X, Baltrunas L, Oliver N. Multiverse recommendation: n-dimensional tensor factorization for context- aware collaborative filtering. In: Proc. of the 4th ACM Conf. on Recommender Systems. New York, ACM Press, 2010. 79-86 .
[13] Kolda TG, Bader BW. Tensor decompositions and applications. SIAM Review, 2009,51(3):455-500 .
[14] De Lathauwer L, De Moor B, Vandewalle J. A multilinear singular value decomposition. SIAM Journal on Matrix Analysis and Applications, 2000,21(4):1253-1278 .
[15] Tucker LR. Some mathematical notes on three-mode factor analysis. Psychometrika, 1966,31(3):279-311 .
[16] Harshman RA. Foundations of the PARAFAC procedure: Models and conditions for an “explanatory” multimodal factor analysis. UCLA Working Papers in Phonetics, 1970,16:1-84.
[17] Carroll JD, Chang J. Analysis of individual differences in multidimensional scaling via an N-way generalization of “Eckart-Young” decomposition. Psychometrika, 1970,35(3):283-319 .
[18] Bader BW, Kolda TG. Efficient MATLAB computations with sparse and factored tensors. SIAM Journal on Scientific Computing, 2007,30(1):205-231 .
[19] O’Brien GW. Information management tools for updating an SVD-encoded indexing scheme [MS. Thesis]. Knoxville: University of Tennessee, 1994.
[20] Massa P, Avesani P. Trust-Aware bootstrapping of recommender systems. In: Proc. of the 2007 ACM Conf. on Recommender Systems. New York: ACM Press, 2006. 29-33 .
[2] 王立才,孟祥武,张玉洁.上下文感知推荐系统.软件学报,2012,23(1):1-20. http://www.jos.org.cn/1000-9825/4100.htm