《Using Collaborative Filtering to Weave An Information Tapestry》
在1992
年的论文《Using Collaborative Filtering to Weave An Information Tapestry》
中,论文提出了一个基于协同过滤(collaborative filtering
)的电子邮件过滤系统。
Tapestry
是 Xerox Palo Alto
研究中心开发的实验邮件系统,其动机来自于电子邮件的日益使用,导致用户被大量的邮件所淹没。
处理大量电邮的一种方法是提供邮件列表,这使得每个用户只能订阅他们感兴趣的那些列表。但是,特定用户感兴趣的文档集合很少能够完整的映射到现有的列表。
更好的解决方式是为每个用户指定一个过滤器(filter
),该过滤器将扫描所有的列表,然后在所有列表中选择用户感兴趣的文档。
目前已经有一些邮件系统支持基于文档内容的过滤。 Tapestry
系统可以在基于内容的过滤之外,通过引入人们的行为来执行更有效的过滤,这种过滤被称作协同过滤(collaborative filtering
)。
协同过滤通过记录人们对于他/她所阅读文档的反应(reaction
)来协同从而帮助彼此进行过滤,这种反应可能是文档特别有趣(或者特别无趣)。这些反应(通常也被称作注解 annotation
)可以由其它过滤器访问。
下图给出了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
服务的用户界面,如添加/删除/编辑过滤器、检索新文档、显示文档等。
在 Tapestry
系统中,用户需要显式指定协同的用户以及该用户的行为构建协同过滤器。在后续的演变过程中,协同过滤已经改进了这种方式,无需用户手动指定即可实现协同过滤。