Reculike : 开源论文推荐系统

标签: 产品评论 | 发表时间:2011-09-03 00:02 | 作者:xlvector votis
出处:http://www.resyschina.com

今天这篇博文主要总结一下reculike的系统架构。两周前我们宣布发布了reculike的alpha版。本着分享的原则,今天在这儿介绍一下我们的各个模块的设计方法。

我们这个项目一开始叫paperlens,这是因为我们想学习业界的前辈movielens,开发一个源代码和数据都开源的系统。关于数据的开源,我想当用户数达到一定程度后,每个月会dump一次我们所有的数据库(密码等隐私信息除外),放到网络上供大家下载。至于为什么后来改成reculike,第一个原因是paperlens的域名已经被注册了,第二个是学习另一个著名的论文网站citeulike

做reculike的动机来自于我们准备写一本推荐系统的书,我们不希望这本书中的讨论都是偏离实际的夸夸其谈,所以准备做出一个实际系统作为本书的例子。所以,reculike将是我们接下来要出版的一本有关推荐系统的书中的主要例子。

上面这张图是reculike的整个架构,整个reculike由下面几个部分组成

1. Importer 数据导入模块

该模块从DBLP,CiteSeer,CiteULike等著名的论文数据集导入论文的内容数据到内容数据库。这些内容数据包括了论文的作者,会议期刊名,发表年代,摘要,用户的tag(从citeulike),论文的下载地址(从citeseer),论文的引用关系(从citeseer)。最终论文数据库中有170万篇论文,其中30万篇有下载链接,100万左右的作者。

2. 搜索引擎

搜索引擎是论文推荐系统中不可或缺的一个部分。一方面,搜索论文是很多用户的需求。reculike用了sphinx作为我们的搜索引擎。在最终论文排名方面,除了查询词和论文的匹配度外,我们主要强调了3点。第一是论文本身的引用数,引用数高的论文排在前面。第二点是论文所属的会议的平均引用数,对于一些NB会议/期刊的新论文,这一点是主要的考虑。第三是论文的发表年代,如果论文是近几年发表的,会有比较高的权重。

3. 推荐系统

一个成熟的推荐系统包含了2个主要模块

  • 用户反馈界面
  • 推荐算法

对于用户反馈方式,我们设计了两种主要的用户反馈:

  1. Bookmark : bookmark是表示用户对这篇论文有兴趣,希望记录下来,后面详细阅读
  2. Recommend : recommend表示用户对这篇文章很熟悉,向大家推荐这篇文章,并且愿意解答用户关于这篇文章的问题

因此,在一般情况下,普通用户可以bookmark论文,而专家用户可以推荐论文。用户像推荐论文的专家提出问题。

此外,系统还使用了其他用户行为,比如用户google了论文,或者用户点击了论文的链接,另外还有用户的搜索记录。

对于推荐算法,我们主要使用了基于物品的邻域算法。该算法给用户推荐和他以前喜欢的论文相似的论文。因此,计算论文的相似度是该算法的核心。注意到我们的开发环境只有1.7G的内存,而我们一共有170万篇论文,因此计算170万篇论文的相似度还是一个挺艰巨的任务。由于目前我们没有太多的用户行为数据,因此我们使用了论文的内容数据,包括作者和标题。

这里在计算和一篇论文标题相似的论文时,我们直接调用了sphinx搜索引擎来搜索这篇文章的标题。这样做效果不是特别的好,但在开发人员和资源有限的情况下也是一种不错的选择,毕竟让系统work起来是第一位的。

此外,可以看到我们的推荐结果也都是有解释的。这些解释大都是基于你过去的行为给出的。

4. Site/API

我们的前端界面用PHP写成,Site通过调用API的XML返回结果来生成页面。而API负责从数据库或者后台程序中得到数据,拼成XML提供给Site,所以Site不会直接调用数据库。这样做的好处是,这一套API我们会在将来公开,这样别人也可以通过调用API生成自己的界面

———————————————————–

好了,上面介绍了整个系统的大概框架。最后说一下系统的开发人员。系统的主要开发人员是一群学生。其中的主要代表是北大的两个学生:guojin和wangxing。谢谢他们的努力开发,才使reculike尽早的上线。

关于RecULike的更详细的介绍,我将在这周末去42区做一个报告。晚些时候会给出PPT,欢迎大家拍砖。

您可能也喜欢:

转载:推荐系统应用研究:音乐电台

Hunch推荐系统——能帮你更好地挑选礼物吗?

推荐系统五大问题

Hulu发布新的推荐系统页面

为什么关于社会化推荐系统的创业想法接连失败?

来自无觅网络的相关文章:

推荐系统:主要推荐方法 (@guwendong)

如何从无到有建立推荐系统 (@alibuybuy)

再议“搜索已死,推荐上位” (@yixieshi)

推荐系统应用研究:网上书店 (@alibuybuy)

Amazon.com的推荐:从商品到商品的协同过滤 (@alibuybuy)
无觅

相关 [reculike 开源 论文] 推荐:

Reculike : 开源论文推荐系统

- votis - Resys China
今天这篇博文主要总结一下reculike的系统架构. 两周前我们宣布发布了reculike的alpha版. 本着分享的原则,今天在这儿介绍一下我们的各个模块的设计方法. 我们这个项目一开始叫paperlens,这是因为我们想学习业界的前辈movielens,开发一个源代码和数据都开源的系统. 关于数据的开源,我想当用户数达到一定程度后,每个月会dump一次我们所有的数据库(密码等隐私信息除外),放到网络上供大家下载.

RecULike 论文推荐系统初步上线

- Guancheng(冠诚) - xlvector - Recommender System
我们开发的论文推荐系统RecULike (http://www.reculike.com) 已经初步上线,不过目前还有很多bug,但基本能用,还在不断的改善中. 该系统是一个开源项目,他的源代码可以从下面获取. WangXing 和 GuoJing. 从推荐的角度看搜索和社会网络. Aardvark 专家推荐式的问答系统.

局部敏感哈希开源项目和论文 Locality-Sensitive Hashing (LSH) · Jian Zhou

- -
Although no single definition of a similarity measure exists, usually such measures are in some sense the inverse of distance metrics.. JorenSix/TarsosLSHA Java library implementing Locality-sensitive Hashing (LSH), a practical nearest neighbour search algorithm for multidimensional vectors that operates in sublinear time..

这篇论文开源的车牌识别系统打败了目前最先进的商业软件

- - IT瘾-dev
(欢迎关注“我爱计算机视觉”公众号,一个有价值有深度的公众号~). 来自巴西阿雷格里港大学的学者发表于ECCV2018的论文《License Plate Detection and Recognition in Unconstrained Scenarios》,给出了一整套完整的车牌识别系统设计,着眼于解决在非限定场景有挑战的车牌识别应用,其性能优于目前主流的商业系统,代码已经开源,非常值得参考.

期末论文

- Xiaoxi - 科学松鼠会

经典论文 — REST

- ripwu - kernelchina
牛人Roy Thomas Fielding的博士论文,此处可以访问到英文版,中文版可以google一下. HTTP1.0,1.1版本以及URI规范的主要作者,Apache的co-founder. 在写这篇论文之前已经很牛了,笔者不明白的是这种档次牛人还要读博士,文凭有这么重要吗. 文中没有任何令人眼花的数学公式和统计图表,实际上是一篇描述URI,HTTP设计经验教训总结的文章.

Google开源LevelDB

- 酿泉 - Solidot
Google宣布在BSD许可证下开源其键值存储引擎LevelDB. LevelDB C++库可用于多种不同环境,如被浏览器用于存储最近访问的网页缓存,或者被操作系统使用去储存安装的软件包和依赖包清单,或被应用程序用于存储用户设置. Google称,即将发布的新版Chrome浏览器,就包含了基于LevelDB的IndexedDB HTML5 API实现.

再论开源

- - 谢益辉
几年前我写过一些关于开源的 想法,如今再来看开源,我觉得问题已经不在说教上,而是在趋势上. 倒退十年或更久,那时候程序员相对还比较稀缺,软件闭源开发出来之后别人模仿的成本高,而这些年计算机教育的普及让码农数量变得越来越多,更多人懂编程了,模仿的成本大幅下降. 写软件作为谋生的目的已经在弱化,更多的是为了自己的实际需求,或社区名声:你不开源.

SoftEther VPN开源

- - Solidot
日本筑波大学的全球分布式公共VPN中继服务器软件SoftEther VPN正式在GPLv2许可证下开源,源代码托管在Github、SourceForge和Google Code上. SoftEther VPN是VPN Gate的底层VPN引擎,在开源之后用户将可以编译出自己定制的二进制包. SoftEther VPN提供了一种分布式的免费公共VPN中继服务,服务器由志愿者托管,因此很少能提供长时间的VPN连接,但代理服务器的不断变化也增加了封杀难度.

Facebook 开源 Detectron

- - 最新更新 – Solidot
Facebook 在 Apache 2.0 许可证下 开源了它的目标识别平台 Detectron, 源代码托管在 GitHub 上. Detectron 用 Python 开发,基于 Caffe2 深度学习框架. Facebook 同时公开了超过 70 个预先训练的模型. Detectron 项目始于 2016 年,实现了一系列最新的目标识别算法如 Mask R-CNN,该软件平台在社交巨人的视觉感知系统的进步上扮演了重要角色.