论文部分内容阅读
随着互联网的迅猛发展,网络购物,网络音乐和视频,网络交友等出现在了大多数人的生活中。人们习惯了网上听音乐,购物,习惯了看好友推荐给自己的视频,习惯了买完东西后及时给一个评价,或者为自己喜欢的电影贴个标签。人们丰富多彩的网络生活在互联网上留下了很多个性化信息。目前,推荐系统领域正面临着数据稀疏和冷启动问题,且传统的推荐方法很难满足用户越来越多的个性化需求,因此很多学者尝试将用户在网络上留下的多种个性化信息集成到推荐方法中,从额外的信息中学习用户的兴趣,从而为用户提供更好的推荐。目前,比较常用的信息有用户的社会网络信息,用户为物品贴的标签信息,用户和其他用户之间的信任关系,用户的地理位置信息等。但是,经过调查研究发现,大多数研究者仅仅利用了一种附加信息,即有的只研究基于社会网络信息的推荐,有的仅仅研究基于标签的推荐,有的只研究基于地理位置的推荐。不得不说,每一种研究都为后来人提供了很多宝贵的经验和财富,让后来人更加了解每种信息对于推荐的影响和效果。可是,从另一角度理解,如果每种单个信息都能很好的辅助推荐,那么同时利用多种信息应该可以得到更加精确的推荐,更有助于缓解推荐系统面临的数据稀疏和冷启动问题。基于这样的想法,本文进行了两次实验,分别在不同的推荐方法中尝试集成多种信息,验证同时利用多种信息是否比只利用一种信息更加有助于提升推荐效果。文章首先在基于用户的协同过滤方法(user-based collaborative filtering, cf_user)中逐步集成用户的社会网络朋友关系和标签信息,分别形成了只利用用户朋友关系的sn_rating (collaborative filtering based on social network)算法,只利用标签信息的cf_tag(collaborative filtering based on tags)算法,以及同时利用这两种信息的cf_snjag(collaborative filtering based on social network and tags)算法。Sn_rating算法不同于cf_user方法,它直接将用户的朋友关系当做用户兴趣相似的好友,而不是像cf_user算法中那样,利用评分计算相似好友。Cf_tag算法利用TFIDF(term frequency inverted document frequency)方法为用户和物品建立标签向量,并依据标签向量计算用户对物品的偏好程度。Cf_sn_tag算法则先利用朋友关系和评分数据来计算用户的相似好友,并进一步用朋友关系为冷启动用户拓展标签,然后利用标签向量计算目标用户对物品的偏好。在第一个实验基础上,文章在矩阵分解推荐方法上进行了进一步实验,并提出了基于标签和类别信息加权的矩阵分解推荐方法MF_genre_tag_weight (matrix factorization based on the weight of genres and tags)。该算法同时考虑了用户正则项和物品正则项。算法不直接利用用户的社会网络朋友关系,而是利用标签信息和物品类别信息计算用户的相似好友,这些好友不局限于用户的社会网络朋友。同时,算法利用LSI(latent semantic indexing)算法识别标签数据的同义词和一词多义情况。梯度下降方法被用来求解矩阵分解的最终局部最优解。本文在多个真实数据集上,采用多种评价指标对上述两次实验进行了验证。采用的数据集分别是Movielens, last.fm以及从豆瓣网上爬取的Douban数据集。数据集中主要包含用户对物品的评分信息,用户的社会网络信息,用户为物品贴的标签信息,物品的类别信息。实验采用的评价指标主要有分类准确度,预测准确度。由于第一个实验采用Top-N推荐,因此主要采用分类准确度,即准确率,召回率,f1值,以及Discounted Cumulative Gain (DCG)。第二个实验采用评分预测,采用的是MAE和RMSE两个指标。实验中将本文的算法和其他算法进行了比较,实验结果表明,同时集成多种信息确实有助于提升推荐效果。具体的,标签信息容易得到更准确的推荐,社会网络信息也能反映出用户的真实兴趣。用户感兴趣的物品的类别信息能很好的界定出用户的兴趣范围。