少数人的智慧

在写完《Quora是如何作推荐的》一文以后,我在思考一个问题:伴随着Quora、知乎这样的知识分享型社区的兴起,涌现了一大批各个领域的专家用户,这会对推荐系统带来哪些可能的变化呢?刚好今天在读马尔科姆·格拉德威尔的《眨眼之间》这本书的时候,看到了这么一段,html

当咱们在某一方面修炼到登堂入室的程度时,咱们的品味会变得愈发专业精深、愈发让外行难以理解。也就是说,只有专家才能对本身的反馈信息和见解负起责任。算法

我突然想起来我在09年写过一篇blog《The Wisdom of the Few》,正好和这个事情特别相关。《The Wisdom of the Few》是来自Telefonica Research的一篇论文,《The Wisdom of the Few: A Collaborative Filtering Approach Based on Expert Opinions from the Web》[1]。我当年是在SIGIR'09里面发现的,以为颇有意思。这篇论文的核心内容很是简单,主要方式是对比分析,结论也挺中肯的。服务器

首先定义「专家/Expert」,他们必须是这样的一群人:在一个特定的领域内,能对该领域内的条目给出深思熟虑的、一致的、可靠的评价(打分)。[2]dom

1)经过对 Netflix Users vs. Experts(做者本身收集的)的数据进行对比分析机器学习

  • Number of Ratings and Data Sparsity学习

  • Average Rating Distribution网站

  • Rating Standard Deviation (std)spa

得出结论认为,3d

  • 专家打分数据的稀疏性要好得多。rest

  • 专家的打分对象更全面,好的坏的,流行的冷门的,都会涉及到;而不像大众打分会倾向于流行的和本身喜欢的。

  • 对好电影的评价专家们更趋一致。

  • 对于每单个电影的评价,专家们的分歧也相对更小

  • 对于每单个用户和专家的对比,专家给出的打分更为稳定

2)进行 Nearest-Neighbor CF vs. Expert CF 的推荐效果对比,主要评价「准确性/MAD」和「覆盖率/Coverage」两个指标,

  • 推荐准确性,NN-CF 差很少比 Expert-CF 要好 10%。

  • 推荐覆盖率,Expert-CF 差很少比 NN-CF 要高 10%。

  • 有意思的是上面的右图,用户分布与推荐准确性的关系,

    • 在 MAE < 0.5 时,两种方法覆盖的用户数差很少

    • 差很少在 MAE = 0.5 时,NN-CF 比 Expert-CF 多 10%

    • 以后 MAE 在 [0.5, 1.0] 区间内时,NN-CF 与 Expert-CF 几乎平行

    • 这个意思是说,与 Expert-CF 相比,NN-CF 仅对少部分用户(MAE<0.5的用户,占总数的10%)有明显优点。而这部分用户又能够认为是可预测性很高的用户,Expert-CF 比较容易利用其余方法提升效果。

  • 结论是,Expert-CF 大多数状况下与 NN-CF 效果至关。

3)进行 Nearest-Neighbor CF vs Expert CF 的推荐效果的用户调研,推荐系统最终是为用户服务的,用户说好才是真的好!

  • Random,随机生成的推荐列表。

  • Critics' Choice,Experts 平均打分比较高的影片组成的推荐列表。

  • kNN-CF/Experts-CF,文中两种算法生成的推荐列表。

  • 左图是用户满意度,调查推荐列表里是否包含用户喜欢的影片。两个评价指标,包含喜欢影片的多少,及是否有惊喜。

  • 右图是用户反感度,调查推荐列表里是否包含用户讨厌的影评。两个评价指标,包含讨厌影片的多少,及讨厌程度。推荐系统里面有句名言,「错误的推荐还不如不推荐」。

  • 结论是,Experts-CF 的用户满意度更高。固然了,这个结论的现实性是有一些争议的,好比,参与用户的数量不多,且大多数是男性用户。不过论文做者在这方面都有提到,比较中肯。

证实了 Expert-CF 的可用性以后,吸引人的是这个方法相对传统CF方法,可以带来的好处。

一、Data Sparsity,数据稀疏性

专家的打分数据数据一般涵盖面更广,使用这个数据做推荐,解决了传统 CF 的数据稀疏问题。

二、Noise and Malicious Ratings,噪音及恶意打分

专家的打分一般更加认真或是专业,解决了用户不当心打错分及恶意捣乱的问题。

三、Cold Start Problem,冷启动问题

专家一般更加关注本身领域内的新事物,并可以更快地给出评价。

四、Scalability,可扩展性

对于 (N-User, M-Item) 的推荐问题,传统 NN-CF 的算法复杂度是 O(N2M),计算量很大。而Expert-CF方法能够大幅度下降计算成本。好比论文里的数据,169 experts vs. 500, 000 potential neighbors (Netflix database)。

五、Privacy,用户隐私

如何更好地保护用户隐私,一直是推荐系统领域的一个热点问题。好比,基于Expert-CF方法,能够把一小撮专家打分数据下载到手机上,进行本地计算,而后获得推荐结果,而避免把过多的数据都存储在应用服务商的服务器上。

当年我这篇blog发出以后,在推荐圈引起了一些小讨论,当年仍是豆瓣算法组小鲜肉如今已经成为机器学习大牛的阿稳同窗也给出了本身的解读。[2]

之因此要提出专家CF的算法取代传统的CF,是基于传统CF的一些弊病,好比数据的稀疏性,数据噪声以及计算量的庞大等等,而正是这些数据上的缘由致使传统CF算法推荐多样性不足、推荐不许确以及推荐可扩展性不良好等种种问题。这里提出的专家CF算法目的并不在于在某些数学精度指标上压倒传统的CF算法,而希冀能探究以下几个问题:

  • 一个庞大的用户集合的偏好是否能够经过一个比较小的用户集合的偏好预测出来;

  • 对于一个源数据集来讲,另外一个与之不一样源的、无直接相关的数据集是否具备对它进行推荐的能力;

  • 分析专家的收藏是否能够用做普通用户的推荐;

  • 探讨专家CF是否能解决传统CF的一些难题。

看这篇文章,更多的是看文中阐述的思想,虽然这可能并非他们独创的,但毕竟他们做了一个很好的总结与分析。我一直在思索咱们到底须要什么样的推荐,最近我以为: 至少在大部分的场合,咱们须要的并非与本身类似的用户的推荐,而是与本身类似的专家的推荐。不管是看书、看电影、买手机、买笔记本,那批「行内人物」的观点每每是左右咱们决定的主要因素。这个结论在个性化要求相对比较低的中国显得更为真实。

在这篇论文里,做者并无详细地探讨如何从数据中发现一批领域专家,他们挑选的是一批来自从烂番茄网站爬取的现成的电影评论专家。这也是当年使用这个方法的一个难题,去哪里找到这些各个领域的专家。而现在7年过去了,Quora、知乎、微博、包括各个垂直专业领域的自媒体的崛起,几乎已经让这个问题迎刃而解。

相似于SaaS,目前又有个提法叫作「数据即服务」。留个讨论,你认同DaaS吗,和本文的方法结合这里面可能有什么机会呢?一块儿开开脑洞吧。

参考资料:

[1] 

[2] ,阿稳的blog已经访问不了了,只能放这个转载了。

相关文章
相关标签/搜索