推荐系统(八)

这里主要讨论一些关于推荐系统的 evaluation。推荐系统本身的多样性导致我们很难将某些用途完全不同的 RS 进行比较,也就是说至少我们得比较“可比”的 RS 才有意义。比如针对同一个场景推出的彼此可以替换的 RS 模块。但是就算是这样,逻辑上可替换也并不表示功能上可替换,比如都是推荐相关商品的,一个根据用户 co-buy 获得的,一个根据 description 相似性获得的,offline 上很可能很难 evaluate 哪个更好。因此这种可能需要进行 user study,而并不是一些 metrics 上简单的大小比较就可以的。

offline experiments 与 user study

offline 实验除了以上无法获得“功能差异”导致的推荐性能评估这个问题以外,还可能存在一些问题:收集数据的时效性,比如 Yehuda 等人的研究表明,类似电影 rating 数据长期的趋势来看平均 rating 是在上升的,这并不是由于电影变好了,而是多数电影首映之后很长一段时间,再去看电影的人往往是接受到了关于电影正面的宣传(如朋友推荐),本身就对电影具有一定正面的态度和观点的人,这样如果用原先的预测来推导几年后用户的 rating 就会出现系统性的偏差。因此很重要的一种 offline 实验的策略是希望能 replay/simulate 当时用户的一些行为。常见的做法是从一个数据集 sample 用户后,hold out 一部分数据,用剩余的 training,而用 hold out 的部分做 testing(如果 model 有参数需要 tuning,那还需要 validation set 或者做 cross validation)。这种策略常见于学术文章里面,比如比较 CF/matrix factorization 的性能等等。

比较高级的玩法就是 model user behavior,但是这往往需要知道太多的关于用户的细节,实验起来更加困难。因此 offline 还有一种产生一些开销的做法是要求用户参与进来。常见的一些做法,如将 recommendation 当做 IR 问题,可以邀请 editor 给出一些评判(同时他们也是产生训练样本的人?)。人参与到这个 evaluation 过程中之后的最大的问题是如何确保标准的一致,同时由于参与人不可能很多(因为要付钱),可能存在样本的偏差。

实验的策略多使用 A/B testing(也有称之为 bucket testing),即 all/between:between 指不同的用户群体尝试不同的方法。这是相对于 within 方式而言,这时每个用户都会接触到参与测试的所有方法。后者的主要问题是用户会很明确的知道自己参与了实验而前者用户则不会有这种感觉。

online user study

线上是最能反应用户的直接反馈的方式,但是也存在一定的风险。通过线上的反馈数据我们可以比较一些 metrics 的统计显著性(这通常会根据所谓的 p-value,即出现比观测到 null hypothesis 假设下某统计量更极端情形的概率:这包含有单边的 extreme case 和双边的,比如对二项分布参数的假设可能是个单边的,而对正态分布均值的假设可以是个双边的,比较容易被误解的,这也是 Bayesian 所乐衷于评判的就是 p-value 不是 null hypothesis 不成立的概率,相反 Bayesian 的版本的确表示的是这么个类似的意义)。那么我们比较两个算法优劣时一般会使用 paired results,这时候 p-value 就可以为某个 null hypothesis 提供支持了(比如做了 N 次实验很多次都是我家算法比他家的牛)。相关的名词还有 sign testMcNemar’s teststudent’s t testWilcoxon signed rank test。对于 unpaired result,可以使用 Mann-Whitney test

对 frequentists 而言,multiple test 据说是他们的梦魇。

RS 的属性

这里我们稍微列举一些可用于比较的属性:

  • user preference:比较两者的时候有时候需要区分一些很微妙的感觉,如喜欢 A 的人仅仅只是觉得好一点,而喜欢 B 的人对 A 的看法很差
  • prediction accuracy:这是一般讨论最多的东西,一般包含 precision 和 recall 两个方面,也会使用 ROC 之类的东西来评估;对于作为 ranking 的评估来说还有 Kendall’s \tau,NDCG 等;
  • 另外一方面是 coverage,也就是 RS 能覆盖到的 item 比例
  • confidence:RS 对推荐结果是否能评估其质量
  • trust:是否能让 user 认同结果
  • novelty:是否能找到用户所不知道的东西
  • serendipity:能否让 user 表示 surprise
  • diversity:多样性
  • utility:也就是对用户的“效用”(经济学名词)
  • risk:某些推荐存在的风险(比如有关私密的东西,产生利益的选择,用户自身对风险的偏好)
  • robustness:即便存在一些干扰因素(出现偶然的行为)也能不干扰后续的推荐
  • privacy:能够避免将用户某些私密性的偏好泄露
  • adaptivity:如果 item 变化很快,推荐系统是否能很快的跟进
  • scability:能处理多大规模的 user/item

——————
Therefore Sarah laughed within herself, saying, After I am waxed old shall I have pleasure, my lord being old also?

Advertisements
推荐系统(八)

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s