一、Tapestry [1992]

《Using Collaborative Filtering to Weave An Information Tapestry》

  1. 1992 年的论文《Using Collaborative Filtering to Weave An Information Tapestry》 中,论文提出了一个基于协同过滤(collaborative filtering)的电子邮件过滤系统。

    TapestryXerox Palo Alto 研究中心开发的实验邮件系统,其动机来自于电子邮件的日益使用,导致用户被大量的邮件所淹没。

    处理大量电邮的一种方法是提供邮件列表,这使得每个用户只能订阅他们感兴趣的那些列表。但是,特定用户感兴趣的文档集合很少能够完整的映射到现有的列表。

    更好的解决方式是为每个用户指定一个过滤器(filter ),该过滤器将扫描所有的列表,然后在所有列表中选择用户感兴趣的文档。

    目前已经有一些邮件系统支持基于文档内容的过滤。 Tapestry 系统可以在基于内容的过滤之外,通过引入人们的行为来执行更有效的过滤,这种过滤被称作协同过滤(collaborative filtering)。

    协同过滤通过记录人们对于他/她所阅读文档的反应(reaction)来协同从而帮助彼此进行过滤,这种反应可能是文档特别有趣(或者特别无趣)。这些反应(通常也被称作注解 annotation)可以由其它过滤器访问。

  2. 下图给出了Tapestry 的整体架构:

    • Indexer:从电子邮件、Netnews 等外部来源读取文档,并将其添加到 Document Store 中。Indexer 负责将文档解析为一组索引字段从而方便在query 中使用。

    • Document store:为所有 Tapestry 文档提供长期存储,该存储仅支持追加。它还在存储的文档上维护索引,以便可以有效地执行对文档数据库的 query

    • Annotation store:为文档关联的注解提供长期存储,该存储也只支持追加。

    • Filterer:重复对文档集合运行用户指定的一组query,那些与query 匹配的文档将被返回。

    • Little box:将特定用户感兴趣的文档排队。每个用户都有一个 little box,它里面的文件由过滤器填充,并由用户的文件阅读器消费。

    • Remailer:通过电子邮件定期的将little box 的内容发送给用户。

    • Appraiser:对用户的文档进行个性化分类(如用户的 little box 中的文档)。该功能可以自动地对文档进行优先级排序和分类。

    • Reader~Browser:提供用于访问Tapestry 服务的用户界面,如添加/删除/编辑过滤器、检索新文档、显示文档等。

  3. Tapestry 系统中,用户需要显式指定协同的用户以及该用户的行为构建协同过滤器。在后续的演变过程中,协同过滤已经改进了这种方式,无需用户手动指定即可实现协同过滤。