论文读书笔记-using twitter to recommend real-time topical news

来源:互联网 发布:大话设计模式java 编辑:程序博客网 时间:2024/06/08 05:50

这篇文章主要介绍了如何根据twitter数据来对用户订阅的文章进行排序,在这里twitter数据主要包括twitter上公开的热门话题以及用户在twitter上面的社交关系,拿到这些数据之后再结合用户的RSS源就能实现针对用户进行文章推荐。

 

下面是本文的一些要点:

1、  The starting point for this paper is the idea that mining tweets canprovide access to emerging topics and breaking events and that this informationcan be used as the basis for a novel approach to ranking RSS news feeds so thattopical articles can be effectively promoted.

这里也就是把twitter上面的tweets和RSS news feed结合起来进行推荐。下面是文章作者提出的buzzer系统:


如上图所示,Buzzer系统主要由三部分组成:

web-based Configuration Interface:用户在此提供twitter账号和选择订阅源,不过如果不提供twitter账号系统会自动选择twitter上面的公共信息,也就是public timeline。

Lucene Indexer:在用户twitter数据和RSS订阅数据中进行挖掘和建立索引,实现用户的可配置性。

Recommendation Engine:对RSS订阅源的文章进行排序,进行推荐,依据是在用户twitter数据和RSS数据中流行的术语。

 

2、  具体的算法流程:


给定用户u以及他的RSS源r,系统首先从RSS源中抽取出最近的文章集合R,然后从twitter中抽取出tweets的集合T。再单独为每一篇文章和tweet建立索引产生出两个lucene索引。再由这些索引得到RSS和twitter的术语向量MR,MT。

然后我们确定一个术语集合t,求出其在MT和MR中出现的次数,这些词就是在最近的tweets和RSS文章中出现最多的词。再计算每篇含有ti的文章的TF-IDF值,得到一系列文章A1,A2…An,如下图所示:


为了计算得到一个全局的分值可以直接对上面的TF-IDF值进行加权求和。


分值越大证明这篇文章包含tweet中更多同时TF-IDF值较大的术语,这肯定要比包含词较少同时分值较小的文章更容易被用户喜爱,从中抽取出前K篇分值最大的文章推荐给用户即可。

 

3、  三种推荐策略

虽然上面给出了得到推荐文章的策略,但是还可以针对具体细节进行变动,作者在这里选择了三种推荐策略来进行文章推荐。

Public-rank:该策略使用了上述方法,但是twitter的数据选择的并不是用户个人的,而是time line上面的公共数据

Friends-rank:这里选择的twitter数据来自用户好友的twitter数据

Content-rank:这里并没有用twitter数据,而是只基于文章内容,依据术语出现频率进行打分,从高到低排序进行推荐。

下面是三种推荐效果对比图:


可以看到,基于朋友的推荐更为准确(显然朋友发的内容我们要感兴趣的多,否则我们也不会关注他们),使用twitter数据要比不使用twitter数据推荐的更为准确。不过有趣的是,在询问用户自己认为哪种方式更准确时,他们都认为公共数据推荐更为准确,对于内容推荐则认为准确性为0.(用户自己认为的和实际的不一致)最后,拥有朋友越多的用户在推荐时准确性越高。总之,twitter对于用户的兴趣点分析确实有很大帮助。

0 0