SlideShare uma empresa Scribd logo
1 de 122
Baixar para ler offline
Author xlvector, Copyrights belong to CASIA




                     摘    要

     推荐系统(Recommender System)是帮助用户发现内容,克服信息过载的重
要工具。它通过分析用户的行为,对用户兴趣建模,从而预测用户的兴趣并给
用户做推荐。推荐系统的早期研究主要集中在静态用户行为分析领域,即不考
虑用户行为发生的时间,而仅仅研究用户行为中与时间无关的静态模式。 近
年,随着Netflix推荐比赛的推动以及大量包含时间信息的数据集的公开,很多
研究人员转向研究推荐系统的动态特性,主要包括用户兴趣变化的动态模型,
基于时间上下文的推荐等等问题。 但这个领域中还存在很多关键技术需要解
决。
     本文基于大量公开的用户行为数据集对推荐系统动态特性进行了深入的研
究,包括评分预测问题中用户兴趣的动态模型,Top-N推荐问题中用户兴趣的
动态模型,以及系统时效性对用户兴趣预测的影响等。本文的主要工作和贡献
如下:

 1 提出了评分预测问题中用户兴趣预测的动态模型:评分预测问题是推荐
     系统中研究最多的问题之一,它的主要任务是通过分析用户对物品的评
     分数据,预测给定用户对给定物品的评分。 本文将时间信息引入到这个
     问题中,通过矩阵分解模型对四种不同的时间效应进行建模,提出了一
     个动态的用户兴趣模型。 同时,本文还利用级联模型对季节效应进行建
     模。 实验方法表明该方法相对于静态用户兴趣模型,能够显著的提高评
     分预测的精度。

 2 提出了Top-N推荐问题中用户兴趣预测的动态模型:Top-N推荐问题是实
     际推荐系统中最常见的问题,它的主要任务是通过分析用户的日志数据,
     给用户兴趣建模,并根据用户兴趣模型给用户推荐N 个他最可能喜欢的
     物品。 本文将时间信息引入到这个问题中,通过在传统的用户物品二分
     图上引入用户时间节点来对用户的长期兴趣和短期兴趣建模,从而让用
     户的推荐结果能够同时反映他们的长期兴趣和短期兴趣。 同时,本文还
     提出了一个基于图模型的路径融合算法,该算法能够有效的从图模型中
     计算出物品相对于每个用户的个性化排名。 实验方法表明引入用户时间
Author xlvector, Copyrights belong to CASIA



ii                                 动态推荐系统关键技术研究


     节点后的图模型相对于时间无关的静态模型,能够显著的提高Top-N推荐
     的准确度,同时路径融合算法相对于其他基于图的排名算法,在推荐准
     确度上也有较大的优势。

     3 系统地研究了时效性对推荐系统的影响,并提出了在不同时效性网站中
     都具有较高推荐精度的推荐算法:用户的行为和兴趣同时受到社会因素
     和个人因素的影响。 但在不同时效性的网站中,这两种因素对用户行为
     的影响程度不同。 时效性快的网站中,用户更容易受到社会因素的影响,
     而在时效性慢的网站中,用户更容易受到个人因素的影响。 为了能在不
     同时效性的网站中都做出准确的推荐,本文提出了时间的图模型,该模
     型通过引入两种新的节点来对社会因素和个人因素分别建模,并通过调
     整这两种节点的权重来调整推荐系统的精度。 实验表明该方法能够在不
     同时效性的数据集中都取得较高的推荐准确率。

     4 设计了动态推荐系统的原型系统:论文在总结前几章工作的基础上设计
     了动态推荐系统的原型系统。 该系统能够实时响应用户的最新行为,并
     根据用户行为的变化来实时的调整推荐结果,从而不断改善用户在推荐
     系统中的体验。


关键词: 推荐系统,个性化,协同过滤,时间效应,季节效应,推荐系统动态
特性
Author xlvector, Copyrights belong to CASIA




                                  Abstract

    Recommender System is an important tool for users to discovery information
of their interest, it is also an important tool to overcome information overload
problem. The main idea of recommender system is to make recommendation by
analyzing users’ historical behaviors. Early researches on recommender system
always neglect temporal information, and most of them are focused on the anal-
ysis of users’ static behaviors. In recent years, because of Netflix Prize, more and
more data sets including temporal information are released, and more and more
researchers are studying on temporal recommendation problem. However, there
are many problems left in this research area.
    This paper investigate the temporal recommendation problem by analyzing
many public released data sets. Following are main contributions of this paper:

   1 Temporal recommendation for rating prediction problem: Rating predic-
     tion problem is the most famous problem in recommender system, its main
     task is to predict a given user’s rating on a given item by analyzing her his-
     torical rating on other items. In this paper, we incorporate temporal infor-
     mation into this problem, and propose a latent factor model to model four
     different temporal effects. Furthermore, we also proposed a cascade model
     to model seasonal effects. Experimental results show that our method can
     achieve higher accuracy in rating prediction problem than non-temporal
     methods.

   2 Temporal recommendation for top-N recommendation problem: Top-N rec-
     ommendation problem is the most important problem in real recommender
     system, its main task is to recommend N items to every user which will be
     of their interests by analyzing users’ historical behaviors. In this paper, we
     introduce a new type of node, session node, into user-item bipartite graph
     to model users’ long term and short term interests. Furthermore, we also
     proposed a new graph-based personal ranking method called PathFusion to
Author xlvector, Copyrights belong to CASIA



iv                                                       动态推荐系统关键技术研究


       make recommendation by the new graph model. Experimental results show
       that our method can make higher accuracy than non-temporal methods and
       other temporal recommendation methods in top-N recommendation prob-
       lem.

     3 Influence of system update rate on recommender system: User behavior is
       influenced by social factor and personal factor. However, in the websites
       with different update rates, these two factors will have different influence.
       In fast updating sites, users are more influenced by social factor while in
       slow updating sites, users are more influenced by personal factor. In this
       way, we need different recommender systems in web sites with different
       update rates. We proposed a session graph model which introduce two new
       types of nodes into user-item bipartite graph to model social factor and
       personal factor. By controlling the weight of these two new types of nodes,
       the recommendation algorithm can control the influence of social factor
       and personal factor on final recommendation results. Experimental results
       show that our method can achieve high accuracy in systems with different
       update rate.

     4 Prototype of temporal recommender system: We design a prototype of
       temporal recommender system. This system can return real-time recom-
       mendation to users after they have new behavior, and can tune the ranking
       of results by user feedback. In this way, this system can improve user
       experience in real time by their feedback.


Keywords: recommender systems, personalization, collaborative fltering, tem-
poral effects, seasonal effects, temporal dynamics in recommender systems
Author xlvector, Copyrights belong to CASIA




                                                              目               录


摘要 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·   i

Abstract · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · iii

目录 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·   v

第一章 引言 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·                 1
      1.1      研究背景与意义 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·                       1
      1.2      动态推荐系统的定义 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·                             6
               1.2.1         术语与记号 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·               6
      1.3      研究内容 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·            7
      1.4      数据集介绍 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·               7
               1.4.1         Netflix 电影评分数据集 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·                              8
               1.4.2         MovieLens 电影评分数据集 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·                                   8
               1.4.3         CiteULike 论文书签数据集 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·                                 8
               1.4.4         Delicious 书签数据集 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·                         9
      1.5      论文结构 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·            9

第二章 推荐系统相关研究综述 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 11
      2.1      引言 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 11
      2.2      推荐系统的商业应用 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 12
      2.3      推荐系统的主要方法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 14
               2.3.1         协同过滤 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 15
               2.3.2         基于人口统计学的过滤 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 17
               2.3.3         内容过滤 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 18
               2.3.4         社会化过滤 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 20
Author xlvector, Copyrights belong to CASIA



vi                                                                                           动态推荐系统关键技术研究


           2.3.5       基于位置的过滤 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 22
     2.4   推荐系统动态特性的研究现状 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 23
     2.5   推荐系统评测 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 25
           2.5.1       准确度 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 26
           2.5.2       覆盖度 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 27
           2.5.3       多样性 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 27
           2.5.4       新颖性和惊喜度 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 28
     2.6   本章小结 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 28

第三章 评分预测问题中用户兴趣预测的动态模型 · · · · · · · · · · · · · · · · · · · · · · · 31
     3.1   引言 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 31
     3.2   任务定义 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 32
     3.3   推荐系统的矩阵分解模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 33
     3.4   显性反馈系统中用户兴趣的动态模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · 36
           3.4.1       社会兴趣随时间变化 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 36
           3.4.2       用户偏好随时间的变化 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 37
           3.4.3       物品受欢迎程度随时间的变化 · · · · · · · · · · · · · · · · · · · · · · · · · · · · 38
           3.4.4       用户兴趣随时间的变化 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 39
           3.4.5       模型的优化 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 40
     3.5   季节效应模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 42
           3.5.1       整体评分的周期性建模 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 43
           3.5.2       用户行为周期性的模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 43
           3.5.3       物品周期性的模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 44
     3.6   实验与分析 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 44
           3.6.1       实验数据 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 44
           3.6.2       评测方法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 45
           3.6.3       TRSVD的实验结果 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 45
           3.6.4       季节效应的实验结果 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 47
     3.7   本章小结 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 48
Author xlvector, Copyrights belong to CASIA



目录                                                                                                                                vii


第四章 Top-N推荐中用户兴趣预测的动态模型 · · · · · · · · · · · · · · · · · · · · · · · · · 49
    4.1   引言 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 49
    4.2   问题定义与方法概述 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 50
    4.3   协同过滤的二分图模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 51
          4.3.1       基于随机游走的算法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 52
          4.3.2       路径融合算法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 53
    4.4   隐反馈数据的动态变化 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 56
          4.4.1       用户的长期兴趣和短期兴趣 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 56
          4.4.2       基于SGM的推荐算法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 58
    4.5   实验结果 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 60
          4.5.1       数据集 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 60
          4.5.2       评测指标 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 61
          4.5.3       对比的算法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 61
          4.5.4       时间无关推荐的实验结果 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 62
          4.5.5       时间相关推荐的实验结果 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 64
    4.6   本章小结 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 66

第五章 时效性对推荐系统的影响 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 69
    5.1   引言 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 69
    5.2   在线系统的变化速率 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 70
          5.2.1       物品的生存周期 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 70
          5.2.2       物品流行度的变化率 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 73
    5.3   不同变化率系统中的推荐模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 74
          5.3.1       图模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 75
          5.3.2       时间段图模型中的推荐算法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 76
          5.3.3       时间段图模型的理解 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 76
    5.4   实验与分析 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 77
          5.4.1       实验数据 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 77
          5.4.2       实验设置与评测方法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 78
Author xlvector, Copyrights belong to CASIA



viii                                                                                              动态推荐系统关键技术研究


               5.4.3        和其他算法的比较 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 79
               5.4.4        实验结果 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 80
       5.5     本章小结 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 83

第六章 动态推荐系统原型设计与实现 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 87
       6.1     引言 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 87
       6.2     推荐引擎在线系统 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 88
               6.2.1        用户行为提取和分析模块 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 88
               6.2.2        相关推荐模块 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 89
               6.2.3        推荐解释模块 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 90
               6.2.4        过滤和排名模块 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 90
       6.3     离线系统 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 91
               6.3.1        用户行为权重计算模块 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 92
               6.3.2        相似度矩阵计算模块 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 92
               6.3.3        用户反馈模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 92
       6.4     本章小结 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 93

第七章 结束语 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 95
       7.1     研究工作总结 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 95
       7.2     对未来工作的展望 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 96

参考文献 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 99

发表文章目录 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 111

致谢 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 113
Author xlvector, Copyrights belong to CASIA




                                       表          格

 1.1   著名的使用推荐系统的网站以及他们的使用领域 · · · · · · · · · · · · · · · · ·                                  5
 1.2   动态推荐系统中的术语记号定义与说明 · · · · · · · · · · · · · · · · · · · · · · · · · ·                    6

 3.1   TRSVD和RSVD模型在Probe测试集上的RMSE的比较 · · · · · · · · · · · 46
 3.2   TRSVD和RSVD模型在Quiz数据集上的RMSE的比较 · · · · · · · · · · · · 46
 3.3   TRSVD和RSVD对不同类型用户的预测精度比较 · · · · · · · · · · · · · · · · 47
 3.4   Netflix Proble数据集上使用不同季节效应对预测精度的影响 · · · · · · 48

 4.1   CiteULike和Delicious两个数据集上构建的SGM的基本信息 · · · · · · · 64
 4.2   各种算法在CiteULike数据集上的命中率 · · · · · · · · · · · · · · · · · · · · · · · · · 67
 4.3   各种算法在Delicious数据集上的命中率 · · · · · · · · · · · · · · · · · · · · · · · · · · 67

 5.1   5个不同数据集上的Ψ(1), Ψ(30) · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 75
 5.2   5个不同网站的数据集的详细信息· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 78
 5.3   用于抽取目标网页的正则表达式 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 78
 5.4   8种算法在5个数据集上的召回率 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 80
 5.5   Pop在5个数据集上相对于UserCF/ItemCF的召回率的提高比例 · · · 81
 5.6   5个数据集上SGM相对USGM和ISGM的精度提高倍数 · · · · · · · · · · · · 82
Author xlvector, Copyrights belong to CASIA
Author xlvector, Copyrights belong to CASIA




                                               插             图

 2.1   著名商用推荐系统的用户界面 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 13
 2.2   著名的个性化电台和电视台的用户界面 · · · · · · · · · · · · · · · · · · · · · · · · · · 14
 2.3   Amazon推荐系统的用户解释 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 16
 2.4   IMDB中不同美剧的男女分布 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 18
 2.5   Jinni给功夫熊猫编辑的内容属性 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 20
 2.6   Amazon利用Facebook Connector做出的社会化推荐 · · · · · · · · · · · · · · 21
 2.7   Facebook的好友推荐系统 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 22
 2.8   MappyFriends的基于位置的旅游推荐系统 · · · · · · · · · · · · · · · · · · · · · · · 23
 2.9   美国用户对于5个不同汽车品牌的关注度随时间变化的曲线 · · · · · · · 24
 2.10 GetGlue的推荐结果反馈界面 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 27

 3.1   不同网站中收集用户显性反馈的界面设计 · · · · · · · · · · · · · · · · · · · · · · · · 32
 3.2   一个简单的用户物品评分矩阵的例子 · · · · · · · · · · · · · · · · · · · · · · · · · · · · 34
 3.3   Netflix数据集中总平均分随时间的变化曲线 · · · · · · · · · · · · · · · · · · · · · · 37
 3.4   Netflix数据集中用户不同时间段的平均分¯ut 随时间变化的曲线 · · · 39
                            r
 3.5   Netflix数据集中物品的平均分随物品在线时间变化的曲线 · · · · · · · · 40
 3.6   Google Trend中电影相关四个搜索词从2004年以来在美国的搜索
       量变化曲线 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 42

 4.1   用户-物品关系的二分图表示 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 52
 4.2   路径融合算法三条准则的图示 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 54
 4.3   一个简单的时间段图模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 58
 4.4   在SGM上利用路径融合算法给用户A在2时段做出推荐的例子 · · · · · 60
 4.5   CiteULike数据集上算法的HitRatio随ρ变化的曲线 · · · · · · · · · · · · · · · · 63
 4.6   Delicious数据集上算法的HitRatio随ρ变化的曲线 · · · · · · · · · · · · · · · · · 63
 4.7   CiteULike数据集上所有算法的HitRatio随β变化的曲线 · · · · · · · · · · · 65
Author xlvector, Copyrights belong to CASIA



xii                                                                          动态推荐系统关键技术研究


      4.8   Delicious数据集上所有算法的HitRatio随β变化的曲线 · · · · · · · · · · · · 66

      5.1   物品生存周期的分布曲线(对数图) · · · · · · · · · · · · · · · · · · · · · · · · · · · · 71
      5.2   五个网站中物品生存周期和流行度之间的关系曲线 · · · · · · · · · · · · · · · 72
      5.3   5个网站中Ψ(τ )(Y轴)随τ (X轴)变化的曲线。 · · · · · · · · · · · · · · · · · · · · · 74
      5.4   不同算法法在Wikipedia数据集中推荐结果的准确率/召回率曲线 · 83
      5.5   不同算法法在Sourceforge数据集中推荐结果的准确率/召回率曲线                                                             84
      5.6   不同算法法在NYTimes数据集中推荐结果的准确率/召回率曲线 · · 84
      5.7   不同算法法在Blogspot数据集中推荐结果的准确率/召回率曲线 · · · 85
      5.8   不同算法法在Youtube数据集中推荐结果的准确率/召回率曲线 · · · 85

      6.1   完整推荐系统的三个组成部分 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 87
      6.2   推荐引擎的设计框图 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 88
Author xlvector, Copyrights belong to CASIA




                            第一章   引言

1.1      研究背景与意义
      随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过
载(Information overload)的时代。 在这个时代,无论是作为信息消费者的普通
用户,还是作为信息生产者的内容提供商或者产品提供商都遇到了很大的挑
战。 作为用户,如何从大量的信息中找到自己感兴趣的信息是一件非常困难
的事情。 而作为提供商,如何让自己生产的信息脱颖而出,受到广大用户的
欢迎,也是一件非常困难的事情。 因此,很多研究人员和公司开发了推荐系
统(Recommender System)来解决这一矛盾。推荐系统的任务就是联系用户和信
息,一方面帮助用户发现对自己有价值的信息,而另一方面让信息能够展现在
对它有兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。
      从用户的角度出发,自互联网诞生以来,随着网络信息的逐渐增多,用户
寻找信息的方法经历了几个重要阶段。早期用户主要靠直接记住感兴趣网站的
网址来寻找内容,后来Yahoo!提出了分类目录系统,将网站分门别类,方便用
户查询。 著名的目录网站还有DMOZ1。 但随着信息越来越多,分类目录也只
能记录少量的网站,于是产生了搜索引擎。
      以Google为代表的搜索引擎可以让用户通过关键词找到自己需要的信息。
但是,搜索引擎需要用户主动的提供关键词来寻找信息,因此它不能解决用户
的很多其他需求,比如当用户无法找到准确描述自己需求的关键词时,搜索引
擎就无能为力了。和搜索引擎一样,推荐系统也是一种帮助用户快速发现有用
信息的工具。和搜索引擎不同的是,推荐系统不需要用户提供明确的需求,而
是通过分析用户的历史行为来给用户的兴趣建模从而主动给用户推荐出能够满
足他们兴趣和需求的信息。因此,从某种意义上说,推荐系统和搜索引擎对用
户来说是两个互补的工具。 搜索引擎满足了用户有明确目的时主动查找的需
求,而推荐系统能够在用户没有明确目的的时候帮助他们发现让他们感兴趣的
新内容。
      从信息的角度出发,推荐系统可以更好的发掘信息的长尾(The Long Tail)。
 1
     http://www.dmoz.org/
Author xlvector, Copyrights belong to CASIA



2                                 动态推荐系统关键技术研究


长尾理论[3]指出,电子商务网站相对于传统零售超市的优点是电子商务网站可
以给用户提供更多的选择。因为电子商务网站没有货架的成本,增加一个商品
只需要在计算机中添加一条记录。但同时长尾的出现也给电子商务网站带来了
新的挑战,即如何将大量的商品展现给潜在消费用户。
    社会学领域有一个著名的马太效应[62]问题。 信息科学领域也有同样的问
题。马太效应指的是好的越好,坏的越坏,多的越多,少的越少的现象。比如
一个电子商务网站可以提供如下的方式让用户找到信息。 第一种是热门商品
列表,该列表包含了网站一段时间内最热门的商品。热门商品列表的长度是有
限的,因此只有最热门的商品才会进入列表。如果用户依赖于这个列表寻找商
品,那么进入到这个列表中的商品就会越来越热门,而进入不了这个列表中的
商品就会越来越不热门,从而也越来越不容易进入这个列表。这就是一种马太
效应。 搜索引擎也有马太效应的问题[20],在热门搜索词排名靠前的网页会越
来越热门,能够获得越来越多的外链,从而在PageRank算法中排名越来越高,
也就更容易在热门搜索词的搜索结果中获得比较高的排名。推荐系统作为一种
帮助用户寻找信息的重要工具,也面临马太效应的挑战[27]。 但是,因为推荐
系统是一个主动给用户展现信息的系统,因此推荐系统能够更好的控制每个商
品的展现次数,让长尾中的商品能够在需要他们的用户面前得到充分的展示。
一个好的推荐系统不仅应该能够帮助用户发现有用的信息,而且需要更好的发
掘长尾,让有用的信息能够提供给需要他的用户。
    推荐系统的研究已经有了20多年的历史。 推荐系统最早的研究起始于美
国明尼苏达大学GroupLens 研究小组对一个叫MovieLens 的电影推荐系统的
研究。 该系统首先让用户对自己喜欢的电影评分,然后通过分析用户的评
分数据预测用户的兴趣,给用户推荐他们没有评分但可能会喜欢的电影。 后
来Amazon将推荐系统应用到电子商务中,他们通过分析用户的购买、 浏览行
为,预测用户可能对什么商品感兴趣,从而通过推荐系统成功的将销售额提
高了30% [3]。 近年,推荐系统在学术界和工业界都有了很大的发展。 在学术
界,ACM从2008年开始主办了专门的推荐系统国际会议(ACM Conference on
Recommender System),很多公司也公开了它们的数据集供大家研究,其中比
较有名的是Netflix举办的推荐系统大赛。在工业界,一方面出现了很多独立的
推荐系统网站,比如Pandora,Jinni,另一方面,推荐系统成为了很多网站的
重要功能。比如Facebook和Twitter通过推荐系统给用户推荐好友,Google利用
推荐系统给用户推荐新闻,Youtube,Netflix通过推荐系统推荐视频。 表1.1列
Author xlvector, Copyrights belong to CASIA



第一章   引言                                           3


出了不同领域著名的推荐系统。

   推荐系统的主要任务,是找到用户可能会感兴趣的物品,然后以一定的形
式推送给用户。 因此,推荐系统的两个主要问题就是:1)如何找到用户感兴趣
的东西;2)以什么形式告诉用户。前一个问题的解决主要依赖于数据挖掘和机
器学习的算法,而后一个问题的解决主要依靠人机交互界面的设计。本文主要
研究前一个问题,即如何预测用户的兴趣。

   通过多年的研究,研究人员提出了很多预测用户兴趣的方法。 内容过
滤(Content Filtering) [6, 13, 61] 算法认为用户会喜欢和他以前喜欢的物品在内
容上相似的物品。 比如用户买了一本数据挖掘的书,那么内容过滤算法会给
他推荐另一本相似的数据挖掘的书。 内容过滤算法主要利用了物品的内容数
据,比如一本书的作者,标题,内容,关键词,出版商等信息,或者一首歌曲
的歌手,曲风,流派,音频等信息。和内容过滤不同,协同过滤(Collaborative
Filtering) [33, 53, 71] 不依赖于用户的属性信息和物品的内容信息,而仅仅通
过分析大量的用户对物品的行为数据,从中找出特定的行为模式,据此来预测
用户的兴趣并给用户做出推荐。近年,随着以Facebook和Twitter为代表的社会
网络的兴起,社会化过滤(Social Filtering)逐渐成为推荐领域的研究热点。社会
化过滤算法[24, 39, 43],认为用户的兴趣和他的好友的兴趣会有共同点,从而
可以通过分析用户好友的兴趣来预测给定用户的兴趣。除了上面说的算法,还
有利用用户年龄,性别,职业等属性(Demographics)做出的推荐,也有基于用
户地理位置(Location)的推荐算法等等。

   任何在线系统都是一个动态变化的系统,每天都会有大量的新用户加
入,老用户离开,也会有大量的新内容加入,旧内容消失。 同时,用户的年
龄,兴趣,社会关系,地理位置都会发生变化,物品的热门程度,人们对物品
的看法也都会随着时间而变化。 因此,时间信息对推荐系统来说是一种重要
的信息,一方面用户兴趣本身随时间变化,另一方面时间是一种重要的上下
文(Context)信息,对用户的行为有着重要的影响。早期的推荐系统研究对时间
相关的动态特性很少涉及,这是因为当时对静态用户行为分析才刚刚开始。但
最近几年,随着很多大时间跨度的商业网站用户行为数据的公开,以及静态用
户行为分析技术的成熟,很多研究人员开始研究用户行为的动态特性以及时间
信息在推荐系统中的作用。 特别是在Netflix的推荐系统比赛中[9, 79],很多参
赛者发现利用时间信息可以大大的提高推荐系统的预测精度,更加促进了这方
Author xlvector, Copyrights belong to CASIA



4                                 动态推荐系统关键技术研究


面的研究。
    本文将集中研究推荐系统的动态特性,研究如何利用时间信息提高推荐系
统的推荐质量。推荐系统的动态特性主要包含以下几个方面:


    • 用户兴趣是变化的。 用户兴趣变化的原因很多,可能是由于年龄增长,
     比如一个小孩子喜欢动画片,但长大了可能就不喜欢动画片了。 也有可
     能是转换生活状态,比如一个刚刚工作的大学生的兴趣相对上学时就会
     发生很大的改变。 此外,用户还可能受到周围事件的影响。 比如一个从
     来不看体育节目的人可能会在北京奥运会期间关注体育赛事。

    • 物品也是有生命周期的。例如一部电影刚上映的时候可能被很多人关注,
     但是经久不衰的电影是很少的,很多电影上映后不久就被人们淡忘了。
     此外物品也可能受新闻事件的影响,比如一部已经被淡忘的电影会因为
     突然被某个新闻事件涉及而重新热门起来。

    • 季节效应。 无论用户行为还是物品都会受到季节效应的影响。 比如人们
     夏天吃冰淇淋,冬天吃火锅,夏天穿T恤,冬天穿棉衣。此外,节日也会
     对用户行为产生影响,比如每年的圣诞节,人们就要去购物,每年的奥
     斯卡颁奖礼,人们就要关注电影。 因此,季节,节日是一种重要的时间
     上下文信息,对用户行为有着很大的影响。

    • 系统的动态变化速率。 在线系统都是动态变化的,但不同系统的变化速
     率却不相同。 比如新闻系统变化的很快,每天的热门新闻都是不同的,
     而一个新闻产生的很快,但消失的也很快。 相反,电影和音乐的系统变
     化的却比较慢。 经常有经典的电影和音乐能够雄踞排行榜长达几个月或
     者几年之久。


所有的这些动态特性,都决定了时间在推荐系统中的重要地位。只有实时跟踪
用户兴趣和物品变化的推荐系统,才能让用户有比较高的满意度,为用户找到
适合自己的物品提供帮助。
    本文主要研究了推荐系统的动态特性,探讨如何设计一个能够适应用户动
态兴趣变化的动态的推荐系统。
Author xlvector, Copyrights belong to CASIA



第一章   引言                                                                    5




             表 1.1: 著名的使用推荐系统的网站以及他们的使用领域
  领域             推荐系统                 网址
  图书             当当网                  http://www.dangdang.com
                 豆瓣读书                 http://book.douban.com
                 Amazon[53]           http://www.amazon.com
  新闻             GoogleNews[22, 54]   http://news.google.com
                 Genieo               http://www.genieo.com
  电影             Netflix[9]            http://www.netflix.com
                 Jinni                http://www.jinni.com
                 MovieLens            http://www.movielens.com
                 Rotten Tomatoes      www.rottentomatoes.com
                 Flixster             http://www.flixster.com
  音乐             豆瓣电台                 http://www.douban.fm
  [14, 19, 50]   Lastfm[16]           http://www.lastfm.com
                 Pandora              http://www.pandora.com
                 Mufin                 http://www.mufin.com
                 Lala                 http://lala.com
                 EMusic               http://www.emusic.com
                 Ping                 http://www.apple.com/itunes/ping/
  视频             Hulu[91]             http://www.hulu.com/recommendations
                 Youtube[7, 23]       http://www.youtube.com
                 Clicker              http://www.clicker.com
  文章             StumbleUpon          http://www.stumbleupon.com
                 CiteULike            http://www.citeulike.com
                 Google Reader        http://www.google.com/reader/
  旅游             Wanderfly             http://www.wanderfly.com
  [41, 47]       TripAdvisor          http://www.tripadvisor.com
  社会网络           Facebook             http://www.facebook.com/
                 Twitter              http://twitter.com/
  综合             Amazon               http://www.amazon.com
                 当当网                  http://www.dangdang.com
                 GetGlue              http://www.getglue.com
                 Hunch                http://www.hunch.com
                 Strand               http://www.strand.com
Author xlvector, Copyrights belong to CASIA



6                                          动态推荐系统关键技术研究



                表 1.2: 动态推荐系统中的术语记号定义与说明
    记号            说明         记号       说明
      D        用户行为数据集      N (u, t) 用户u在t时刻喜欢的物品集合
      DA       用户行为训练集      N (i, t)   在t时刻喜欢物品i的用户集合
      DT       用户行为测试集       R(u)        给用户u的推荐列表
      U          用户集合         tui      用户u对物品i产生行为的时间
      I          物品集合         rui        用户u对物品i的评分
    N (u) 用户u喜欢的物品集合          pui       用户u对物品i的喜欢程度
    N (i)     喜欢物品i的用户集合      rui
                              ˆ        用户u对物品i评分的预测值


1.2       动态推荐系统的定义

      动态推荐系统和传统时间无关的静态推荐系统的区别在于,它能够适应用
户兴趣和物品热门度的变化情况以及各种时间上下文,在给定的时间给用户推
荐他在这个时间段最可能感兴趣的物品。因此,动态推荐系统的任务主要就是
分析时间因素对用户行为和物品流行度的影响,并根据这些影响对用户做出最
好的推荐。
      正式的说,动态推荐系统的主要任务是设计出一个函数p,我们称为用
户兴趣函数。 定义用户集合为U,物品集合为I,时间集合为T 。 那么兴趣函
数p定义为如下映射:
                         p:U ×I ×T →R

而p(u, i, t)定义了用户u在时刻t对物品i的兴趣大小。
      如果是在时间无关的推荐系统中,兴趣函数p定义为如下的映射:

                          p:U ×I →R

而p(u, i)定义了用户u对物品i的兴趣大小。


      1.2.1   术语与记号

      表1.2列出了动态推荐系统中要用到的主要术语和记号。
Author xlvector, Copyrights belong to CASIA



第一章     引言                                    7


1.3    研究内容

      推荐系统中有两个主要的问题,一个是评分预测问题(Rating Prediction
Problem):给定用户对某些物品的评分,预测用户对其他物品的评分。用户评
分数据被称为显性反馈数据,所以评分预测问题也是基于显性反馈数据的推荐
问题。另一个问题是Top-N 推荐问题:给定用户对某些物品的行为数据,给每
个用户推荐N个他们最可能喜欢的物品。 这个问题不一定需要用户评分数据,
如果只有用户的隐性反馈数据(比如日志数据)
                    ,也可以用来做推荐,所以这
个问题也被称为基于隐性反馈数据的推荐问题。 在对这两个问题的早期研究
中,都是不考虑时间信息的。 但是,在实际系统中,无论是显性反馈(评分)
还是隐性反馈(观看,点击)
            ,都是有时间信息的,即用户行为产生的时间。
所以,在实际数据中,这两个问题都会转变为和时间相关的动态推荐问题。
      时间相关的评分预测问题是,如何根据用户的历史评分数据,来预测用户
将来会对某个物品给出什么样的评分。 而时间相关的Top-N推荐问题是,如何
通过分析用户的历史行为,在未来的某个特定时间点给用户推荐N个他们最可
能喜欢的物品。本文首先会研究如何解决这两个时间相关的推荐问题。解决这
两个问题的关键是研究时间效应,也就是时间是如何影响用户行为的。我们会
分析各种时间效应,并对他们建模,从而解决上面提到的两个主要问题。
      本文在研究用户和物品受时间影响的同时,也会从系统本身的角度研究时
间因素。每一个在线系统都是一个动态系统,他们的数据,无论是用户行为数
据和物品属性数据,都在时时刻刻的变化。但是,从系统的角度,不同系统的
变化速率是不同的。新闻网站比较注重时效性,变化很迅速,而电影或者音乐
的网站变化的相对比较慢。 一个系统变化迅速的体现是,新的物品不断的加
入,但是即使是热门物品,都不会热门太长。比如,每一个新闻的热门程度只
会维持很少的几天,但是经典的电影和音乐却可以热门几个月甚至几年时间。
一个在线系统的变化速度,对于如何设计它的推荐系统非常重要。因此最后本
文会研究系统变化速率对推荐系统的影响。



1.4    数据集介绍

      推荐系统的数据集很多,但提供了时间信息的数据集并不多。本文主要应
用了以下几个著名的数据集进行研究。
Author xlvector, Copyrights belong to CASIA



8                                              动态推荐系统关键技术研究


        1.4.1   Netflix 电影评分数据集

        Netflix 2 在2006年开展名为Netflix Prize推荐系统比赛的时候,公布了一个
有40万用户对17000部电影的评分的数据集。 数据集包含了一个用户在什么时
间对一部电影打了多少分的信息,时间跨度从1999年到2005年。这里的评分属
于1到5的区间。其中1分表示不喜欢,5分表示非常喜欢,分数越大,喜欢程度
越大。 这个数据集包含了1亿个评分,是一个很大的数据集,也是一个很近似
于实际系统的数据集。

        1.4.2   MovieLens 电影评分数据集

        MovieLens 3 是另一个著名的电影评分系统,也是一个早期的实验性的推荐
系统。这个数据集由三个不同大小的数据集组成:

        • MovieLens A (ML.A):这是最小的一个MovieLens数据集,包含了943个
         用户对1682部电影的十万条评分,以及评分的时间信息。 其中,每个用
         户都至少对20部电影有评分。

        • MovieLens B (ML.B): 这 是 一 个 中 等 大 小 的MovieLens数 据 集, 包 含
         了6040个 用 户 对3900部 电 影 的 一 百 万 条 评 分,以 及 评 分 的 时 间 信 息。
         其中,每个用户都至少对20部电影有评分。

        • MovieLens C (ML.C):这是一个大规模的MovieLens数据集,包含了71567个
         用户对10681部电影的一千万条评分,以及评分的时间信息。 同时,这个
         数据集还提供了用户对电影的10万条标签数据。

        1.4.3   CiteULike 论文书签数据集

        CiteULike 4 是一个著名的论文书签网站。它让研究人员把自己喜欢的论文
信息提交到它的网站上,同时让用户对这些论文打上标签。 CiteULike公布了
一个数据集,每一行是一条记录,由一个四元组构成,包括用户,论文,时间
和书签。这个数据集不包含评分数据,但包含了时间信息,因此可以作为一个
含时间信息的用户隐反馈数据集使用。
    2
      http://www.netflix.com
    3
      http://www.movielens.org/
    4
      http://www.citeulike.com/
Author xlvector, Copyrights belong to CASIA



第一章        引言                                  9


      1.4.4     Delicious 书 签数据集

      Delicious 5 是一个著名的书签网站。 它允许用户对互联网的任何一个网页
贴上标签。德国的研究人员通过爬虫(Web Crawler)从Delicious上下载了2005年
至2008年的绝大多数数据,公布了一个非常大的数据集(70G数据)。 这个数据
集每一行也是由一个四元组构成,包含用户,网址,时间和书签。由于这个数
据集的网页是以网址的形式给出的,因此我们可以知道每个网页的域名。该数
据集的数据量非常庞大,我们在实际实验中一般只抽取其中用户对特定域名
的网页的书签数据。 实验抽取的域名包含了维基百科,Sourceforge,blogspot,
nytimes等著名的网站。同时,因为这些网站拥有不同的动态特性,所以这个数
据集对于本文研究不同动态特性的网站中的用户行为有很大的帮助。


1.5      论文结构
      本文的其余正文内容由以下六章组成:

     • 第二章首先介绍了著名的商用推荐系统,然后按照不同的分类介绍了推
       荐系统的主要算法以及相关工作,并着重讨论了利用时间信息的动态推
       荐系统的相关研究工作,最后讨论了推荐系统的常用评测指标。

     • 第三章主要讨论了如何利用时间信息提高评分预测问题的预测精度,并
       给出了相关的实验结果及分析。

     • 第四章主要讨论了如何利用时间信息提高Top-N推荐的准确度,并给出了
       相关的实验结果及分析。

     • 第五章主要讨论了网站时效性对用户行为的影响,并研究了如何设计出
       在不同时效性网站中都能准确预测用户动态行为的推荐系统。

     • 第六章介绍了如何设计一个实际的动态推荐系统,讨论了动态推荐系统
       的各个主要模块的设计方法以及需要遵守的设计原则。

     • 第七章是论文的结束语和展望,在对目前工作简要总结的基础上,提出
       了动态推荐系统下一步研究的任务和方向。

 5
     http://www.delicious.com/
Author xlvector, Copyrights belong to CASIA
Author xlvector, Copyrights belong to CASIA




                     第二章            推荐系统相关研究综述

2.1      引言
      当今的时代是信息过载(Information overload)的时代[73]。互联网上充斥着
大量的信息,如何从这些信息里找到每个互联网用户感兴趣的信息,并把这些
信息推送给用户是推荐系统研究的主要问题。为了解决这一问题,推荐系统需
要对用户的历史行为进行挖掘,对用户兴趣进行建模,对用户未来的行为进行
预测。
      推荐系统的研究和很多早期的研究相关,比如认知科学(cognitive science)
[72],信息检索(information retrieval)[74],预测理论[4] 和管理科学[65]。从上世
纪90年代中期开始,研究人员开始研究如何利用用户对物品打分的数据来预测
用户的兴趣并给用户做推荐[39, 71, 76]。 从此,推荐系统开始成为一个比较独
立的研究问题。从1994年到2006年,推荐系统的主要研究都集中在基于邻域的
协同过滤算法的研究,GroupLens1994年提出了基于用户的协同过滤算法[71],
该算法是最早应用的协同过滤算法。 Amazon在2003年提出了基于物品的协同
过滤算法(ItemCF)[53],该算法是目前工业界应用最广泛的算法。
      美国著名的DVD租赁网站Netflix为了推动对推荐系统特别是评分预测问
题的研究,在2006年推出了Netflix Prize比赛1。 Netflix提供了一个大规模的包
含时间信息的用户电影评分数据集供研究人员研究[9]。 比赛的目标是希望能
够将当时最好的用户评分预测算法ItemCF的精度提升10%。从2006年到2009年
的3年比赛中,很多研究人员提出了大量的新算法[8, 10, 44, 80] 并成功的达到
了比赛的预期目标。 该比赛的成功不仅推动了学术界对推荐系统的深入研究,
也推动了工业界对用户个性化推荐问题的重视。
      近年,很多研究人员意识到基于用户显性评分数据的评分预测问题并非
推荐系统的全部,很多人开始对很多其他重要的问题进行研究。 其中最重要
的是如何利用用户的隐性反馈数据(Implicit Feedback Data)预测用户的喜好,
来给用户推荐他们最喜欢的物品。 这个问题被称为Top-N推荐问题。 该问题之
所以重要,是因为首先显性反馈数据相对隐性反馈数据非常少,用户的大量
 1
     http://www.netflixprize.com/
Author xlvector, Copyrights belong to CASIA



12                                  动态推荐系统关键技术研究


行为都是以隐反馈的形式存储的(比如谁看了什么,浏览了什么等等数据)
                                ,
其次Top-N推荐问题和实际推荐系统中遇到的问题(如何给每个用户一个推
荐列表)更加类似。 因此最近几年很多研究人员对Top-N推荐做了深入的研
究[21, 25, 35]。 Cremonesi [21]对评分预测问题和Top-N问题做了深入的研究,
发现评分预测问题中行之有效的算法在Top-N推荐中并不能取得好的推荐精
度。
      Netflix Prize比赛带来的另一个好处是推动了学术界对推荐系统动态特性
的研究。 Koren[45] 在Netflix Prize比赛中详细研究了Netflix电影推荐数据集中
的动态特性,并成功的利用时间信息提高了评分预测问题的预测精度。和评分
推荐问题类似,Top-N推荐问题中也存在用户兴趣变化等动态特性。 推荐系统
的动态特性包含了很多的方面。首先,时时刻刻都有新的用户和新的物品加入
系统,并且时时刻刻都有新的用户行为产生,所以动态推荐系统需要实时的对
用户的新行为作出响应,并且将新加入系统的物品以最快的速度推荐给可能喜
欢它们的用户。 无论是评分预测问题还是Top-N推荐的问题,推荐系统的基本
问题都是度量一个用户对物品的喜好程度或者是一个物品对一个用户的有用
程度。但是,度量用户对物品的喜好不仅取决于用户的喜好和物品的属性,也
取决于用户所处的环境,或者称做上下文(Context)。 上下文信息有很多类型,
主要包括时间,地点等等。其中,时间是一种重要的上下文信息,用户在不同
的时间可能喜欢不同的物品,物品在不同的时间也有不同的流行度。因此推荐
系统应该是一个动态系统,随着时间的变化会给用户不同的推荐结果。最近几
年,关于基于时间的推荐系统的研究有很多,有利用时间信息提高评分预测问
题的预测精度方面的研究[26, 45],也有如何利用时间信息提高Top-N推荐准确
率方面的研究[86]。
      在下面的各节中,我将首先介绍工业界的实际推荐系统的例子,然后详细
介绍推荐系统设计的主要方法和推荐系统的评测。最后,我们将详细介绍推荐
系统动态特性方面的相关研究。


2.2    推荐系统的商业应用
      推荐系统在很多商业网站中有很多成功的应用。其中最主要的应用是给每
个用户提供一个个性化的推荐列表。 使用个性化推荐系统的商业网站的著名
代表有Amazon 的电子商务推荐,Netflix和MovieLens的电影推荐,Youtube的
Author xlvector, Copyrights belong to CASIA



第二章   推荐系统相关研究综述                                  13


视频推荐[7],Pandora和Lastfm的音乐推荐[16],Google的新闻推荐[22, 54]以
及Facebook,Twitter和Linkedin的社会网络好友推荐。
   图2.2给出了著名商用推荐系统(Amazon, Netflix)的用户界面。 如图所示,
他们的推荐结果都有几个主要的部分组成:物品的描述(包括标题,简介和缩
略图,平均分)
      ,以及推荐的原因。 这两个推荐系统的推荐结果都是根据用户
过去的行为给用户做出推荐。因此可以推测他们的基础算法都是基于物品的邻
域算法,即假设用户会喜欢和他们以前喜欢的物品类似的物品。




                  (a) Amazon推荐系统用户界面




                  (b) Netflix推荐系统用户界面


             图 2.1: 著名商用推荐系统的用户界面

   音乐推荐是推荐系统中的一个专门的研究领域。音乐推荐中的著名应用就
是个性化电台。个性化电台让用户对自己听到的音乐不断的反馈,然后实时的
通过用户的反馈来更换用户的音乐播放列表,让用户越来越多的听到令他们满
意的歌曲。 这方面著名的应用有国外的Pandora,Lastfm [16]和国内的豆瓣电
Author xlvector, Copyrights belong to CASIA



14                                       动态推荐系统关键技术研究


台(图2.2(a))。 和电台类似,youtube也推出了称为Leanback的个性化电视台应
用(图2.2(b))。 个性化电视台和音乐电台类似,也让用户对自己看到的视频不
断反馈,并实时的通过用户的反馈更换用户的视频播放列表。




                    (a) 豆瓣电台的用户界面




                (b) Youtube个性化电视台的用户界面


           图 2.2: 著名的个性化电台和电视台的用户界面



2.3   推荐系统的主要方法
      最近几年关于推荐系统的研究很热门,很多研究者都提出了不同的推荐方
法。这些方法可以按照两种方法分类,第一种按使用的数据来分类,可以分为
协同过滤,内容过滤和社会化过滤等等。另一种按照模型来分类,可以分为基
于邻域的模型,矩阵分解模型和图模型。本节,我们将基于第一种分类方法对
推荐系统的主要方法进行介绍,并在介绍每种方法时介绍他们常用的模型。
      推荐系统会使用各种不同的数据。 如果推荐系统仅仅利用用户的行为数
Author xlvector, Copyrights belong to CASIA



第二章   推荐系统相关研究综述                                          15


据,根据用户的历史兴趣来给用户做推荐,那么这种方法被称为协同过滤算
法。如果推荐系统利用了物品的内容数据,计算用户的兴趣和物品描述之间的
相似度,来给用户做推荐,称为内容过滤。如果推荐系统利用了用户之间的社
会网络信息,利用用户在社会网络中的好友的兴趣来给用户做推荐,称为社会
化过滤。下面将对这几种方法都做一个详细的介绍。

   2.3.1   协同过滤

   协同过滤(Collaborative Filtering)是推荐系统领域最著名的算法。 该算
法主要通过研究用户的历史行为来给用户的兴趣建模并给用户做出推荐。
GroupLens 在1994年发表了第一篇协同过滤算法的论文[71],该文章提出了基
于用户的协同过滤算法(user-based collaborative filtering)。2000年,Amazon在
论文[53]中提出了基于物品的协同过滤算法(item-based collaborative filtering)。
这两个算法是目前商用推荐系统中最著名的算法。
   基于用户的协同过滤算法(UserCF)认为,一个用户会喜欢和他有相似兴趣
爱好的用户喜欢的物品。因此,要对一个用户做推荐,首先得找到和他兴趣爱
好相似的用户。 在协同过滤中,两个用户兴趣相似是因为他们喜欢相似的物
品。 简单的说,给定用户u, v,令N (u)是u喜欢的物品集合,N (v)是v喜欢的物
品集合,那么u, v的兴趣相似度可以简单的用如下的公式描述:

                               |N (u) ∩ N (v)|
                      suv =                             (2.1)
                               |N (u) ∪ N (v)|

有很多种描述集合相似度的算法,上面的只是其中一个代表。 从而,用户u对
物品i的喜欢程度可以用如下公式计算:
                                 ∑
                     pui =                    suv pvi   (2.2)
                             v∈S(u,k)∩N (i)


   和基于用户的协同过滤的假设不同,基于物品的协同过滤(ItemCF)假设,
一个用户会喜欢和他之前喜欢的东西类似的东西。 因此利用ItemCF给一个用
户做推荐的时候,首先从数据库里获取他之前喜欢的东西,然后从剩下的物品
里找到和他历史兴趣近似的物品推荐给他。 ItemCF算法的核心是要计算两个
物品的相似度。 和UserCF的基本思想类似,ItemCF认为两个物品被越多的人
同时喜欢,这两个物品就越相似。令N (i), N (j) 分别是喜欢i, j的用户集合,那
Author xlvector, Copyrights belong to CASIA



16                                            动态推荐系统关键技术研究


么物品i, j的相似度可以用如下的公式来计算:
                            |N (i) ∩ N (j)|
                    sij =                              (2.3)
                            |N (i) ∪ N (j)|
然后,用户u对物品i的喜欢程度可以用如下公式计算:
                   ∑
             pui =   sij puj                           (2.4)
                        j∈S(i,k)∩N (u)

     ItemCF的算法的好处,是可以做推荐解释。比如,在图2.3中,Amazon给
某用户的第一个推荐结果是一本名叫《Introduction to Algorithms》的书,如
果点击下面的fix this recommendation,Amazon会给用户一个推荐解释,如
图2.3所示,Amazon给我推荐这本书是因为我曾经买过一本模式分类的书和一
本统计学习的书,同时我给一本概率图理论的书打过比较高的分数。这个解释
的本身,说明了Amazon的内部算法是基于物品的协同过滤,它推荐的书都是
和用户之前购买或者喜欢的书相似的书。




              图 2.3: Amazon推荐系统的用户解释

     UserCF和ItemCF两种算法都被称为基于邻域的算法,除此之外,还有很
多不同的协同过滤算法。 Hoffman在文献[34]提出了隐语义模型(Latent Class
Author xlvector, Copyrights belong to CASIA



第二章        推荐系统相关研究综述                                                          17


Model),该模型用隐类(Latent Class)将用户和物品联系起来,它认为用户并不
是直接对物品产生兴趣,而是用户对几个类别有兴趣,而物品属于不同的类
别,因此这个模型会通过用户行为数据学习出这些类别,以及用户对类别的兴
趣。 在Latent Class Model的基础上,后来很多研究人员提出了矩阵分解模型,
也被称为Latent Factor Model[8]。 基于矩阵分解的模型有很多种,这些模型大
多是在Netflix Prize的比赛中被提出来的,比如RSVD[70],SVD++ [44]等等。
       除 了 矩 阵 分 解 相 关 的 模 型, 图 模 型 在 协 同 过 滤 中 也 有 广 泛 的 应 用。
Baluja在文献[7]中介绍了Youtube推荐算法背后的co-view图模型,并提出了
一种扩散算法在图上度量用户对物品的兴趣。 文献[68] 中研究了如何通过
分析图模型中的顶点之间的路径来增加协同过滤算法推荐结果的惊喜度。
Mirza[63]系统研究了基于图模型的推荐问题,指出推荐的本质是将用户和物品
联系起来,而图模型是联系用户和物品的最自然的方式。文献[28] 系统的研究
了各种计算图中顶点之间相似度的算法,并比较了不同相似度算法的推荐准确
度。

       2.3.2   基于人口统计学的过滤

       每个人都有他的人口统计学(Demographic)特征,包括了年龄,性别,工
作,学历,居住地,国籍,民族,等等。这些特征对预测用户的兴趣也有很重
要的作用。 比如男性和女性的兴趣不同,不同年龄的人兴趣也不同。 图2.4显
示了IMDB中给著名美剧评分的男女用户数的比例2。 这幅图中的数据只代表
了IMDB用户观看电视剧的性别分布,因为IMDB网站用户的性别分布本身是
有偏的(男性用户较多) 如图所示,用户选择电视剧的行为和性别有很大的
          。
相关性,有些电视剧,比如格雷医生和绝望主妇,比较受女性的欢迎,而另一
些电视剧,比如生活大爆炸和荒野求生,则比较受男性的欢迎。基于用户人口
统计特征的推荐的最大好处,是可以解决注册用户的冷启动(Cold Start) 的问
题。当一个用户刚刚注册,还没有任何行为的时候,我们就可以根据他注册时
提供的年龄性别等人口统计特征数据,来预测他的兴趣。 Krulwich在[46]文中
研究了如何利用大量的用户人口统计特征数据和用户行为数据来构建用户的兴
趣模型的方法。首先,Krulwich 根据美国用户看电视、购物的行为,将用户根
  2
      IMDB网 站 中 给 出 了 每 一 部 电 影 和 电 视 剧 的 评 分 人 数 按 照 年 龄 和 性 别 的 分 布 数 据, 比 如 豪 斯
医生(House M.D.)的评分人数分布可以在下面的链接得到http://www.imdb.com/title/tt0412142/
ratings。
Author xlvector, Copyrights belong to CASIA



18                                                         动态推荐系统关键技术研究


据他们的人口统计学特征分成62个先验的聚类。然后,对任意一个用户,首先
找到他的聚类,然后给他推荐这个聚类里的其他用户喜欢的物品。
     但是基于人口统计特征的推荐的主要缺点是它的推荐粒度太粗。比如,如
果我们只有用户的年龄和性别的数据,那么对于相同年龄和性别的人的推荐
结果将是完全一样的。因此没有实现彻底的个性化。另外,很多用户在提交自
己的年龄性别信息时,出于对自己隐私的考虑,可能不会提供真实的信息[64],
这也会导致推荐系统的误差。




                图 2.4: IMDB中不同美剧的男女分布



     2.3.3   内容过滤

     内容过滤(Content-Based Filtering)[6, 66]是推荐系统中的一种重要的方法。
这种方法的基本思想是给用户推荐和他们之前喜欢的物品在内容上相似的
其他物品。 比如如果用户喜欢一本数据挖掘的书,那么基于内容过滤的推
荐系统就会给他推荐其它他没有看过的数据挖掘方面的书。 因此,内容过
滤系统的核心任务就是计算物品的内容相似度。 给物品内容建模的方法很
多,其中最著名的模型是向量空间模型[5]。 这个模型首先抽取出物品的关键
词(keyword),然后利用TF-IDF来计算关键词的权重[74]。令ki 是物品dj 的第i个
关键词,wij 是ki 在dj 上的权重,那么物品dj 的内容可以定义为如下的向量模
型:
                    Content(dj ) = {w1j , w2,j , . . . }            (2.5)
Author xlvector, Copyrights belong to CASIA



第二章   推荐系统相关研究综述                                                      19


  如前所述,内容过滤算法给用户推荐和他们之前喜欢的物品在内容上相
似的物品。 因此需要根据用户之前喜欢的物品来对用户对内容的喜好建模。
令ContentBasedP rof ile(u)为用户u的内容喜好向量,此向量定义如下:

                                       1
       ContentBasedP rof ile(u) =           sumd∈N (u) Content(d)   (2.6)
                                    |N (u)|

其中N (u)是用户u之前喜欢的物品集合。 因此用户内容喜好向量就是根据用户
喜欢的所有物品的向量模型的平均。 计算出所有的物品内容向量Content(·)和
所有用户的内容喜好向量ContentBasedP rof ile(·)之后,给定任意一个用户u和
一个他不知道的物品d,用户对物品的喜好定义为ContentBasedP rof ile(u)向
量和Content(d)向量的相似度:

         p(u, d) = sim(ContentBasedP rif le(u), Content(d))         (2.7)

其中sim(·, ·)定义了两个向量的相似度。
  利用关键词给物品建模是很多内容推荐系统的重要部分。 但准确的抽取
物品的关键词也是一个困难的问题。 特别是在多媒体领域,例如在图像视频
的推荐系统中,很难根据图像和视频的内容提取出文本的标签。 为了解决这
个问题,不同系统提出了不同的解决方案。 这些解决方案大致分为两种,一
种是利用专家给物品标签。 另一种是让用户给物品贴标签。 专家标注系统的
代表有Pandora的音乐推荐系统和Jinni的电影推荐系统。 以Jinni为例,他们
的研究人员定义了900多个不同的标签(称为电影基因)
                         ,然后让电影专家给
每一个电影标注一系列标签。 这900多个标签属于不同的类别,包含了电影
的类别,剧情,时间,地点,人物,获得的奖项等信息。 图2.5是Jinni的专家
给电影《功夫熊猫》标注的标签。 如图所示,功夫熊猫的标签一共分成了十
类:心情(Mood),剧情(Plot),类别(Genres),故事发生的时代(Time),故事
发生的地点(Place),适合的观影人群(Audience),评价(Praise),风格(Style),
态度(Attitude),画面(Look)。 如图所示,这些类别包括了电影方方面面的信
息,可以准确描述一部电影。
  和专家标注系统相比,用户标注系统的应用范围更加广泛。 代表的网站
有Delicious,Flickr等等。 用户标签(Tag)相对于专家标注的特点是标签更加多
样,也更能反映用户的长尾兴趣,但缺点是质量不高,有很多错误的标注。因
此在用户标签系统中,主要有两类推荐问题,一是如何给用户推荐标签(tag
Author xlvector, Copyrights belong to CASIA



20                                   动态推荐系统关键技术研究




               图 2.5: Jinni给功夫熊猫编辑的内容属性

recommendation [78]),即当用户面对一个物品时,给他推荐一些适合于这个
物品的标签供用户选择。 这样做的目的有两个,首先是方便用户标注,用户
可以不用打字而是只通过点击几个推荐的候选标签就完成标注的过程,其次
可以提高用户标注的质量。 另一个推荐问题是如何利用标签来给用户推荐物
品(tag-based recommendation [75])。当用户给了物品标签后,最简单的推荐方
法是将标签作为物品的关键词,然后利用前面提到的内容过滤的算法给用户做
推荐。


     2.3.4   社会化过滤

     在现实社会中,用户的兴趣和选择往往受到好友的影响。 在互联网中,
随着诸如Facebook, Twitter等社会网络网站的兴起,如何利用用户之间的社
会关系设计推荐系统,是近几年推荐领域比较热门的研究问题。 基于社会
网络的推荐算法被称为社会化过滤(Social Filtering)或者社会化推荐(Social
Recommendation)。近几年在工业界已经有了很多社会化推荐系统。图2.6展示
了Amazon利用用户在FaceBook的社会网络关系提供的推荐结果。 图中,每个
推荐结果的下面都显示了喜欢这个商品的用户的好友。
     最简单的社会化过滤算法是基于邻域的算法(Neighborhood-based Method)。
Author xlvector, Copyrights belong to CASIA



第二章   推荐系统相关研究综述                                    21




      图 2.6: Amazon利用Facebook Connector做出的社会化推荐

给定用户u,令F (u)为用户u的好友集合,N (u)为用户u喜欢的物品集合。那么
用户u对物品i的喜好程度定义为用户u的好友中喜欢物品i的好友个数:
                    ∑
              pui =   1                           (2.8)
                        v∈F (u),i∈N (v)

除了简单的邻域模型,还有很多社会化过滤算法。 Jamali在[36]中利用图模型
将用户的社会网络和用户物品的喜好关系建模到一张图中,然后利用随机游
走(Random Walk)算法给用户做社会化推荐。 Ma在[57]提出了一个矩阵分解的
算法来分解用户的社会网络矩阵和用户物品喜好矩阵,计算出用户的特征向量
和物品的特征向量,并最终利用特征向量的点乘度量用户对物品的兴趣。社会
化过滤相对于协同过滤有以下的优点:

 • 在很多网站中,用户物品矩阵的稀疏度比较高,因此仅仅利用用户对物
   品的行为关系来做协同过滤往往遇到稀疏的问题,造成推荐精度较差。
   特别是遇到冷启动的问题时,协同过滤就无法给出推荐。 比如一个新用
   户,我们没有他的行为数据,因此无法根据他的历史行为给他做出推荐。
   但如果我们能通过Facebook等网站提供的API获得他的社会网络信息,就
   可以根据他朋友的历史行为来预测他的兴趣。

 • 在现实社会中,人们的选择确实会受社会关系的影响,因此好的社会化
   过滤算法可以提高推荐的精度。 而且因为现有的推荐系统绝大多数是基
   于协同过滤的,此时如果引入社会化过滤也可以推荐出协同过滤无法推
   荐出的物品,从而增加推荐结果的多样性和用户的惊喜度。
Author xlvector, Copyrights belong to CASIA



22                                    动态推荐系统关键技术研究


但是,社会化过滤也有一些缺点,其最主要的缺点是,用户之间的社会关系形
成的原因很多。可能是因为血缘关系,同学关系或者有共同的兴趣爱好。但只
有依赖共同兴趣爱好形成的社会网络关系对预测用户的兴趣才会有比较大的帮
助。因此,如何鉴别不同社会关系对预测用户不同行为的作用,是社会化过滤
中的一个重要的研究方向。

     除了利用社会网络信息给用户推荐物品的社会化过滤问题,社会网络中的
另一类推荐问题就是如何给用户推荐好友。主要的社会网络系统都有好友推荐
的功能(如图2.7所示) 最近几年,研究人员提出了很多好友推荐算法,其中
           。
主要的算法都是基于图模型的[52, 55]。




                 图 2.7: Facebook的好友推荐系统




     2.3.5   基于位置的过滤

     随着移动设备的普及,很多手机或者手持设备都配备了GPS等定位工具,
因此最近几年基于位置的过滤(Location-based Filtering)也逐渐成为推荐系统领
域研究的一个重要方向[51, 88]。基于位置的过滤主要被用在旅游领域,图2.8展
示了MappyFriends同时利用社会网络和位置信息设计的推荐系统。该系统通过
分析用户的位置,给用户推荐那些他们的好友在附近旅游的景点。在很多基于
位置的推荐算法中,位置主要被作为一种重要的上下文信息。
Author xlvector, Copyrights belong to CASIA



第二章       推荐系统相关研究综述                                                              23




                 图 2.8: MappyFriends的基于位置的旅游推荐系统


2.4     推荐系统动态特性的研究现状

      现实世界中的一切事物都处在不断的变化之中,推荐系统也是如此。用户
的兴趣,物品的属性是不断变化的,每天会有大量的新用户,新物品加入系
统。此外,时间是一种重要的上下文信息(Context),用户在不同的时间段会有
不同的兴趣,比如用户在白天和晚上的兴趣可能不同,用户在周末和工作日
的兴趣可能不同,用户在节日可能会有特殊的兴趣,在不同的季节也会有不
同的兴趣。 图2.9展示了美国用户对5种不同汽车品牌的专注度随时间变化的曲
线3。 可以看到,用户对不同汽车的兴趣是随时间变化的,比如用户在2009年
前对Honda 的关注度要大于Ford,但2009年后对Honda的关注度发生了较大的
下降。此外,如图所示,用户对很多品牌在夏季的关注度要大于在冬季的关注
度。因此,合理的利用时间信息,考虑推荐系统的动态特性,对提高推荐的准
确度和用户的满意度将会有很大的帮助。
      传统的推荐系统在设计时并没有主动的考虑到时间因素,但这些方法给用
户的推荐结果并不是静态的。这是因为用户不断有新的行为并且新的物品会不
断加入到网站中。比如,基于物品的协同过滤算法会推荐那些和用户之前喜欢
 3
     此数据由Google Insights for Search(http://www.google.com/insights/search/) 提供。
Author xlvector, Copyrights belong to CASIA



24                                动态推荐系统关键技术研究




     图 2.9: 美国用户对于5个不同汽车品牌的关注度随时间变化的曲线


的物品类似的物品,但由于用户之前喜欢的物品集合是随时间不断变化的,所
以推荐结果也是不断变化的。社会化过滤也是如此,一方面,用户的好友集合
是动态变化的,另一方面用户喜欢的物品也是动态变化的,因此社会化过滤的
结果也是动态变化的。Lathia [49] 系统的研究了不同算法产生的推荐结果的变
化率相对于数据本身变化率的关系。 他将数据集按照一个时间点T 分成前后两
个数据集,用T 时刻之前的用户行为作为训练集,T 时刻之后的用户行为作为
测试集。 然后,他不断增加T ,对每一个T 都用不同的算法在相应的训练集上
训练,测试集上测试。 随着T 的增加,训练集和测试集都在发生变化。 通过这
种方法,就可以研究不同算法的推荐结果相对于数据变化的敏感程度。他的研
究表明,有些算法对数据变化很敏感,而另一些算法的推荐结果却相对比较稳
定,不太受数据变化的影响。

     虽然前面所述的推荐算法的结果也是随数据变化而变化的,但因为它们并
没有主动考虑时间因素的影响,所以他们并不能完全发挥时间信息对推荐系统
的作用。时间信息对推荐系统的作用首先体现在对用户兴趣的影响上。Ding在
文献[26]中提出,用户未来的兴趣主要受他近期兴趣的影响,所以推荐算法应
该加重用户近期行为对最终结果的影响。他们通过在协同过滤算法的基础上引
入时间衰减函数来实现了他们的猜想并提高了推荐的准确度。 在某些情况下,
我们可能无法知道用户每个行为发生的具体时间,但可以知道用户行为的先后
顺序。 Zimdars[93] 研究了在有序数据集上的推荐问题,利用决策树算法对用
Author xlvector, Copyrights belong to CASIA



第二章    推荐系统相关研究综述                                25


户行为的序关系进行建模。 Lu[56]修改了传统的协同过滤算法中的矩阵分解模
型,将用户和物品的特征向量看作一个随时间变化的动态特征向量,从而将时
间作为新的一维建模到推荐模型中去。Xiong[87]同样利用矩阵分解模型,将时
间作为新的一维,利用张量分解(tensor factorization) 的算法对含有时间的用
户行为数据进行建模。
      Netflix大奖赛也公布了带有用户评分时间的数据集。很多参赛的研究人员
都利用时间信息大大的提高了评分预测的精度。 最终的获胜队伍成员Koren在
文章[45]中总结了他们对时间信息的建模方法。 他提出了评分预测问题中应该
考虑的四种主要的时间效应:

  • 用户偏好随时间变化(User bias shifting):用户可能在某一天只对他喜欢
      的物品评分,某一天可能只对他不喜欢的物品评分。 因此用户某一天的
      平均分是随时间变化的。

  • 物品偏好随时间变化(Item bias shifting):物品的受欢迎程度也是随时间
      变化的。 一部电影刚发布的时候的平均分可能和发布很久之后的平均分
      有所差别。

  • 用户兴趣随时间变化(User preference shifting):用户在不同的时候可能有
      不同的兴趣,比如小孩可能喜欢看动画片,但当他长大了可能喜欢看其
      他种类的电影。

  • 季节效应:用户行为会受季节效应的影响。 电影推荐中主要的季节效应
      有暑期的效应,颁奖典礼的效应(比如奥斯卡颁奖礼期间,获奖电影会
      受到很多的关注)
             ,以及一些纪念日的效应(比如二战胜利纪念日前后,
      二战题材的电影会受到较多的关注)
                     。

Koren用矩阵分解的模型对上面的时间效应进行建模,并利用随机梯度下降法
对模型进行优化。该模型相对于其他模型取得了很大的提高。


2.5    推荐系统评测
      任何推荐算法都要通过评测,才能评估它的推荐质量。 推荐系统评测的
问题吸引了很多研究人员的研究[17, 29, 33, 38] 常用的推荐评测指标有:准
Author xlvector, Copyrights belong to CASIA



26                                                        动态推荐系统关键技术研究


确度(accuracy),覆盖度(coverage),多样性(diversity),新颖性(novelty),惊喜
度(serendipity)等等。下面各节将详细讨论这些评测指标。


     2.5.1   准确度

     准确度是推荐系统里最常用的指标,在预测评分的系统和Top-N的推荐系
统中有不同的准确度度量方法。 在评分预测的问题中,我们常用平均绝对误
差(MAE)或者均方误差(RMSE)来评测评分预测的准确度:
                     ∑
                      (u,i)∈T |ˆui − rui |
                               r
              M AE =                                                (2.9)
                             |T |
                             √∑
                                    (u,i)∈T   (ˆui − rui )2
                                               r
                   RM SE =                                         (2.10)
                                              |T |
这里,T 是测试集。 rui 是算法预测的用户u对物品i的打分,rui 是数据集中用
           ˆ
户u对i的实际打分。早期的推荐系统研究中多用MAE作为评测指标,但今年因
为Netflix大奖赛中用RMSE作为评测指标,所以RMSE逐渐称为评分预测问题
中预测准确度的主要评测指标。 Takacs在文[81] 对这两种评测指标做了深入的
比较和分析。
     Top-N推荐问题和评分预测问题不同,他的目的是对每一个用户,通过分
析他们的历史行为,给他们推荐N 个他们可能会喜欢的物品。 给定一个推荐
算法,对于用户u,令Ru 是算法的推荐结果集合,Tu 是测试集中用户u喜欢的
物品集合,此时可以通过准确率(Precision)和召回率(Recall) 来度量推荐的精
度[38]:                           ∑
                                     u |Ru
                                     ∑
                                            ∩ Tu |
                      Recall =                                     (2.11)
                                         u |Tu |
                                    ∑
                                        u |Ru
                                        ∑
                                                 ∩ Tu |
                     P recision =                                  (2.12)
                                              u |Ru |

     上面所述的方法都是离线评测算法。此外还可以在线评测推荐系统的准确
度。最简单的评测指标是点击率,即有多大比例的用户看到推荐结果后点击了
推荐结果。此外,有些推荐系统设有反馈机制,让用户直接对推荐结果表示喜
欢还是不喜欢(如图2.10所示)
               ,利用这些反馈数据,也可以度量推荐系统的准
确度,比如可以用有百分之多少的用户表示喜欢来度量推荐的准确度。
Author xlvector, Copyrights belong to CASIA



第二章   推荐系统相关研究综述                              27




                图 2.10: GetGlue的推荐结果反馈界面

  2.5.2   覆盖度

  推荐系统的一个重要任务是解决长尾的问题,即如何将长尾中的物品推
荐给喜欢它们的用户。 一个好的推荐系统应该不仅仅给用户推荐他们满意的
物品,而且应该能够让高质量的物品出现在用户的推荐列表中。 推荐系统的
覆盖度[29] 度量了推荐系统能把多大比例的物品推送给至少一个用户。 如果
令R(u)是推荐系统给用户u的推荐列表,那么推荐系统的覆盖度定义为:
                          ∪
                         | u∈U Ru |
              Coverage =            (2.13)
                            |I|

其中,U是用户集合,I是物品集合。从上面的定义可以看到覆盖度介于(0,1]之
间。覆盖度越大的推荐系统能够更好的发掘长尾。此外,准确度和覆盖度之间
并没有直接的联系,准确度高的推荐并不一定有高的覆盖度。比如考虑两种推
荐算法,算法A给所有用户都推荐N个最热门的物品,算法B给用户随机推荐物
品。 算法A的准确度高于算法B,但算法A的覆盖度却是所有推荐算法中最低
的,因为它给所有用户的推荐结果相同,所以它的覆盖度是N/|I|。


  2.5.3   多样性

  多样性过低的推荐结果会影响用户的体验。比如,对于一个武侠迷,仅仅
给他推荐金庸的小说,虽然准确度并不低,但多样性却比较低,不如给他推荐
不同武侠小说家的经典作品,这样可以兼顾准确度和多样性。 很多研究表明,
传统的协同过滤算法以及内容过滤算法的推荐结果的多样性都是偏低的。 因
此,很多研究人员提出了很多提高推荐结果多样性的算法[89, 90, 92]。
Author xlvector, Copyrights belong to CASIA



28                                                        动态推荐系统关键技术研究


      令Ru 是 给 用 户u的 推 荐 列 表,那 么 推 荐 列 表Ru 的 多 样 性,是 通 过 这 个
列 表 中 物 品 两 两 之 间 的 相 似 度 来 描 述 的。 即 如 果 一 个 推 荐 列 表 中 的 物 品
两两之间越不相似,那么这个推荐列表的多样性越高。 给定两个物品i, j,
令sim(i, j) ∈ [0, 1]为它们的相似度,sim(i, j)越大,表示这两个物品越相似。
从而,Ru 的多样性定义为:
                                   ∑
                                      i,j∈Ru ,i̸=j (1 − sim(i, j))
                Diversity(Ru ) =                                     (2.14)
                                            1
                                            2
                                              N (N − 1)

这里,N = |Ru |是推荐列表的长度。而整个推荐系统的多样性定义为:
                                    1 ∑
                   Diversity =             Diversity(Ru )            (2.15)
                                   |U| u∈U

      从上面的定义可以看到,推荐结果的多样性定义依赖于物品相似度函数的
定义。不同的相似度度量可以定义出不同的多样性,比如内容相似度可以定义
为内容多样性。

      2.5.4   新颖性和惊喜度

      新颖性[17]和惊喜度[29, 59] 是最近两年推荐系统领域比较关注的指标。新
颖度的目的是度量推荐列表中物品对于用户的新颖程度。很多准确度高的推荐
结果往往不具有高的新颖度。比如,给一位研究数据挖掘的科学家推荐一本数
据挖掘入门的书,虽然这本书符合这位用户的兴趣,但是对这位用户却没有新
颖度,因为他有很大的可能已经看过这本书了。因此,新颖的推荐的目的是希
望推荐给用户那些他们没有听说过的物品。而惊喜度则更进一步,它的目的是
推荐那些让用户感到出乎意料却又特别喜欢的物品。因此,某种程度上,惊喜
度同时考虑了新颖性和准确度。
      目前还没有离线计算这两个指标的方法。所有关于这两个指标的评测都是
通过做用户调查(User Study),即让用户直接对推荐结果的新颖性和惊喜度进
行评分来获得相关的评测指标。


2.6     本章小结
      本章简单概述了推荐系统的主要任务和问题。从商业应用和学术研究两个
角度介绍了推荐系统研究的现状。并且,本章从推荐系统的数据角度对推荐系
Author xlvector, Copyrights belong to CASIA



第二章   推荐系统相关研究综述                              29


统进行了分类,介绍了内容过滤,协同过滤,人口统计学过滤,社会化过滤以
及地点过滤等五种不同的推荐系统以及他们背后的主要算法。然后介绍了推荐
系统动态特性方面的研究现状,讨论了相关的模型和算法。最后,本章讨论了
推荐系统的主要评测指标,在后面的各章中,我们将会利用这些评测指标对不
同的推荐算法进行评测。
Author xlvector, Copyrights belong to CASIA
Author xlvector, Copyrights belong to CASIA




       第三章      评分预测问题中用户兴趣预测的动态模型

3.1    引言
      推荐系统的主要目的是从用户的行为中挖掘出用户的兴趣,因此收集用户
行为的系统是推荐系统的重要组成部分。让用户给物品评分是很多推荐系统收
集用户兴趣的重要手段。用户评分行为也被称为显性反馈行为,因为评分结果
明确的表示了用户对物品的兴趣。
      图3.1展 示 了 不 同 网 站 收 集 用 户 显 性 反 馈 的 界 面。 如 图 所 示, 有 些 网
站(Netflix, Hulu)利用5颗星的打分系统,有些网站(Jinni)利用了一个进度条,
有些网站(Youtube, Clicker) 只让用户选择喜欢还是不喜欢。每一种方法都有它
们各自的优缺点,但目的都是希望能够收集到用户对物品的明确兴趣。收集用
户的显性反馈数据是很困难的,相对于用户其他的行为,用户的评分行为数量
很少。但是评分数据非常宝贵,它包含了用户对物品的明确兴趣。
      评分预测问题的主要任务是预测一个给定用户对一个给定物品的评分。解
决该问题主要依赖于建立用户的兴趣模型。传统的推荐系统在建立用户兴趣模
型时往往忽略了用户兴趣的变化,而只建立用户的静态兴趣模型。比如,静态
用户兴趣模型在计算一个用户对一个物品的评分时,往往只参考该用户对其他
物品的评分,而忽视用户对其他物品评分的时间。但用户评分行为发生的时间
信息对准确预测用户未来的行为有很重要的作用。
      比如,用户最近的评分行为相对于用户很久之前的评分行为往往对预测用
户未来的评分具有更高的参考价值。物品的受欢迎程度也受时间的影响,一部
电影刚刚发布时受用户的欢迎程度和发布很久之后受用户的欢迎程度是不同
的。此外,季节效应对评分预测问题也有很重要的作用,用户在不同的季节会
有不同的兴趣,用户在平时和周末会有不同的兴趣,用户在不同的节日会有不
同的兴趣。诸如此类的时间因素在各种类型的网站中都有很多,而如何利用这
些时间信息提高推荐系统预测的精度,设计符合用户兴趣变化的动态推荐系
统,是近几年推荐领域研究的热门问题。下面几节,我们将就如何针对评分预
测问题建立用户兴趣的动态模型以提高评分预测的精度进行讨论。
      本章主要内容如下:
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation
Phd. Thesis : Temporal Recommendation

Mais conteúdo relacionado

Destaque (13)

Vienna Bpi 2010 Handout
Vienna Bpi 2010 HandoutVienna Bpi 2010 Handout
Vienna Bpi 2010 Handout
 
What apps v2
What apps v2What apps v2
What apps v2
 
Social media overzicht
Social media overzichtSocial media overzicht
Social media overzicht
 
Hoe zet je socialmedia in vóór, tijdens en na je event
Hoe zet je socialmedia in vóór, tijdens en na je eventHoe zet je socialmedia in vóór, tijdens en na je event
Hoe zet je socialmedia in vóór, tijdens en na je event
 
Fotonovela 1
Fotonovela 1Fotonovela 1
Fotonovela 1
 
Introductie in Twitter Cards, Twitter Ads en Twitter Analytics
Introductie in Twitter Cards, Twitter Ads en Twitter AnalyticsIntroductie in Twitter Cards, Twitter Ads en Twitter Analytics
Introductie in Twitter Cards, Twitter Ads en Twitter Analytics
 
Conner Prairie Science Lab - Heat Month
Conner Prairie Science Lab - Heat MonthConner Prairie Science Lab - Heat Month
Conner Prairie Science Lab - Heat Month
 
Using socia media 4 adversitement
Using socia media 4 adversitementUsing socia media 4 adversitement
Using socia media 4 adversitement
 
What's New in Rails 5
What's New in Rails 5What's New in Rails 5
What's New in Rails 5
 
Floss
FlossFloss
Floss
 
Zakelijk twitteren: Do The Right Thing
Zakelijk twitteren: Do The Right ThingZakelijk twitteren: Do The Right Thing
Zakelijk twitteren: Do The Right Thing
 
Twitter 102
Twitter 102 Twitter 102
Twitter 102
 
Career Fair Presentation - KH
Career Fair Presentation - KHCareer Fair Presentation - KH
Career Fair Presentation - KH
 

Semelhante a Phd. Thesis : Temporal Recommendation

网格技术及其在中国企业信息化中的应用(pdf)
网格技术及其在中国企业信息化中的应用(pdf)网格技术及其在中国企业信息化中的应用(pdf)
网格技术及其在中国企业信息化中的应用(pdf)Zac John
 
Email template
Email templateEmail template
Email templateWendy Liu
 
一次Web性能测试小结
一次Web性能测试小结一次Web性能测试小结
一次Web性能测试小结beiyu95
 
网站用户体验提升研究
网站用户体验提升研究网站用户体验提升研究
网站用户体验提升研究ernestzhong
 
Cite space中文手册
Cite space中文手册Cite space中文手册
Cite space中文手册cueb
 
视频网站全视角分析解决方案 初稿
视频网站全视角分析解决方案 初稿视频网站全视角分析解决方案 初稿
视频网站全视角分析解决方案 初稿学峰 司
 
项目管理知识体系指南 第四版
项目管理知识体系指南 第四版项目管理知识体系指南 第四版
项目管理知识体系指南 第四版cat3000
 
1MFG.COM telonline seminar lean implementation_2011-12-29
1MFG.COM telonline seminar lean implementation_2011-12-291MFG.COM telonline seminar lean implementation_2011-12-29
1MFG.COM telonline seminar lean implementation_2011-12-291MFG
 
标准化作业和精益六西格玛
标准化作业和精益六西格玛标准化作业和精益六西格玛
标准化作业和精益六西格玛William Yu
 
工作圈上課講義
工作圈上課講義工作圈上課講義
工作圈上課講義5045033
 
運用擴增實境技術建立數位學習環境(精簡版)
運用擴增實境技術建立數位學習環境(精簡版)運用擴增實境技術建立數位學習環境(精簡版)
運用擴增實境技術建立數位學習環境(精簡版)Tehuan Chung
 
Csdn Emag(Oracle)第四期
Csdn Emag(Oracle)第四期Csdn Emag(Oracle)第四期
Csdn Emag(Oracle)第四期yiditushe
 
GCC_Porting_on_MiniSystem
GCC_Porting_on_MiniSystemGCC_Porting_on_MiniSystem
GCC_Porting_on_MiniSystemXiaojing Ma
 
Inv move order
Inv move orderInv move order
Inv move order俊 朱
 
数据分析系统架构设计
数据分析系统架构设计数据分析系统架构设计
数据分析系统架构设计学峰 司
 
CloudTao技术白皮书
CloudTao技术白皮书CloudTao技术白皮书
CloudTao技术白皮书FIT2CLOUD
 
用户体验的 要素 很好的资料
用户体验的 要素 很好的资料用户体验的 要素 很好的资料
用户体验的 要素 很好的资料grey0511
 
同济优秀课程设计 - 软件测试报告
同济优秀课程设计 - 软件测试报告同济优秀课程设计 - 软件测试报告
同济优秀课程设计 - 软件测试报告Kerry Zhu
 

Semelhante a Phd. Thesis : Temporal Recommendation (20)

网格技术及其在中国企业信息化中的应用(pdf)
网格技术及其在中国企业信息化中的应用(pdf)网格技术及其在中国企业信息化中的应用(pdf)
网格技术及其在中国企业信息化中的应用(pdf)
 
Email template
Email templateEmail template
Email template
 
Cnnic:2011年中国搜索引擎市场研究报告
Cnnic:2011年中国搜索引擎市场研究报告Cnnic:2011年中国搜索引擎市场研究报告
Cnnic:2011年中国搜索引擎市场研究报告
 
一次Web性能测试小结
一次Web性能测试小结一次Web性能测试小结
一次Web性能测试小结
 
网站用户体验提升研究
网站用户体验提升研究网站用户体验提升研究
网站用户体验提升研究
 
Cite space中文手册
Cite space中文手册Cite space中文手册
Cite space中文手册
 
视频网站全视角分析解决方案 初稿
视频网站全视角分析解决方案 初稿视频网站全视角分析解决方案 初稿
视频网站全视角分析解决方案 初稿
 
Land
LandLand
Land
 
项目管理知识体系指南 第四版
项目管理知识体系指南 第四版项目管理知识体系指南 第四版
项目管理知识体系指南 第四版
 
1MFG.COM telonline seminar lean implementation_2011-12-29
1MFG.COM telonline seminar lean implementation_2011-12-291MFG.COM telonline seminar lean implementation_2011-12-29
1MFG.COM telonline seminar lean implementation_2011-12-29
 
标准化作业和精益六西格玛
标准化作业和精益六西格玛标准化作业和精益六西格玛
标准化作业和精益六西格玛
 
工作圈上課講義
工作圈上課講義工作圈上課講義
工作圈上課講義
 
運用擴增實境技術建立數位學習環境(精簡版)
運用擴增實境技術建立數位學習環境(精簡版)運用擴增實境技術建立數位學習環境(精簡版)
運用擴增實境技術建立數位學習環境(精簡版)
 
Csdn Emag(Oracle)第四期
Csdn Emag(Oracle)第四期Csdn Emag(Oracle)第四期
Csdn Emag(Oracle)第四期
 
GCC_Porting_on_MiniSystem
GCC_Porting_on_MiniSystemGCC_Porting_on_MiniSystem
GCC_Porting_on_MiniSystem
 
Inv move order
Inv move orderInv move order
Inv move order
 
数据分析系统架构设计
数据分析系统架构设计数据分析系统架构设计
数据分析系统架构设计
 
CloudTao技术白皮书
CloudTao技术白皮书CloudTao技术白皮书
CloudTao技术白皮书
 
用户体验的 要素 很好的资料
用户体验的 要素 很好的资料用户体验的 要素 很好的资料
用户体验的 要素 很好的资料
 
同济优秀课程设计 - 软件测试报告
同济优秀课程设计 - 软件测试报告同济优秀课程设计 - 软件测试报告
同济优秀课程设计 - 软件测试报告
 

Mais de Liang Xiang

Recommender system algorithm and architecture
Recommender system algorithm and architectureRecommender system algorithm and architecture
Recommender system algorithm and architectureLiang Xiang
 
Recommender system introduction
Recommender system   introductionRecommender system   introduction
Recommender system introductionLiang Xiang
 
动态推荐系统关键技术研究
动态推荐系统关键技术研究动态推荐系统关键技术研究
动态推荐系统关键技术研究Liang Xiang
 
动态推荐系统关键技术研究
动态推荐系统关键技术研究动态推荐系统关键技术研究
动态推荐系统关键技术研究Liang Xiang
 
How to do model ensemble
How to do model ensembleHow to do model ensemble
How to do model ensembleLiang Xiang
 
Temporal recommendation on graphs via long and short-term
Temporal recommendation on graphs via long  and short-termTemporal recommendation on graphs via long  and short-term
Temporal recommendation on graphs via long and short-termLiang Xiang
 

Mais de Liang Xiang (7)

Recommender system algorithm and architecture
Recommender system algorithm and architectureRecommender system algorithm and architecture
Recommender system algorithm and architecture
 
Recommender system introduction
Recommender system   introductionRecommender system   introduction
Recommender system introduction
 
Kddcup2011
Kddcup2011Kddcup2011
Kddcup2011
 
动态推荐系统关键技术研究
动态推荐系统关键技术研究动态推荐系统关键技术研究
动态推荐系统关键技术研究
 
动态推荐系统关键技术研究
动态推荐系统关键技术研究动态推荐系统关键技术研究
动态推荐系统关键技术研究
 
How to do model ensemble
How to do model ensembleHow to do model ensemble
How to do model ensemble
 
Temporal recommendation on graphs via long and short-term
Temporal recommendation on graphs via long  and short-termTemporal recommendation on graphs via long  and short-term
Temporal recommendation on graphs via long and short-term
 

Último

SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxSymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxNCU MCL
 
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptxNCU MCL
 
20170104 - transaction_pattern
20170104 - transaction_pattern20170104 - transaction_pattern
20170104 - transaction_patternJamie (Taka) Wang
 
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】黑客 接单【TG/微信qoqoqdqd】
 
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptxNCU MCL
 
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptxNCU MCL
 
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptxNCU MCL
 
20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLPJamie (Taka) Wang
 
20161220 - domain-driven design
20161220 - domain-driven design20161220 - domain-driven design
20161220 - domain-driven designJamie (Taka) Wang
 
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxSymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxNCU MCL
 

Último (15)

SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxSymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
 
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
 
20170104 - transaction_pattern
20170104 - transaction_pattern20170104 - transaction_pattern
20170104 - transaction_pattern
 
20200323 - AI Intro
20200323 - AI Intro20200323 - AI Intro
20200323 - AI Intro
 
20151111 - IoT Sync Up
20151111 - IoT Sync Up20151111 - IoT Sync Up
20151111 - IoT Sync Up
 
20161027 - edge part2
20161027 - edge part220161027 - edge part2
20161027 - edge part2
 
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
 
20200226 - AI Overview
20200226 - AI Overview20200226 - AI Overview
20200226 - AI Overview
 
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
 
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
 
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
 
Entities in DCPS (DDS)
Entities in DCPS (DDS)Entities in DCPS (DDS)
Entities in DCPS (DDS)
 
20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP
 
20161220 - domain-driven design
20161220 - domain-driven design20161220 - domain-driven design
20161220 - domain-driven design
 
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxSymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
 

Phd. Thesis : Temporal Recommendation

  • 1. Author xlvector, Copyrights belong to CASIA 摘 要 推荐系统(Recommender System)是帮助用户发现内容,克服信息过载的重 要工具。它通过分析用户的行为,对用户兴趣建模,从而预测用户的兴趣并给 用户做推荐。推荐系统的早期研究主要集中在静态用户行为分析领域,即不考 虑用户行为发生的时间,而仅仅研究用户行为中与时间无关的静态模式。 近 年,随着Netflix推荐比赛的推动以及大量包含时间信息的数据集的公开,很多 研究人员转向研究推荐系统的动态特性,主要包括用户兴趣变化的动态模型, 基于时间上下文的推荐等等问题。 但这个领域中还存在很多关键技术需要解 决。 本文基于大量公开的用户行为数据集对推荐系统动态特性进行了深入的研 究,包括评分预测问题中用户兴趣的动态模型,Top-N推荐问题中用户兴趣的 动态模型,以及系统时效性对用户兴趣预测的影响等。本文的主要工作和贡献 如下: 1 提出了评分预测问题中用户兴趣预测的动态模型:评分预测问题是推荐 系统中研究最多的问题之一,它的主要任务是通过分析用户对物品的评 分数据,预测给定用户对给定物品的评分。 本文将时间信息引入到这个 问题中,通过矩阵分解模型对四种不同的时间效应进行建模,提出了一 个动态的用户兴趣模型。 同时,本文还利用级联模型对季节效应进行建 模。 实验方法表明该方法相对于静态用户兴趣模型,能够显著的提高评 分预测的精度。 2 提出了Top-N推荐问题中用户兴趣预测的动态模型:Top-N推荐问题是实 际推荐系统中最常见的问题,它的主要任务是通过分析用户的日志数据, 给用户兴趣建模,并根据用户兴趣模型给用户推荐N 个他最可能喜欢的 物品。 本文将时间信息引入到这个问题中,通过在传统的用户物品二分 图上引入用户时间节点来对用户的长期兴趣和短期兴趣建模,从而让用 户的推荐结果能够同时反映他们的长期兴趣和短期兴趣。 同时,本文还 提出了一个基于图模型的路径融合算法,该算法能够有效的从图模型中 计算出物品相对于每个用户的个性化排名。 实验方法表明引入用户时间
  • 2. Author xlvector, Copyrights belong to CASIA ii 动态推荐系统关键技术研究 节点后的图模型相对于时间无关的静态模型,能够显著的提高Top-N推荐 的准确度,同时路径融合算法相对于其他基于图的排名算法,在推荐准 确度上也有较大的优势。 3 系统地研究了时效性对推荐系统的影响,并提出了在不同时效性网站中 都具有较高推荐精度的推荐算法:用户的行为和兴趣同时受到社会因素 和个人因素的影响。 但在不同时效性的网站中,这两种因素对用户行为 的影响程度不同。 时效性快的网站中,用户更容易受到社会因素的影响, 而在时效性慢的网站中,用户更容易受到个人因素的影响。 为了能在不 同时效性的网站中都做出准确的推荐,本文提出了时间的图模型,该模 型通过引入两种新的节点来对社会因素和个人因素分别建模,并通过调 整这两种节点的权重来调整推荐系统的精度。 实验表明该方法能够在不 同时效性的数据集中都取得较高的推荐准确率。 4 设计了动态推荐系统的原型系统:论文在总结前几章工作的基础上设计 了动态推荐系统的原型系统。 该系统能够实时响应用户的最新行为,并 根据用户行为的变化来实时的调整推荐结果,从而不断改善用户在推荐 系统中的体验。 关键词: 推荐系统,个性化,协同过滤,时间效应,季节效应,推荐系统动态 特性
  • 3. Author xlvector, Copyrights belong to CASIA Abstract Recommender System is an important tool for users to discovery information of their interest, it is also an important tool to overcome information overload problem. The main idea of recommender system is to make recommendation by analyzing users’ historical behaviors. Early researches on recommender system always neglect temporal information, and most of them are focused on the anal- ysis of users’ static behaviors. In recent years, because of Netflix Prize, more and more data sets including temporal information are released, and more and more researchers are studying on temporal recommendation problem. However, there are many problems left in this research area. This paper investigate the temporal recommendation problem by analyzing many public released data sets. Following are main contributions of this paper: 1 Temporal recommendation for rating prediction problem: Rating predic- tion problem is the most famous problem in recommender system, its main task is to predict a given user’s rating on a given item by analyzing her his- torical rating on other items. In this paper, we incorporate temporal infor- mation into this problem, and propose a latent factor model to model four different temporal effects. Furthermore, we also proposed a cascade model to model seasonal effects. Experimental results show that our method can achieve higher accuracy in rating prediction problem than non-temporal methods. 2 Temporal recommendation for top-N recommendation problem: Top-N rec- ommendation problem is the most important problem in real recommender system, its main task is to recommend N items to every user which will be of their interests by analyzing users’ historical behaviors. In this paper, we introduce a new type of node, session node, into user-item bipartite graph to model users’ long term and short term interests. Furthermore, we also proposed a new graph-based personal ranking method called PathFusion to
  • 4. Author xlvector, Copyrights belong to CASIA iv 动态推荐系统关键技术研究 make recommendation by the new graph model. Experimental results show that our method can make higher accuracy than non-temporal methods and other temporal recommendation methods in top-N recommendation prob- lem. 3 Influence of system update rate on recommender system: User behavior is influenced by social factor and personal factor. However, in the websites with different update rates, these two factors will have different influence. In fast updating sites, users are more influenced by social factor while in slow updating sites, users are more influenced by personal factor. In this way, we need different recommender systems in web sites with different update rates. We proposed a session graph model which introduce two new types of nodes into user-item bipartite graph to model social factor and personal factor. By controlling the weight of these two new types of nodes, the recommendation algorithm can control the influence of social factor and personal factor on final recommendation results. Experimental results show that our method can achieve high accuracy in systems with different update rate. 4 Prototype of temporal recommender system: We design a prototype of temporal recommender system. This system can return real-time recom- mendation to users after they have new behavior, and can tune the ranking of results by user feedback. In this way, this system can improve user experience in real time by their feedback. Keywords: recommender systems, personalization, collaborative fltering, tem- poral effects, seasonal effects, temporal dynamics in recommender systems
  • 5. Author xlvector, Copyrights belong to CASIA 目 录 摘要 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · i Abstract · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · iii 目录 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · v 第一章 引言 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1 1.1 研究背景与意义 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1 1.2 动态推荐系统的定义 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 6 1.2.1 术语与记号 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 6 1.3 研究内容 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 7 1.4 数据集介绍 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 7 1.4.1 Netflix 电影评分数据集 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 8 1.4.2 MovieLens 电影评分数据集 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 8 1.4.3 CiteULike 论文书签数据集 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 8 1.4.4 Delicious 书签数据集 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 9 1.5 论文结构 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 9 第二章 推荐系统相关研究综述 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 11 2.1 引言 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 11 2.2 推荐系统的商业应用 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 12 2.3 推荐系统的主要方法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 14 2.3.1 协同过滤 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 15 2.3.2 基于人口统计学的过滤 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 17 2.3.3 内容过滤 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 18 2.3.4 社会化过滤 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 20
  • 6. Author xlvector, Copyrights belong to CASIA vi 动态推荐系统关键技术研究 2.3.5 基于位置的过滤 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 22 2.4 推荐系统动态特性的研究现状 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 23 2.5 推荐系统评测 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 25 2.5.1 准确度 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 26 2.5.2 覆盖度 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 27 2.5.3 多样性 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 27 2.5.4 新颖性和惊喜度 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 28 2.6 本章小结 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 28 第三章 评分预测问题中用户兴趣预测的动态模型 · · · · · · · · · · · · · · · · · · · · · · · 31 3.1 引言 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 31 3.2 任务定义 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 32 3.3 推荐系统的矩阵分解模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 33 3.4 显性反馈系统中用户兴趣的动态模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · 36 3.4.1 社会兴趣随时间变化 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 36 3.4.2 用户偏好随时间的变化 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 37 3.4.3 物品受欢迎程度随时间的变化 · · · · · · · · · · · · · · · · · · · · · · · · · · · · 38 3.4.4 用户兴趣随时间的变化 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 39 3.4.5 模型的优化 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 40 3.5 季节效应模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 42 3.5.1 整体评分的周期性建模 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 43 3.5.2 用户行为周期性的模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 43 3.5.3 物品周期性的模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 44 3.6 实验与分析 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 44 3.6.1 实验数据 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 44 3.6.2 评测方法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 45 3.6.3 TRSVD的实验结果 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 45 3.6.4 季节效应的实验结果 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 47 3.7 本章小结 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 48
  • 7. Author xlvector, Copyrights belong to CASIA 目录 vii 第四章 Top-N推荐中用户兴趣预测的动态模型 · · · · · · · · · · · · · · · · · · · · · · · · · 49 4.1 引言 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 49 4.2 问题定义与方法概述 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 50 4.3 协同过滤的二分图模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 51 4.3.1 基于随机游走的算法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 52 4.3.2 路径融合算法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 53 4.4 隐反馈数据的动态变化 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 56 4.4.1 用户的长期兴趣和短期兴趣 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 56 4.4.2 基于SGM的推荐算法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 58 4.5 实验结果 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 60 4.5.1 数据集 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 60 4.5.2 评测指标 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 61 4.5.3 对比的算法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 61 4.5.4 时间无关推荐的实验结果 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 62 4.5.5 时间相关推荐的实验结果 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 64 4.6 本章小结 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 66 第五章 时效性对推荐系统的影响 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 69 5.1 引言 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 69 5.2 在线系统的变化速率 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 70 5.2.1 物品的生存周期 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 70 5.2.2 物品流行度的变化率 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 73 5.3 不同变化率系统中的推荐模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 74 5.3.1 图模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 75 5.3.2 时间段图模型中的推荐算法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 76 5.3.3 时间段图模型的理解 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 76 5.4 实验与分析 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 77 5.4.1 实验数据 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 77 5.4.2 实验设置与评测方法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 78
  • 8. Author xlvector, Copyrights belong to CASIA viii 动态推荐系统关键技术研究 5.4.3 和其他算法的比较 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 79 5.4.4 实验结果 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 80 5.5 本章小结 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 83 第六章 动态推荐系统原型设计与实现 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 87 6.1 引言 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 87 6.2 推荐引擎在线系统 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 88 6.2.1 用户行为提取和分析模块 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 88 6.2.2 相关推荐模块 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 89 6.2.3 推荐解释模块 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 90 6.2.4 过滤和排名模块 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 90 6.3 离线系统 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 91 6.3.1 用户行为权重计算模块 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 92 6.3.2 相似度矩阵计算模块 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 92 6.3.3 用户反馈模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 92 6.4 本章小结 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 93 第七章 结束语 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 95 7.1 研究工作总结 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 95 7.2 对未来工作的展望 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 96 参考文献 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 99 发表文章目录 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 111 致谢 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 113
  • 9. Author xlvector, Copyrights belong to CASIA 表 格 1.1 著名的使用推荐系统的网站以及他们的使用领域 · · · · · · · · · · · · · · · · · 5 1.2 动态推荐系统中的术语记号定义与说明 · · · · · · · · · · · · · · · · · · · · · · · · · · 6 3.1 TRSVD和RSVD模型在Probe测试集上的RMSE的比较 · · · · · · · · · · · 46 3.2 TRSVD和RSVD模型在Quiz数据集上的RMSE的比较 · · · · · · · · · · · · 46 3.3 TRSVD和RSVD对不同类型用户的预测精度比较 · · · · · · · · · · · · · · · · 47 3.4 Netflix Proble数据集上使用不同季节效应对预测精度的影响 · · · · · · 48 4.1 CiteULike和Delicious两个数据集上构建的SGM的基本信息 · · · · · · · 64 4.2 各种算法在CiteULike数据集上的命中率 · · · · · · · · · · · · · · · · · · · · · · · · · 67 4.3 各种算法在Delicious数据集上的命中率 · · · · · · · · · · · · · · · · · · · · · · · · · · 67 5.1 5个不同数据集上的Ψ(1), Ψ(30) · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 75 5.2 5个不同网站的数据集的详细信息· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 78 5.3 用于抽取目标网页的正则表达式 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 78 5.4 8种算法在5个数据集上的召回率 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 80 5.5 Pop在5个数据集上相对于UserCF/ItemCF的召回率的提高比例 · · · 81 5.6 5个数据集上SGM相对USGM和ISGM的精度提高倍数 · · · · · · · · · · · · 82
  • 10. Author xlvector, Copyrights belong to CASIA
  • 11. Author xlvector, Copyrights belong to CASIA 插 图 2.1 著名商用推荐系统的用户界面 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 13 2.2 著名的个性化电台和电视台的用户界面 · · · · · · · · · · · · · · · · · · · · · · · · · · 14 2.3 Amazon推荐系统的用户解释 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 16 2.4 IMDB中不同美剧的男女分布 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 18 2.5 Jinni给功夫熊猫编辑的内容属性 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 20 2.6 Amazon利用Facebook Connector做出的社会化推荐 · · · · · · · · · · · · · · 21 2.7 Facebook的好友推荐系统 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 22 2.8 MappyFriends的基于位置的旅游推荐系统 · · · · · · · · · · · · · · · · · · · · · · · 23 2.9 美国用户对于5个不同汽车品牌的关注度随时间变化的曲线 · · · · · · · 24 2.10 GetGlue的推荐结果反馈界面 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 27 3.1 不同网站中收集用户显性反馈的界面设计 · · · · · · · · · · · · · · · · · · · · · · · · 32 3.2 一个简单的用户物品评分矩阵的例子 · · · · · · · · · · · · · · · · · · · · · · · · · · · · 34 3.3 Netflix数据集中总平均分随时间的变化曲线 · · · · · · · · · · · · · · · · · · · · · · 37 3.4 Netflix数据集中用户不同时间段的平均分¯ut 随时间变化的曲线 · · · 39 r 3.5 Netflix数据集中物品的平均分随物品在线时间变化的曲线 · · · · · · · · 40 3.6 Google Trend中电影相关四个搜索词从2004年以来在美国的搜索 量变化曲线 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 42 4.1 用户-物品关系的二分图表示 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 52 4.2 路径融合算法三条准则的图示 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 54 4.3 一个简单的时间段图模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 58 4.4 在SGM上利用路径融合算法给用户A在2时段做出推荐的例子 · · · · · 60 4.5 CiteULike数据集上算法的HitRatio随ρ变化的曲线 · · · · · · · · · · · · · · · · 63 4.6 Delicious数据集上算法的HitRatio随ρ变化的曲线 · · · · · · · · · · · · · · · · · 63 4.7 CiteULike数据集上所有算法的HitRatio随β变化的曲线 · · · · · · · · · · · 65
  • 12. Author xlvector, Copyrights belong to CASIA xii 动态推荐系统关键技术研究 4.8 Delicious数据集上所有算法的HitRatio随β变化的曲线 · · · · · · · · · · · · 66 5.1 物品生存周期的分布曲线(对数图) · · · · · · · · · · · · · · · · · · · · · · · · · · · · 71 5.2 五个网站中物品生存周期和流行度之间的关系曲线 · · · · · · · · · · · · · · · 72 5.3 5个网站中Ψ(τ )(Y轴)随τ (X轴)变化的曲线。 · · · · · · · · · · · · · · · · · · · · · 74 5.4 不同算法法在Wikipedia数据集中推荐结果的准确率/召回率曲线 · 83 5.5 不同算法法在Sourceforge数据集中推荐结果的准确率/召回率曲线 84 5.6 不同算法法在NYTimes数据集中推荐结果的准确率/召回率曲线 · · 84 5.7 不同算法法在Blogspot数据集中推荐结果的准确率/召回率曲线 · · · 85 5.8 不同算法法在Youtube数据集中推荐结果的准确率/召回率曲线 · · · 85 6.1 完整推荐系统的三个组成部分 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 87 6.2 推荐引擎的设计框图 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 88
  • 13. Author xlvector, Copyrights belong to CASIA 第一章 引言 1.1 研究背景与意义 随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过 载(Information overload)的时代。 在这个时代,无论是作为信息消费者的普通 用户,还是作为信息生产者的内容提供商或者产品提供商都遇到了很大的挑 战。 作为用户,如何从大量的信息中找到自己感兴趣的信息是一件非常困难 的事情。 而作为提供商,如何让自己生产的信息脱颖而出,受到广大用户的 欢迎,也是一件非常困难的事情。 因此,很多研究人员和公司开发了推荐系 统(Recommender System)来解决这一矛盾。推荐系统的任务就是联系用户和信 息,一方面帮助用户发现对自己有价值的信息,而另一方面让信息能够展现在 对它有兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。 从用户的角度出发,自互联网诞生以来,随着网络信息的逐渐增多,用户 寻找信息的方法经历了几个重要阶段。早期用户主要靠直接记住感兴趣网站的 网址来寻找内容,后来Yahoo!提出了分类目录系统,将网站分门别类,方便用 户查询。 著名的目录网站还有DMOZ1。 但随着信息越来越多,分类目录也只 能记录少量的网站,于是产生了搜索引擎。 以Google为代表的搜索引擎可以让用户通过关键词找到自己需要的信息。 但是,搜索引擎需要用户主动的提供关键词来寻找信息,因此它不能解决用户 的很多其他需求,比如当用户无法找到准确描述自己需求的关键词时,搜索引 擎就无能为力了。和搜索引擎一样,推荐系统也是一种帮助用户快速发现有用 信息的工具。和搜索引擎不同的是,推荐系统不需要用户提供明确的需求,而 是通过分析用户的历史行为来给用户的兴趣建模从而主动给用户推荐出能够满 足他们兴趣和需求的信息。因此,从某种意义上说,推荐系统和搜索引擎对用 户来说是两个互补的工具。 搜索引擎满足了用户有明确目的时主动查找的需 求,而推荐系统能够在用户没有明确目的的时候帮助他们发现让他们感兴趣的 新内容。 从信息的角度出发,推荐系统可以更好的发掘信息的长尾(The Long Tail)。 1 http://www.dmoz.org/
  • 14. Author xlvector, Copyrights belong to CASIA 2 动态推荐系统关键技术研究 长尾理论[3]指出,电子商务网站相对于传统零售超市的优点是电子商务网站可 以给用户提供更多的选择。因为电子商务网站没有货架的成本,增加一个商品 只需要在计算机中添加一条记录。但同时长尾的出现也给电子商务网站带来了 新的挑战,即如何将大量的商品展现给潜在消费用户。 社会学领域有一个著名的马太效应[62]问题。 信息科学领域也有同样的问 题。马太效应指的是好的越好,坏的越坏,多的越多,少的越少的现象。比如 一个电子商务网站可以提供如下的方式让用户找到信息。 第一种是热门商品 列表,该列表包含了网站一段时间内最热门的商品。热门商品列表的长度是有 限的,因此只有最热门的商品才会进入列表。如果用户依赖于这个列表寻找商 品,那么进入到这个列表中的商品就会越来越热门,而进入不了这个列表中的 商品就会越来越不热门,从而也越来越不容易进入这个列表。这就是一种马太 效应。 搜索引擎也有马太效应的问题[20],在热门搜索词排名靠前的网页会越 来越热门,能够获得越来越多的外链,从而在PageRank算法中排名越来越高, 也就更容易在热门搜索词的搜索结果中获得比较高的排名。推荐系统作为一种 帮助用户寻找信息的重要工具,也面临马太效应的挑战[27]。 但是,因为推荐 系统是一个主动给用户展现信息的系统,因此推荐系统能够更好的控制每个商 品的展现次数,让长尾中的商品能够在需要他们的用户面前得到充分的展示。 一个好的推荐系统不仅应该能够帮助用户发现有用的信息,而且需要更好的发 掘长尾,让有用的信息能够提供给需要他的用户。 推荐系统的研究已经有了20多年的历史。 推荐系统最早的研究起始于美 国明尼苏达大学GroupLens 研究小组对一个叫MovieLens 的电影推荐系统的 研究。 该系统首先让用户对自己喜欢的电影评分,然后通过分析用户的评 分数据预测用户的兴趣,给用户推荐他们没有评分但可能会喜欢的电影。 后 来Amazon将推荐系统应用到电子商务中,他们通过分析用户的购买、 浏览行 为,预测用户可能对什么商品感兴趣,从而通过推荐系统成功的将销售额提 高了30% [3]。 近年,推荐系统在学术界和工业界都有了很大的发展。 在学术 界,ACM从2008年开始主办了专门的推荐系统国际会议(ACM Conference on Recommender System),很多公司也公开了它们的数据集供大家研究,其中比 较有名的是Netflix举办的推荐系统大赛。在工业界,一方面出现了很多独立的 推荐系统网站,比如Pandora,Jinni,另一方面,推荐系统成为了很多网站的 重要功能。比如Facebook和Twitter通过推荐系统给用户推荐好友,Google利用 推荐系统给用户推荐新闻,Youtube,Netflix通过推荐系统推荐视频。 表1.1列
  • 15. Author xlvector, Copyrights belong to CASIA 第一章 引言 3 出了不同领域著名的推荐系统。 推荐系统的主要任务,是找到用户可能会感兴趣的物品,然后以一定的形 式推送给用户。 因此,推荐系统的两个主要问题就是:1)如何找到用户感兴趣 的东西;2)以什么形式告诉用户。前一个问题的解决主要依赖于数据挖掘和机 器学习的算法,而后一个问题的解决主要依靠人机交互界面的设计。本文主要 研究前一个问题,即如何预测用户的兴趣。 通过多年的研究,研究人员提出了很多预测用户兴趣的方法。 内容过 滤(Content Filtering) [6, 13, 61] 算法认为用户会喜欢和他以前喜欢的物品在内 容上相似的物品。 比如用户买了一本数据挖掘的书,那么内容过滤算法会给 他推荐另一本相似的数据挖掘的书。 内容过滤算法主要利用了物品的内容数 据,比如一本书的作者,标题,内容,关键词,出版商等信息,或者一首歌曲 的歌手,曲风,流派,音频等信息。和内容过滤不同,协同过滤(Collaborative Filtering) [33, 53, 71] 不依赖于用户的属性信息和物品的内容信息,而仅仅通 过分析大量的用户对物品的行为数据,从中找出特定的行为模式,据此来预测 用户的兴趣并给用户做出推荐。近年,随着以Facebook和Twitter为代表的社会 网络的兴起,社会化过滤(Social Filtering)逐渐成为推荐领域的研究热点。社会 化过滤算法[24, 39, 43],认为用户的兴趣和他的好友的兴趣会有共同点,从而 可以通过分析用户好友的兴趣来预测给定用户的兴趣。除了上面说的算法,还 有利用用户年龄,性别,职业等属性(Demographics)做出的推荐,也有基于用 户地理位置(Location)的推荐算法等等。 任何在线系统都是一个动态变化的系统,每天都会有大量的新用户加 入,老用户离开,也会有大量的新内容加入,旧内容消失。 同时,用户的年 龄,兴趣,社会关系,地理位置都会发生变化,物品的热门程度,人们对物品 的看法也都会随着时间而变化。 因此,时间信息对推荐系统来说是一种重要 的信息,一方面用户兴趣本身随时间变化,另一方面时间是一种重要的上下 文(Context)信息,对用户的行为有着重要的影响。早期的推荐系统研究对时间 相关的动态特性很少涉及,这是因为当时对静态用户行为分析才刚刚开始。但 最近几年,随着很多大时间跨度的商业网站用户行为数据的公开,以及静态用 户行为分析技术的成熟,很多研究人员开始研究用户行为的动态特性以及时间 信息在推荐系统中的作用。 特别是在Netflix的推荐系统比赛中[9, 79],很多参 赛者发现利用时间信息可以大大的提高推荐系统的预测精度,更加促进了这方
  • 16. Author xlvector, Copyrights belong to CASIA 4 动态推荐系统关键技术研究 面的研究。 本文将集中研究推荐系统的动态特性,研究如何利用时间信息提高推荐系 统的推荐质量。推荐系统的动态特性主要包含以下几个方面: • 用户兴趣是变化的。 用户兴趣变化的原因很多,可能是由于年龄增长, 比如一个小孩子喜欢动画片,但长大了可能就不喜欢动画片了。 也有可 能是转换生活状态,比如一个刚刚工作的大学生的兴趣相对上学时就会 发生很大的改变。 此外,用户还可能受到周围事件的影响。 比如一个从 来不看体育节目的人可能会在北京奥运会期间关注体育赛事。 • 物品也是有生命周期的。例如一部电影刚上映的时候可能被很多人关注, 但是经久不衰的电影是很少的,很多电影上映后不久就被人们淡忘了。 此外物品也可能受新闻事件的影响,比如一部已经被淡忘的电影会因为 突然被某个新闻事件涉及而重新热门起来。 • 季节效应。 无论用户行为还是物品都会受到季节效应的影响。 比如人们 夏天吃冰淇淋,冬天吃火锅,夏天穿T恤,冬天穿棉衣。此外,节日也会 对用户行为产生影响,比如每年的圣诞节,人们就要去购物,每年的奥 斯卡颁奖礼,人们就要关注电影。 因此,季节,节日是一种重要的时间 上下文信息,对用户行为有着很大的影响。 • 系统的动态变化速率。 在线系统都是动态变化的,但不同系统的变化速 率却不相同。 比如新闻系统变化的很快,每天的热门新闻都是不同的, 而一个新闻产生的很快,但消失的也很快。 相反,电影和音乐的系统变 化的却比较慢。 经常有经典的电影和音乐能够雄踞排行榜长达几个月或 者几年之久。 所有的这些动态特性,都决定了时间在推荐系统中的重要地位。只有实时跟踪 用户兴趣和物品变化的推荐系统,才能让用户有比较高的满意度,为用户找到 适合自己的物品提供帮助。 本文主要研究了推荐系统的动态特性,探讨如何设计一个能够适应用户动 态兴趣变化的动态的推荐系统。
  • 17. Author xlvector, Copyrights belong to CASIA 第一章 引言 5 表 1.1: 著名的使用推荐系统的网站以及他们的使用领域 领域 推荐系统 网址 图书 当当网 http://www.dangdang.com 豆瓣读书 http://book.douban.com Amazon[53] http://www.amazon.com 新闻 GoogleNews[22, 54] http://news.google.com Genieo http://www.genieo.com 电影 Netflix[9] http://www.netflix.com Jinni http://www.jinni.com MovieLens http://www.movielens.com Rotten Tomatoes www.rottentomatoes.com Flixster http://www.flixster.com 音乐 豆瓣电台 http://www.douban.fm [14, 19, 50] Lastfm[16] http://www.lastfm.com Pandora http://www.pandora.com Mufin http://www.mufin.com Lala http://lala.com EMusic http://www.emusic.com Ping http://www.apple.com/itunes/ping/ 视频 Hulu[91] http://www.hulu.com/recommendations Youtube[7, 23] http://www.youtube.com Clicker http://www.clicker.com 文章 StumbleUpon http://www.stumbleupon.com CiteULike http://www.citeulike.com Google Reader http://www.google.com/reader/ 旅游 Wanderfly http://www.wanderfly.com [41, 47] TripAdvisor http://www.tripadvisor.com 社会网络 Facebook http://www.facebook.com/ Twitter http://twitter.com/ 综合 Amazon http://www.amazon.com 当当网 http://www.dangdang.com GetGlue http://www.getglue.com Hunch http://www.hunch.com Strand http://www.strand.com
  • 18. Author xlvector, Copyrights belong to CASIA 6 动态推荐系统关键技术研究 表 1.2: 动态推荐系统中的术语记号定义与说明 记号 说明 记号 说明 D 用户行为数据集 N (u, t) 用户u在t时刻喜欢的物品集合 DA 用户行为训练集 N (i, t) 在t时刻喜欢物品i的用户集合 DT 用户行为测试集 R(u) 给用户u的推荐列表 U 用户集合 tui 用户u对物品i产生行为的时间 I 物品集合 rui 用户u对物品i的评分 N (u) 用户u喜欢的物品集合 pui 用户u对物品i的喜欢程度 N (i) 喜欢物品i的用户集合 rui ˆ 用户u对物品i评分的预测值 1.2 动态推荐系统的定义 动态推荐系统和传统时间无关的静态推荐系统的区别在于,它能够适应用 户兴趣和物品热门度的变化情况以及各种时间上下文,在给定的时间给用户推 荐他在这个时间段最可能感兴趣的物品。因此,动态推荐系统的任务主要就是 分析时间因素对用户行为和物品流行度的影响,并根据这些影响对用户做出最 好的推荐。 正式的说,动态推荐系统的主要任务是设计出一个函数p,我们称为用 户兴趣函数。 定义用户集合为U,物品集合为I,时间集合为T 。 那么兴趣函 数p定义为如下映射: p:U ×I ×T →R 而p(u, i, t)定义了用户u在时刻t对物品i的兴趣大小。 如果是在时间无关的推荐系统中,兴趣函数p定义为如下的映射: p:U ×I →R 而p(u, i)定义了用户u对物品i的兴趣大小。 1.2.1 术语与记号 表1.2列出了动态推荐系统中要用到的主要术语和记号。
  • 19. Author xlvector, Copyrights belong to CASIA 第一章 引言 7 1.3 研究内容 推荐系统中有两个主要的问题,一个是评分预测问题(Rating Prediction Problem):给定用户对某些物品的评分,预测用户对其他物品的评分。用户评 分数据被称为显性反馈数据,所以评分预测问题也是基于显性反馈数据的推荐 问题。另一个问题是Top-N 推荐问题:给定用户对某些物品的行为数据,给每 个用户推荐N个他们最可能喜欢的物品。 这个问题不一定需要用户评分数据, 如果只有用户的隐性反馈数据(比如日志数据) ,也可以用来做推荐,所以这 个问题也被称为基于隐性反馈数据的推荐问题。 在对这两个问题的早期研究 中,都是不考虑时间信息的。 但是,在实际系统中,无论是显性反馈(评分) 还是隐性反馈(观看,点击) ,都是有时间信息的,即用户行为产生的时间。 所以,在实际数据中,这两个问题都会转变为和时间相关的动态推荐问题。 时间相关的评分预测问题是,如何根据用户的历史评分数据,来预测用户 将来会对某个物品给出什么样的评分。 而时间相关的Top-N推荐问题是,如何 通过分析用户的历史行为,在未来的某个特定时间点给用户推荐N个他们最可 能喜欢的物品。本文首先会研究如何解决这两个时间相关的推荐问题。解决这 两个问题的关键是研究时间效应,也就是时间是如何影响用户行为的。我们会 分析各种时间效应,并对他们建模,从而解决上面提到的两个主要问题。 本文在研究用户和物品受时间影响的同时,也会从系统本身的角度研究时 间因素。每一个在线系统都是一个动态系统,他们的数据,无论是用户行为数 据和物品属性数据,都在时时刻刻的变化。但是,从系统的角度,不同系统的 变化速率是不同的。新闻网站比较注重时效性,变化很迅速,而电影或者音乐 的网站变化的相对比较慢。 一个系统变化迅速的体现是,新的物品不断的加 入,但是即使是热门物品,都不会热门太长。比如,每一个新闻的热门程度只 会维持很少的几天,但是经典的电影和音乐却可以热门几个月甚至几年时间。 一个在线系统的变化速度,对于如何设计它的推荐系统非常重要。因此最后本 文会研究系统变化速率对推荐系统的影响。 1.4 数据集介绍 推荐系统的数据集很多,但提供了时间信息的数据集并不多。本文主要应 用了以下几个著名的数据集进行研究。
  • 20. Author xlvector, Copyrights belong to CASIA 8 动态推荐系统关键技术研究 1.4.1 Netflix 电影评分数据集 Netflix 2 在2006年开展名为Netflix Prize推荐系统比赛的时候,公布了一个 有40万用户对17000部电影的评分的数据集。 数据集包含了一个用户在什么时 间对一部电影打了多少分的信息,时间跨度从1999年到2005年。这里的评分属 于1到5的区间。其中1分表示不喜欢,5分表示非常喜欢,分数越大,喜欢程度 越大。 这个数据集包含了1亿个评分,是一个很大的数据集,也是一个很近似 于实际系统的数据集。 1.4.2 MovieLens 电影评分数据集 MovieLens 3 是另一个著名的电影评分系统,也是一个早期的实验性的推荐 系统。这个数据集由三个不同大小的数据集组成: • MovieLens A (ML.A):这是最小的一个MovieLens数据集,包含了943个 用户对1682部电影的十万条评分,以及评分的时间信息。 其中,每个用 户都至少对20部电影有评分。 • MovieLens B (ML.B): 这 是 一 个 中 等 大 小 的MovieLens数 据 集, 包 含 了6040个 用 户 对3900部 电 影 的 一 百 万 条 评 分,以 及 评 分 的 时 间 信 息。 其中,每个用户都至少对20部电影有评分。 • MovieLens C (ML.C):这是一个大规模的MovieLens数据集,包含了71567个 用户对10681部电影的一千万条评分,以及评分的时间信息。 同时,这个 数据集还提供了用户对电影的10万条标签数据。 1.4.3 CiteULike 论文书签数据集 CiteULike 4 是一个著名的论文书签网站。它让研究人员把自己喜欢的论文 信息提交到它的网站上,同时让用户对这些论文打上标签。 CiteULike公布了 一个数据集,每一行是一条记录,由一个四元组构成,包括用户,论文,时间 和书签。这个数据集不包含评分数据,但包含了时间信息,因此可以作为一个 含时间信息的用户隐反馈数据集使用。 2 http://www.netflix.com 3 http://www.movielens.org/ 4 http://www.citeulike.com/
  • 21. Author xlvector, Copyrights belong to CASIA 第一章 引言 9 1.4.4 Delicious 书 签数据集 Delicious 5 是一个著名的书签网站。 它允许用户对互联网的任何一个网页 贴上标签。德国的研究人员通过爬虫(Web Crawler)从Delicious上下载了2005年 至2008年的绝大多数数据,公布了一个非常大的数据集(70G数据)。 这个数据 集每一行也是由一个四元组构成,包含用户,网址,时间和书签。由于这个数 据集的网页是以网址的形式给出的,因此我们可以知道每个网页的域名。该数 据集的数据量非常庞大,我们在实际实验中一般只抽取其中用户对特定域名 的网页的书签数据。 实验抽取的域名包含了维基百科,Sourceforge,blogspot, nytimes等著名的网站。同时,因为这些网站拥有不同的动态特性,所以这个数 据集对于本文研究不同动态特性的网站中的用户行为有很大的帮助。 1.5 论文结构 本文的其余正文内容由以下六章组成: • 第二章首先介绍了著名的商用推荐系统,然后按照不同的分类介绍了推 荐系统的主要算法以及相关工作,并着重讨论了利用时间信息的动态推 荐系统的相关研究工作,最后讨论了推荐系统的常用评测指标。 • 第三章主要讨论了如何利用时间信息提高评分预测问题的预测精度,并 给出了相关的实验结果及分析。 • 第四章主要讨论了如何利用时间信息提高Top-N推荐的准确度,并给出了 相关的实验结果及分析。 • 第五章主要讨论了网站时效性对用户行为的影响,并研究了如何设计出 在不同时效性网站中都能准确预测用户动态行为的推荐系统。 • 第六章介绍了如何设计一个实际的动态推荐系统,讨论了动态推荐系统 的各个主要模块的设计方法以及需要遵守的设计原则。 • 第七章是论文的结束语和展望,在对目前工作简要总结的基础上,提出 了动态推荐系统下一步研究的任务和方向。 5 http://www.delicious.com/
  • 22. Author xlvector, Copyrights belong to CASIA
  • 23. Author xlvector, Copyrights belong to CASIA 第二章 推荐系统相关研究综述 2.1 引言 当今的时代是信息过载(Information overload)的时代[73]。互联网上充斥着 大量的信息,如何从这些信息里找到每个互联网用户感兴趣的信息,并把这些 信息推送给用户是推荐系统研究的主要问题。为了解决这一问题,推荐系统需 要对用户的历史行为进行挖掘,对用户兴趣进行建模,对用户未来的行为进行 预测。 推荐系统的研究和很多早期的研究相关,比如认知科学(cognitive science) [72],信息检索(information retrieval)[74],预测理论[4] 和管理科学[65]。从上世 纪90年代中期开始,研究人员开始研究如何利用用户对物品打分的数据来预测 用户的兴趣并给用户做推荐[39, 71, 76]。 从此,推荐系统开始成为一个比较独 立的研究问题。从1994年到2006年,推荐系统的主要研究都集中在基于邻域的 协同过滤算法的研究,GroupLens1994年提出了基于用户的协同过滤算法[71], 该算法是最早应用的协同过滤算法。 Amazon在2003年提出了基于物品的协同 过滤算法(ItemCF)[53],该算法是目前工业界应用最广泛的算法。 美国著名的DVD租赁网站Netflix为了推动对推荐系统特别是评分预测问 题的研究,在2006年推出了Netflix Prize比赛1。 Netflix提供了一个大规模的包 含时间信息的用户电影评分数据集供研究人员研究[9]。 比赛的目标是希望能 够将当时最好的用户评分预测算法ItemCF的精度提升10%。从2006年到2009年 的3年比赛中,很多研究人员提出了大量的新算法[8, 10, 44, 80] 并成功的达到 了比赛的预期目标。 该比赛的成功不仅推动了学术界对推荐系统的深入研究, 也推动了工业界对用户个性化推荐问题的重视。 近年,很多研究人员意识到基于用户显性评分数据的评分预测问题并非 推荐系统的全部,很多人开始对很多其他重要的问题进行研究。 其中最重要 的是如何利用用户的隐性反馈数据(Implicit Feedback Data)预测用户的喜好, 来给用户推荐他们最喜欢的物品。 这个问题被称为Top-N推荐问题。 该问题之 所以重要,是因为首先显性反馈数据相对隐性反馈数据非常少,用户的大量 1 http://www.netflixprize.com/
  • 24. Author xlvector, Copyrights belong to CASIA 12 动态推荐系统关键技术研究 行为都是以隐反馈的形式存储的(比如谁看了什么,浏览了什么等等数据) , 其次Top-N推荐问题和实际推荐系统中遇到的问题(如何给每个用户一个推 荐列表)更加类似。 因此最近几年很多研究人员对Top-N推荐做了深入的研 究[21, 25, 35]。 Cremonesi [21]对评分预测问题和Top-N问题做了深入的研究, 发现评分预测问题中行之有效的算法在Top-N推荐中并不能取得好的推荐精 度。 Netflix Prize比赛带来的另一个好处是推动了学术界对推荐系统动态特性 的研究。 Koren[45] 在Netflix Prize比赛中详细研究了Netflix电影推荐数据集中 的动态特性,并成功的利用时间信息提高了评分预测问题的预测精度。和评分 推荐问题类似,Top-N推荐问题中也存在用户兴趣变化等动态特性。 推荐系统 的动态特性包含了很多的方面。首先,时时刻刻都有新的用户和新的物品加入 系统,并且时时刻刻都有新的用户行为产生,所以动态推荐系统需要实时的对 用户的新行为作出响应,并且将新加入系统的物品以最快的速度推荐给可能喜 欢它们的用户。 无论是评分预测问题还是Top-N推荐的问题,推荐系统的基本 问题都是度量一个用户对物品的喜好程度或者是一个物品对一个用户的有用 程度。但是,度量用户对物品的喜好不仅取决于用户的喜好和物品的属性,也 取决于用户所处的环境,或者称做上下文(Context)。 上下文信息有很多类型, 主要包括时间,地点等等。其中,时间是一种重要的上下文信息,用户在不同 的时间可能喜欢不同的物品,物品在不同的时间也有不同的流行度。因此推荐 系统应该是一个动态系统,随着时间的变化会给用户不同的推荐结果。最近几 年,关于基于时间的推荐系统的研究有很多,有利用时间信息提高评分预测问 题的预测精度方面的研究[26, 45],也有如何利用时间信息提高Top-N推荐准确 率方面的研究[86]。 在下面的各节中,我将首先介绍工业界的实际推荐系统的例子,然后详细 介绍推荐系统设计的主要方法和推荐系统的评测。最后,我们将详细介绍推荐 系统动态特性方面的相关研究。 2.2 推荐系统的商业应用 推荐系统在很多商业网站中有很多成功的应用。其中最主要的应用是给每 个用户提供一个个性化的推荐列表。 使用个性化推荐系统的商业网站的著名 代表有Amazon 的电子商务推荐,Netflix和MovieLens的电影推荐,Youtube的
  • 25. Author xlvector, Copyrights belong to CASIA 第二章 推荐系统相关研究综述 13 视频推荐[7],Pandora和Lastfm的音乐推荐[16],Google的新闻推荐[22, 54]以 及Facebook,Twitter和Linkedin的社会网络好友推荐。 图2.2给出了著名商用推荐系统(Amazon, Netflix)的用户界面。 如图所示, 他们的推荐结果都有几个主要的部分组成:物品的描述(包括标题,简介和缩 略图,平均分) ,以及推荐的原因。 这两个推荐系统的推荐结果都是根据用户 过去的行为给用户做出推荐。因此可以推测他们的基础算法都是基于物品的邻 域算法,即假设用户会喜欢和他们以前喜欢的物品类似的物品。 (a) Amazon推荐系统用户界面 (b) Netflix推荐系统用户界面 图 2.1: 著名商用推荐系统的用户界面 音乐推荐是推荐系统中的一个专门的研究领域。音乐推荐中的著名应用就 是个性化电台。个性化电台让用户对自己听到的音乐不断的反馈,然后实时的 通过用户的反馈来更换用户的音乐播放列表,让用户越来越多的听到令他们满 意的歌曲。 这方面著名的应用有国外的Pandora,Lastfm [16]和国内的豆瓣电
  • 26. Author xlvector, Copyrights belong to CASIA 14 动态推荐系统关键技术研究 台(图2.2(a))。 和电台类似,youtube也推出了称为Leanback的个性化电视台应 用(图2.2(b))。 个性化电视台和音乐电台类似,也让用户对自己看到的视频不 断反馈,并实时的通过用户的反馈更换用户的视频播放列表。 (a) 豆瓣电台的用户界面 (b) Youtube个性化电视台的用户界面 图 2.2: 著名的个性化电台和电视台的用户界面 2.3 推荐系统的主要方法 最近几年关于推荐系统的研究很热门,很多研究者都提出了不同的推荐方 法。这些方法可以按照两种方法分类,第一种按使用的数据来分类,可以分为 协同过滤,内容过滤和社会化过滤等等。另一种按照模型来分类,可以分为基 于邻域的模型,矩阵分解模型和图模型。本节,我们将基于第一种分类方法对 推荐系统的主要方法进行介绍,并在介绍每种方法时介绍他们常用的模型。 推荐系统会使用各种不同的数据。 如果推荐系统仅仅利用用户的行为数
  • 27. Author xlvector, Copyrights belong to CASIA 第二章 推荐系统相关研究综述 15 据,根据用户的历史兴趣来给用户做推荐,那么这种方法被称为协同过滤算 法。如果推荐系统利用了物品的内容数据,计算用户的兴趣和物品描述之间的 相似度,来给用户做推荐,称为内容过滤。如果推荐系统利用了用户之间的社 会网络信息,利用用户在社会网络中的好友的兴趣来给用户做推荐,称为社会 化过滤。下面将对这几种方法都做一个详细的介绍。 2.3.1 协同过滤 协同过滤(Collaborative Filtering)是推荐系统领域最著名的算法。 该算 法主要通过研究用户的历史行为来给用户的兴趣建模并给用户做出推荐。 GroupLens 在1994年发表了第一篇协同过滤算法的论文[71],该文章提出了基 于用户的协同过滤算法(user-based collaborative filtering)。2000年,Amazon在 论文[53]中提出了基于物品的协同过滤算法(item-based collaborative filtering)。 这两个算法是目前商用推荐系统中最著名的算法。 基于用户的协同过滤算法(UserCF)认为,一个用户会喜欢和他有相似兴趣 爱好的用户喜欢的物品。因此,要对一个用户做推荐,首先得找到和他兴趣爱 好相似的用户。 在协同过滤中,两个用户兴趣相似是因为他们喜欢相似的物 品。 简单的说,给定用户u, v,令N (u)是u喜欢的物品集合,N (v)是v喜欢的物 品集合,那么u, v的兴趣相似度可以简单的用如下的公式描述: |N (u) ∩ N (v)| suv = (2.1) |N (u) ∪ N (v)| 有很多种描述集合相似度的算法,上面的只是其中一个代表。 从而,用户u对 物品i的喜欢程度可以用如下公式计算: ∑ pui = suv pvi (2.2) v∈S(u,k)∩N (i) 和基于用户的协同过滤的假设不同,基于物品的协同过滤(ItemCF)假设, 一个用户会喜欢和他之前喜欢的东西类似的东西。 因此利用ItemCF给一个用 户做推荐的时候,首先从数据库里获取他之前喜欢的东西,然后从剩下的物品 里找到和他历史兴趣近似的物品推荐给他。 ItemCF算法的核心是要计算两个 物品的相似度。 和UserCF的基本思想类似,ItemCF认为两个物品被越多的人 同时喜欢,这两个物品就越相似。令N (i), N (j) 分别是喜欢i, j的用户集合,那
  • 28. Author xlvector, Copyrights belong to CASIA 16 动态推荐系统关键技术研究 么物品i, j的相似度可以用如下的公式来计算: |N (i) ∩ N (j)| sij = (2.3) |N (i) ∪ N (j)| 然后,用户u对物品i的喜欢程度可以用如下公式计算: ∑ pui = sij puj (2.4) j∈S(i,k)∩N (u) ItemCF的算法的好处,是可以做推荐解释。比如,在图2.3中,Amazon给 某用户的第一个推荐结果是一本名叫《Introduction to Algorithms》的书,如 果点击下面的fix this recommendation,Amazon会给用户一个推荐解释,如 图2.3所示,Amazon给我推荐这本书是因为我曾经买过一本模式分类的书和一 本统计学习的书,同时我给一本概率图理论的书打过比较高的分数。这个解释 的本身,说明了Amazon的内部算法是基于物品的协同过滤,它推荐的书都是 和用户之前购买或者喜欢的书相似的书。 图 2.3: Amazon推荐系统的用户解释 UserCF和ItemCF两种算法都被称为基于邻域的算法,除此之外,还有很 多不同的协同过滤算法。 Hoffman在文献[34]提出了隐语义模型(Latent Class
  • 29. Author xlvector, Copyrights belong to CASIA 第二章 推荐系统相关研究综述 17 Model),该模型用隐类(Latent Class)将用户和物品联系起来,它认为用户并不 是直接对物品产生兴趣,而是用户对几个类别有兴趣,而物品属于不同的类 别,因此这个模型会通过用户行为数据学习出这些类别,以及用户对类别的兴 趣。 在Latent Class Model的基础上,后来很多研究人员提出了矩阵分解模型, 也被称为Latent Factor Model[8]。 基于矩阵分解的模型有很多种,这些模型大 多是在Netflix Prize的比赛中被提出来的,比如RSVD[70],SVD++ [44]等等。 除 了 矩 阵 分 解 相 关 的 模 型, 图 模 型 在 协 同 过 滤 中 也 有 广 泛 的 应 用。 Baluja在文献[7]中介绍了Youtube推荐算法背后的co-view图模型,并提出了 一种扩散算法在图上度量用户对物品的兴趣。 文献[68] 中研究了如何通过 分析图模型中的顶点之间的路径来增加协同过滤算法推荐结果的惊喜度。 Mirza[63]系统研究了基于图模型的推荐问题,指出推荐的本质是将用户和物品 联系起来,而图模型是联系用户和物品的最自然的方式。文献[28] 系统的研究 了各种计算图中顶点之间相似度的算法,并比较了不同相似度算法的推荐准确 度。 2.3.2 基于人口统计学的过滤 每个人都有他的人口统计学(Demographic)特征,包括了年龄,性别,工 作,学历,居住地,国籍,民族,等等。这些特征对预测用户的兴趣也有很重 要的作用。 比如男性和女性的兴趣不同,不同年龄的人兴趣也不同。 图2.4显 示了IMDB中给著名美剧评分的男女用户数的比例2。 这幅图中的数据只代表 了IMDB用户观看电视剧的性别分布,因为IMDB网站用户的性别分布本身是 有偏的(男性用户较多) 如图所示,用户选择电视剧的行为和性别有很大的 。 相关性,有些电视剧,比如格雷医生和绝望主妇,比较受女性的欢迎,而另一 些电视剧,比如生活大爆炸和荒野求生,则比较受男性的欢迎。基于用户人口 统计特征的推荐的最大好处,是可以解决注册用户的冷启动(Cold Start) 的问 题。当一个用户刚刚注册,还没有任何行为的时候,我们就可以根据他注册时 提供的年龄性别等人口统计特征数据,来预测他的兴趣。 Krulwich在[46]文中 研究了如何利用大量的用户人口统计特征数据和用户行为数据来构建用户的兴 趣模型的方法。首先,Krulwich 根据美国用户看电视、购物的行为,将用户根 2 IMDB网 站 中 给 出 了 每 一 部 电 影 和 电 视 剧 的 评 分 人 数 按 照 年 龄 和 性 别 的 分 布 数 据, 比 如 豪 斯 医生(House M.D.)的评分人数分布可以在下面的链接得到http://www.imdb.com/title/tt0412142/ ratings。
  • 30. Author xlvector, Copyrights belong to CASIA 18 动态推荐系统关键技术研究 据他们的人口统计学特征分成62个先验的聚类。然后,对任意一个用户,首先 找到他的聚类,然后给他推荐这个聚类里的其他用户喜欢的物品。 但是基于人口统计特征的推荐的主要缺点是它的推荐粒度太粗。比如,如 果我们只有用户的年龄和性别的数据,那么对于相同年龄和性别的人的推荐 结果将是完全一样的。因此没有实现彻底的个性化。另外,很多用户在提交自 己的年龄性别信息时,出于对自己隐私的考虑,可能不会提供真实的信息[64], 这也会导致推荐系统的误差。 图 2.4: IMDB中不同美剧的男女分布 2.3.3 内容过滤 内容过滤(Content-Based Filtering)[6, 66]是推荐系统中的一种重要的方法。 这种方法的基本思想是给用户推荐和他们之前喜欢的物品在内容上相似的 其他物品。 比如如果用户喜欢一本数据挖掘的书,那么基于内容过滤的推 荐系统就会给他推荐其它他没有看过的数据挖掘方面的书。 因此,内容过 滤系统的核心任务就是计算物品的内容相似度。 给物品内容建模的方法很 多,其中最著名的模型是向量空间模型[5]。 这个模型首先抽取出物品的关键 词(keyword),然后利用TF-IDF来计算关键词的权重[74]。令ki 是物品dj 的第i个 关键词,wij 是ki 在dj 上的权重,那么物品dj 的内容可以定义为如下的向量模 型: Content(dj ) = {w1j , w2,j , . . . } (2.5)
  • 31. Author xlvector, Copyrights belong to CASIA 第二章 推荐系统相关研究综述 19 如前所述,内容过滤算法给用户推荐和他们之前喜欢的物品在内容上相 似的物品。 因此需要根据用户之前喜欢的物品来对用户对内容的喜好建模。 令ContentBasedP rof ile(u)为用户u的内容喜好向量,此向量定义如下: 1 ContentBasedP rof ile(u) = sumd∈N (u) Content(d) (2.6) |N (u)| 其中N (u)是用户u之前喜欢的物品集合。 因此用户内容喜好向量就是根据用户 喜欢的所有物品的向量模型的平均。 计算出所有的物品内容向量Content(·)和 所有用户的内容喜好向量ContentBasedP rof ile(·)之后,给定任意一个用户u和 一个他不知道的物品d,用户对物品的喜好定义为ContentBasedP rof ile(u)向 量和Content(d)向量的相似度: p(u, d) = sim(ContentBasedP rif le(u), Content(d)) (2.7) 其中sim(·, ·)定义了两个向量的相似度。 利用关键词给物品建模是很多内容推荐系统的重要部分。 但准确的抽取 物品的关键词也是一个困难的问题。 特别是在多媒体领域,例如在图像视频 的推荐系统中,很难根据图像和视频的内容提取出文本的标签。 为了解决这 个问题,不同系统提出了不同的解决方案。 这些解决方案大致分为两种,一 种是利用专家给物品标签。 另一种是让用户给物品贴标签。 专家标注系统的 代表有Pandora的音乐推荐系统和Jinni的电影推荐系统。 以Jinni为例,他们 的研究人员定义了900多个不同的标签(称为电影基因) ,然后让电影专家给 每一个电影标注一系列标签。 这900多个标签属于不同的类别,包含了电影 的类别,剧情,时间,地点,人物,获得的奖项等信息。 图2.5是Jinni的专家 给电影《功夫熊猫》标注的标签。 如图所示,功夫熊猫的标签一共分成了十 类:心情(Mood),剧情(Plot),类别(Genres),故事发生的时代(Time),故事 发生的地点(Place),适合的观影人群(Audience),评价(Praise),风格(Style), 态度(Attitude),画面(Look)。 如图所示,这些类别包括了电影方方面面的信 息,可以准确描述一部电影。 和专家标注系统相比,用户标注系统的应用范围更加广泛。 代表的网站 有Delicious,Flickr等等。 用户标签(Tag)相对于专家标注的特点是标签更加多 样,也更能反映用户的长尾兴趣,但缺点是质量不高,有很多错误的标注。因 此在用户标签系统中,主要有两类推荐问题,一是如何给用户推荐标签(tag
  • 32. Author xlvector, Copyrights belong to CASIA 20 动态推荐系统关键技术研究 图 2.5: Jinni给功夫熊猫编辑的内容属性 recommendation [78]),即当用户面对一个物品时,给他推荐一些适合于这个 物品的标签供用户选择。 这样做的目的有两个,首先是方便用户标注,用户 可以不用打字而是只通过点击几个推荐的候选标签就完成标注的过程,其次 可以提高用户标注的质量。 另一个推荐问题是如何利用标签来给用户推荐物 品(tag-based recommendation [75])。当用户给了物品标签后,最简单的推荐方 法是将标签作为物品的关键词,然后利用前面提到的内容过滤的算法给用户做 推荐。 2.3.4 社会化过滤 在现实社会中,用户的兴趣和选择往往受到好友的影响。 在互联网中, 随着诸如Facebook, Twitter等社会网络网站的兴起,如何利用用户之间的社 会关系设计推荐系统,是近几年推荐领域比较热门的研究问题。 基于社会 网络的推荐算法被称为社会化过滤(Social Filtering)或者社会化推荐(Social Recommendation)。近几年在工业界已经有了很多社会化推荐系统。图2.6展示 了Amazon利用用户在FaceBook的社会网络关系提供的推荐结果。 图中,每个 推荐结果的下面都显示了喜欢这个商品的用户的好友。 最简单的社会化过滤算法是基于邻域的算法(Neighborhood-based Method)。
  • 33. Author xlvector, Copyrights belong to CASIA 第二章 推荐系统相关研究综述 21 图 2.6: Amazon利用Facebook Connector做出的社会化推荐 给定用户u,令F (u)为用户u的好友集合,N (u)为用户u喜欢的物品集合。那么 用户u对物品i的喜好程度定义为用户u的好友中喜欢物品i的好友个数: ∑ pui = 1 (2.8) v∈F (u),i∈N (v) 除了简单的邻域模型,还有很多社会化过滤算法。 Jamali在[36]中利用图模型 将用户的社会网络和用户物品的喜好关系建模到一张图中,然后利用随机游 走(Random Walk)算法给用户做社会化推荐。 Ma在[57]提出了一个矩阵分解的 算法来分解用户的社会网络矩阵和用户物品喜好矩阵,计算出用户的特征向量 和物品的特征向量,并最终利用特征向量的点乘度量用户对物品的兴趣。社会 化过滤相对于协同过滤有以下的优点: • 在很多网站中,用户物品矩阵的稀疏度比较高,因此仅仅利用用户对物 品的行为关系来做协同过滤往往遇到稀疏的问题,造成推荐精度较差。 特别是遇到冷启动的问题时,协同过滤就无法给出推荐。 比如一个新用 户,我们没有他的行为数据,因此无法根据他的历史行为给他做出推荐。 但如果我们能通过Facebook等网站提供的API获得他的社会网络信息,就 可以根据他朋友的历史行为来预测他的兴趣。 • 在现实社会中,人们的选择确实会受社会关系的影响,因此好的社会化 过滤算法可以提高推荐的精度。 而且因为现有的推荐系统绝大多数是基 于协同过滤的,此时如果引入社会化过滤也可以推荐出协同过滤无法推 荐出的物品,从而增加推荐结果的多样性和用户的惊喜度。
  • 34. Author xlvector, Copyrights belong to CASIA 22 动态推荐系统关键技术研究 但是,社会化过滤也有一些缺点,其最主要的缺点是,用户之间的社会关系形 成的原因很多。可能是因为血缘关系,同学关系或者有共同的兴趣爱好。但只 有依赖共同兴趣爱好形成的社会网络关系对预测用户的兴趣才会有比较大的帮 助。因此,如何鉴别不同社会关系对预测用户不同行为的作用,是社会化过滤 中的一个重要的研究方向。 除了利用社会网络信息给用户推荐物品的社会化过滤问题,社会网络中的 另一类推荐问题就是如何给用户推荐好友。主要的社会网络系统都有好友推荐 的功能(如图2.7所示) 最近几年,研究人员提出了很多好友推荐算法,其中 。 主要的算法都是基于图模型的[52, 55]。 图 2.7: Facebook的好友推荐系统 2.3.5 基于位置的过滤 随着移动设备的普及,很多手机或者手持设备都配备了GPS等定位工具, 因此最近几年基于位置的过滤(Location-based Filtering)也逐渐成为推荐系统领 域研究的一个重要方向[51, 88]。基于位置的过滤主要被用在旅游领域,图2.8展 示了MappyFriends同时利用社会网络和位置信息设计的推荐系统。该系统通过 分析用户的位置,给用户推荐那些他们的好友在附近旅游的景点。在很多基于 位置的推荐算法中,位置主要被作为一种重要的上下文信息。
  • 35. Author xlvector, Copyrights belong to CASIA 第二章 推荐系统相关研究综述 23 图 2.8: MappyFriends的基于位置的旅游推荐系统 2.4 推荐系统动态特性的研究现状 现实世界中的一切事物都处在不断的变化之中,推荐系统也是如此。用户 的兴趣,物品的属性是不断变化的,每天会有大量的新用户,新物品加入系 统。此外,时间是一种重要的上下文信息(Context),用户在不同的时间段会有 不同的兴趣,比如用户在白天和晚上的兴趣可能不同,用户在周末和工作日 的兴趣可能不同,用户在节日可能会有特殊的兴趣,在不同的季节也会有不 同的兴趣。 图2.9展示了美国用户对5种不同汽车品牌的专注度随时间变化的曲 线3。 可以看到,用户对不同汽车的兴趣是随时间变化的,比如用户在2009年 前对Honda 的关注度要大于Ford,但2009年后对Honda的关注度发生了较大的 下降。此外,如图所示,用户对很多品牌在夏季的关注度要大于在冬季的关注 度。因此,合理的利用时间信息,考虑推荐系统的动态特性,对提高推荐的准 确度和用户的满意度将会有很大的帮助。 传统的推荐系统在设计时并没有主动的考虑到时间因素,但这些方法给用 户的推荐结果并不是静态的。这是因为用户不断有新的行为并且新的物品会不 断加入到网站中。比如,基于物品的协同过滤算法会推荐那些和用户之前喜欢 3 此数据由Google Insights for Search(http://www.google.com/insights/search/) 提供。
  • 36. Author xlvector, Copyrights belong to CASIA 24 动态推荐系统关键技术研究 图 2.9: 美国用户对于5个不同汽车品牌的关注度随时间变化的曲线 的物品类似的物品,但由于用户之前喜欢的物品集合是随时间不断变化的,所 以推荐结果也是不断变化的。社会化过滤也是如此,一方面,用户的好友集合 是动态变化的,另一方面用户喜欢的物品也是动态变化的,因此社会化过滤的 结果也是动态变化的。Lathia [49] 系统的研究了不同算法产生的推荐结果的变 化率相对于数据本身变化率的关系。 他将数据集按照一个时间点T 分成前后两 个数据集,用T 时刻之前的用户行为作为训练集,T 时刻之后的用户行为作为 测试集。 然后,他不断增加T ,对每一个T 都用不同的算法在相应的训练集上 训练,测试集上测试。 随着T 的增加,训练集和测试集都在发生变化。 通过这 种方法,就可以研究不同算法的推荐结果相对于数据变化的敏感程度。他的研 究表明,有些算法对数据变化很敏感,而另一些算法的推荐结果却相对比较稳 定,不太受数据变化的影响。 虽然前面所述的推荐算法的结果也是随数据变化而变化的,但因为它们并 没有主动考虑时间因素的影响,所以他们并不能完全发挥时间信息对推荐系统 的作用。时间信息对推荐系统的作用首先体现在对用户兴趣的影响上。Ding在 文献[26]中提出,用户未来的兴趣主要受他近期兴趣的影响,所以推荐算法应 该加重用户近期行为对最终结果的影响。他们通过在协同过滤算法的基础上引 入时间衰减函数来实现了他们的猜想并提高了推荐的准确度。 在某些情况下, 我们可能无法知道用户每个行为发生的具体时间,但可以知道用户行为的先后 顺序。 Zimdars[93] 研究了在有序数据集上的推荐问题,利用决策树算法对用
  • 37. Author xlvector, Copyrights belong to CASIA 第二章 推荐系统相关研究综述 25 户行为的序关系进行建模。 Lu[56]修改了传统的协同过滤算法中的矩阵分解模 型,将用户和物品的特征向量看作一个随时间变化的动态特征向量,从而将时 间作为新的一维建模到推荐模型中去。Xiong[87]同样利用矩阵分解模型,将时 间作为新的一维,利用张量分解(tensor factorization) 的算法对含有时间的用 户行为数据进行建模。 Netflix大奖赛也公布了带有用户评分时间的数据集。很多参赛的研究人员 都利用时间信息大大的提高了评分预测的精度。 最终的获胜队伍成员Koren在 文章[45]中总结了他们对时间信息的建模方法。 他提出了评分预测问题中应该 考虑的四种主要的时间效应: • 用户偏好随时间变化(User bias shifting):用户可能在某一天只对他喜欢 的物品评分,某一天可能只对他不喜欢的物品评分。 因此用户某一天的 平均分是随时间变化的。 • 物品偏好随时间变化(Item bias shifting):物品的受欢迎程度也是随时间 变化的。 一部电影刚发布的时候的平均分可能和发布很久之后的平均分 有所差别。 • 用户兴趣随时间变化(User preference shifting):用户在不同的时候可能有 不同的兴趣,比如小孩可能喜欢看动画片,但当他长大了可能喜欢看其 他种类的电影。 • 季节效应:用户行为会受季节效应的影响。 电影推荐中主要的季节效应 有暑期的效应,颁奖典礼的效应(比如奥斯卡颁奖礼期间,获奖电影会 受到很多的关注) ,以及一些纪念日的效应(比如二战胜利纪念日前后, 二战题材的电影会受到较多的关注) 。 Koren用矩阵分解的模型对上面的时间效应进行建模,并利用随机梯度下降法 对模型进行优化。该模型相对于其他模型取得了很大的提高。 2.5 推荐系统评测 任何推荐算法都要通过评测,才能评估它的推荐质量。 推荐系统评测的 问题吸引了很多研究人员的研究[17, 29, 33, 38] 常用的推荐评测指标有:准
  • 38. Author xlvector, Copyrights belong to CASIA 26 动态推荐系统关键技术研究 确度(accuracy),覆盖度(coverage),多样性(diversity),新颖性(novelty),惊喜 度(serendipity)等等。下面各节将详细讨论这些评测指标。 2.5.1 准确度 准确度是推荐系统里最常用的指标,在预测评分的系统和Top-N的推荐系 统中有不同的准确度度量方法。 在评分预测的问题中,我们常用平均绝对误 差(MAE)或者均方误差(RMSE)来评测评分预测的准确度: ∑ (u,i)∈T |ˆui − rui | r M AE = (2.9) |T | √∑ (u,i)∈T (ˆui − rui )2 r RM SE = (2.10) |T | 这里,T 是测试集。 rui 是算法预测的用户u对物品i的打分,rui 是数据集中用 ˆ 户u对i的实际打分。早期的推荐系统研究中多用MAE作为评测指标,但今年因 为Netflix大奖赛中用RMSE作为评测指标,所以RMSE逐渐称为评分预测问题 中预测准确度的主要评测指标。 Takacs在文[81] 对这两种评测指标做了深入的 比较和分析。 Top-N推荐问题和评分预测问题不同,他的目的是对每一个用户,通过分 析他们的历史行为,给他们推荐N 个他们可能会喜欢的物品。 给定一个推荐 算法,对于用户u,令Ru 是算法的推荐结果集合,Tu 是测试集中用户u喜欢的 物品集合,此时可以通过准确率(Precision)和召回率(Recall) 来度量推荐的精 度[38]: ∑ u |Ru ∑ ∩ Tu | Recall = (2.11) u |Tu | ∑ u |Ru ∑ ∩ Tu | P recision = (2.12) u |Ru | 上面所述的方法都是离线评测算法。此外还可以在线评测推荐系统的准确 度。最简单的评测指标是点击率,即有多大比例的用户看到推荐结果后点击了 推荐结果。此外,有些推荐系统设有反馈机制,让用户直接对推荐结果表示喜 欢还是不喜欢(如图2.10所示) ,利用这些反馈数据,也可以度量推荐系统的准 确度,比如可以用有百分之多少的用户表示喜欢来度量推荐的准确度。
  • 39. Author xlvector, Copyrights belong to CASIA 第二章 推荐系统相关研究综述 27 图 2.10: GetGlue的推荐结果反馈界面 2.5.2 覆盖度 推荐系统的一个重要任务是解决长尾的问题,即如何将长尾中的物品推 荐给喜欢它们的用户。 一个好的推荐系统应该不仅仅给用户推荐他们满意的 物品,而且应该能够让高质量的物品出现在用户的推荐列表中。 推荐系统的 覆盖度[29] 度量了推荐系统能把多大比例的物品推送给至少一个用户。 如果 令R(u)是推荐系统给用户u的推荐列表,那么推荐系统的覆盖度定义为: ∪ | u∈U Ru | Coverage = (2.13) |I| 其中,U是用户集合,I是物品集合。从上面的定义可以看到覆盖度介于(0,1]之 间。覆盖度越大的推荐系统能够更好的发掘长尾。此外,准确度和覆盖度之间 并没有直接的联系,准确度高的推荐并不一定有高的覆盖度。比如考虑两种推 荐算法,算法A给所有用户都推荐N个最热门的物品,算法B给用户随机推荐物 品。 算法A的准确度高于算法B,但算法A的覆盖度却是所有推荐算法中最低 的,因为它给所有用户的推荐结果相同,所以它的覆盖度是N/|I|。 2.5.3 多样性 多样性过低的推荐结果会影响用户的体验。比如,对于一个武侠迷,仅仅 给他推荐金庸的小说,虽然准确度并不低,但多样性却比较低,不如给他推荐 不同武侠小说家的经典作品,这样可以兼顾准确度和多样性。 很多研究表明, 传统的协同过滤算法以及内容过滤算法的推荐结果的多样性都是偏低的。 因 此,很多研究人员提出了很多提高推荐结果多样性的算法[89, 90, 92]。
  • 40. Author xlvector, Copyrights belong to CASIA 28 动态推荐系统关键技术研究 令Ru 是 给 用 户u的 推 荐 列 表,那 么 推 荐 列 表Ru 的 多 样 性,是 通 过 这 个 列 表 中 物 品 两 两 之 间 的 相 似 度 来 描 述 的。 即 如 果 一 个 推 荐 列 表 中 的 物 品 两两之间越不相似,那么这个推荐列表的多样性越高。 给定两个物品i, j, 令sim(i, j) ∈ [0, 1]为它们的相似度,sim(i, j)越大,表示这两个物品越相似。 从而,Ru 的多样性定义为: ∑ i,j∈Ru ,i̸=j (1 − sim(i, j)) Diversity(Ru ) = (2.14) 1 2 N (N − 1) 这里,N = |Ru |是推荐列表的长度。而整个推荐系统的多样性定义为: 1 ∑ Diversity = Diversity(Ru ) (2.15) |U| u∈U 从上面的定义可以看到,推荐结果的多样性定义依赖于物品相似度函数的 定义。不同的相似度度量可以定义出不同的多样性,比如内容相似度可以定义 为内容多样性。 2.5.4 新颖性和惊喜度 新颖性[17]和惊喜度[29, 59] 是最近两年推荐系统领域比较关注的指标。新 颖度的目的是度量推荐列表中物品对于用户的新颖程度。很多准确度高的推荐 结果往往不具有高的新颖度。比如,给一位研究数据挖掘的科学家推荐一本数 据挖掘入门的书,虽然这本书符合这位用户的兴趣,但是对这位用户却没有新 颖度,因为他有很大的可能已经看过这本书了。因此,新颖的推荐的目的是希 望推荐给用户那些他们没有听说过的物品。而惊喜度则更进一步,它的目的是 推荐那些让用户感到出乎意料却又特别喜欢的物品。因此,某种程度上,惊喜 度同时考虑了新颖性和准确度。 目前还没有离线计算这两个指标的方法。所有关于这两个指标的评测都是 通过做用户调查(User Study),即让用户直接对推荐结果的新颖性和惊喜度进 行评分来获得相关的评测指标。 2.6 本章小结 本章简单概述了推荐系统的主要任务和问题。从商业应用和学术研究两个 角度介绍了推荐系统研究的现状。并且,本章从推荐系统的数据角度对推荐系
  • 41. Author xlvector, Copyrights belong to CASIA 第二章 推荐系统相关研究综述 29 统进行了分类,介绍了内容过滤,协同过滤,人口统计学过滤,社会化过滤以 及地点过滤等五种不同的推荐系统以及他们背后的主要算法。然后介绍了推荐 系统动态特性方面的研究现状,讨论了相关的模型和算法。最后,本章讨论了 推荐系统的主要评测指标,在后面的各章中,我们将会利用这些评测指标对不 同的推荐算法进行评测。
  • 42. Author xlvector, Copyrights belong to CASIA
  • 43. Author xlvector, Copyrights belong to CASIA 第三章 评分预测问题中用户兴趣预测的动态模型 3.1 引言 推荐系统的主要目的是从用户的行为中挖掘出用户的兴趣,因此收集用户 行为的系统是推荐系统的重要组成部分。让用户给物品评分是很多推荐系统收 集用户兴趣的重要手段。用户评分行为也被称为显性反馈行为,因为评分结果 明确的表示了用户对物品的兴趣。 图3.1展 示 了 不 同 网 站 收 集 用 户 显 性 反 馈 的 界 面。 如 图 所 示, 有 些 网 站(Netflix, Hulu)利用5颗星的打分系统,有些网站(Jinni)利用了一个进度条, 有些网站(Youtube, Clicker) 只让用户选择喜欢还是不喜欢。每一种方法都有它 们各自的优缺点,但目的都是希望能够收集到用户对物品的明确兴趣。收集用 户的显性反馈数据是很困难的,相对于用户其他的行为,用户的评分行为数量 很少。但是评分数据非常宝贵,它包含了用户对物品的明确兴趣。 评分预测问题的主要任务是预测一个给定用户对一个给定物品的评分。解 决该问题主要依赖于建立用户的兴趣模型。传统的推荐系统在建立用户兴趣模 型时往往忽略了用户兴趣的变化,而只建立用户的静态兴趣模型。比如,静态 用户兴趣模型在计算一个用户对一个物品的评分时,往往只参考该用户对其他 物品的评分,而忽视用户对其他物品评分的时间。但用户评分行为发生的时间 信息对准确预测用户未来的行为有很重要的作用。 比如,用户最近的评分行为相对于用户很久之前的评分行为往往对预测用 户未来的评分具有更高的参考价值。物品的受欢迎程度也受时间的影响,一部 电影刚刚发布时受用户的欢迎程度和发布很久之后受用户的欢迎程度是不同 的。此外,季节效应对评分预测问题也有很重要的作用,用户在不同的季节会 有不同的兴趣,用户在平时和周末会有不同的兴趣,用户在不同的节日会有不 同的兴趣。诸如此类的时间因素在各种类型的网站中都有很多,而如何利用这 些时间信息提高推荐系统预测的精度,设计符合用户兴趣变化的动态推荐系 统,是近几年推荐领域研究的热门问题。下面几节,我们将就如何针对评分预 测问题建立用户兴趣的动态模型以提高评分预测的精度进行讨论。 本章主要内容如下: