摘要

  • 2006 年上线的 UnSuggester 比较藏书中的实际共现与预期数量,把较少同架的书拿来做反向推荐。
  • 2008 年 5 月,多位读者发现《Gaudy Night》被列入反推荐;Tim Spalding 指出,生成名单时书目编号发生了变化。

一本书你已经买了,甚至很喜欢,网站却兴冲冲地把它送进“反推荐”名单。2008 年 5 月,LibraryThing 上的《Gaudy Night》就遇到了这种待遇。

读者在讨论区报到:这本书我有,有人还特意表明自己爱它。算法看上去很有文学主张。维护者 Tim Spalding 找到的线索却相当朴素——名单还在计算,书目的身份已经变了。

把推荐引擎的外套反穿

LibraryThing 在 2006 年 11 月 12 日推出 UnSuggester。办法是从一本书出发,找到把它录入藏书的用户,再汇集这些人的其他书目,比较某本书实际出现的数量与预期数量。出现得偏少的书,就成了反向推荐的材料。

平常的推荐替你寻找同好,这个功能端出一盘不常同架的书,邀请你看看自己的阅读边界。玩笑能成立,背后那些“缺席”就得数得明白。

计算还有自己的作息。同年 12 月的官方博文里,Spalding 说运算费劲,结果需要缓存一段时间。刚录完书就来测试的人,可能仍在看新书入场前算好的答案。你的书架更新了,程序还没换班。

推理小说,遇上书目谜案

2008 年 5 月 26 日的公告把推荐扩展到个人书单,其中 Your Unsuggester 最多给出 500 条反向推荐,还提供查看推荐依据的功能。读者于是有了更多机会研究:你到底凭什么这样想我?

《Gaudy Night》的问题就在这时冒了出来。官方讨论串里,Spalding 先提出一种可能:书目合并发生在长时间计算的中途,程序还拿着旧的作品编号找书。到了 5 月 27 日晚间,他明确指出,这本书的编号在编制名单期间变了;计算原本预期能找到一定数量,结果总是找到零。

书还老老实实待在读者架上,统计里已经集体隐身。程序随后又给这种隐身安排了一个很像品味判断的展示位置。侦探小说的这一回悬案,嫌疑人藏在目录里。

点一下“不了,谢谢”,又是另一回事

讨论中,用户还问新加的拒绝推荐操作会影响什么。5 月 28 日,Spalding 回答,它只作用于用户自己的列表。读者清掉一条推荐,可能只是因为已经借来读过,未必会把它录进自有藏书。

书目没有记录、计算结果滞后、用户主动清掉一条,分别是三种动作。界面把它们挤进几张书单后,看上去都像机器对你的阅读生活很有意见。

UnSuggester 的妙处,是把推荐系统变得值得拿来开玩笑、争辩。也正是读者较了真,名单背后的记账工作才露出来。书可以很会讲故事,零这个数字也一样。