微软学术搜索项目 10个版本的历程

这是我在微软亚洲研究院参与的项目之一, 从 2009 年秋天开始, 我们小组把它从一个研究原型发展为涵盖全学科的学术搜索门户。 它索引了 4千万论文, 2千万作者, 6 大实体类型, 8 种数据可视化功能, 具有开放的API 平台和手机客户端.
 

下面说说项目的发展:

2009/8:  内部发布 alpha 版本,  以验证想法为目的的 V1 结束, 数据量: 3 million
 
2009/9:  开始V2,  研究员和工程人员合作规划项目的目标, 远景,阶段,典型用户;决定代码管理,项目管理 (都用 MS TFS 管理).
决定 V2 着重于 Computer Science 领域
决定系统的特点在于展示六大实体及其关系 (作者,论文,机构,期刊,会议,关键字), 并把这些实体和关系投影到学科, 时间, 地点维度上来展现。
 
典型用户有哪些? 我们描绘出三种典型用户。
    Mary:  资深科学家 – 痛苦: 招人, 分析学科趋势及大量的学科数据,主持国际会议和合作,从学校/机构的层面比较各自的科研产出和动向。 
    John:   刚出道的科学家 – 痛苦: 指导学生工作, 收集最新科研资料,组织会议, 让别人了解自己的科研成绩
    小勇:   想走上学术道路的大学生, 研究生 – 痛苦: 找资料, 读论文, 申请出国, 投稿
 
项目计划的一个重要方面是核心价值是什么, 决定不做什么 -  我们决定不和其它学术搜索比拼“论文下载”这一功能, 就是说, 如果用户的唯一目的就是要下论文, 我们系统不是最好的。
决定采取 8 周为一个里程碑 (Milestone) 的开发周期, 采用 MS Agile 的思路。 [2 周计划;4周实现;2周测试并上线 ]
人员: 研究员 + 软件工程师 8-9 人; 全职PM 一名;  加上实习生数名, 几个外包团队的测试人员。
开始联系出版社商讨合作
在西格玛4层的水房开了 V2 kick off 会议。
 
市场上已经有各种学术搜索服务, 作为一个后来者, 我们怎么创新? 我们的红旗能打多久? 我们到底要做什么? 要怎样展现各个实体之间的什么关系?   我画了一个表:
 

Relation

author

paper

conf/journal

organization

keyword

author

co-author
citation
6-degree path

paper list

top authors

author/org rank

author research interest

paper

 

related paper
ref paper

top papers

top papers from this org

highlight keywords in a paper

conf/journal

 

 

CFP calendar

top org in a conf/journal

focus of conf/joural (tag cloud)

organization

 

 

 

org rank list

research area of an org

keyword

 

 

 

 

taxonomy, related keywords

 
 
2009/12:  V2M1 (第二版第一里程碑)发布
数据量达到 4.5 million
收集基本的 precision/recall 数据, 计算 F-Score, F-Score 那是相当的低啊…
改进用户信息的展现
完善 高级搜索 (advanced search) 功能
和一著名出版社见面讨论, 对方貌似很愿意合作,我们都没想到这是漫长等待的开始…
里程碑结束后开了 事后诸葛亮会议, 看出来大家对以用户需求为驱动, 快速发布的软件有各自不同的理解。 
2010/3:    V2M2 发布
数据量: 5.2 million
展现实体的详细数据/详细页面
改进数据可视化
进行一系列可用性的改进
和我司的搜索引擎部门商量合作
为了让大家对数据质量有更切身的认识, 每个人在春节期间审核并修改了几十个作者的信息。
 
2010/5: V2M3 发布
数据量: 5.7 million
重新进行整体页面设计 (蓝色基调), 并在这个里程碑推出。 这成为以后所有UI的基础。
推出了第一版的 call for paper calendar。
其它改进
随着系统的运行,  大家看到了系统的几个核心问题, 研究员开始攻坚。
不就是做一些网页功能么?  有什么难的?  一个新成员说某功能两天就可以搞定, 后来搞了两星期, 把一个模块活生生搞垮了, 后来,就没有后来了…
 
2010/7: V2M4 发布
数据量: 6 million
大幅改进数据抽取的质量 (pdf meta data extractor)
数据/逻辑/UI层面都实现了 Organization/机构 这一实体, 机构成为一级实体 (有自己的主页, 各种详细数据, 排名, 等)
改进了用户编辑功能
重写了后台的数据流水线 (data pipeline) 模块。
参加了在雷镇研究院 faculty summit 的展示,  反响不错, 但是大家觉得数据不够多。
通过这一阶段的实践, 分析我们的商业运作能力, 研究能力,架构, 人员能力, 其他竞争对手的比较, 我们明确应该在下面的各个层次上做不同的竞争:
    a) 数据层次:  和最全的对手差别缩小到20% 左右
    b) 算法层次:  和最好的相比不相上下
    c) 功能层次:  完全超越所有对手
 
 
2010/9: V2M5 发布
数据量: 7 million
可视化功能:  作者之间的关系图 (co-author path)
支持 facebook, twitter 的集成 (后来发现用的人不多… )
改进各项功能
向公司领导展示了项目的进展 (并搜索到了 领导当年写的论文)
 
 
2010/12: V2M6 发布
由于项目的复杂度增加, 项目周期改为 12 周
推出独特功能 –
    citation context, 别人是怎么评说一篇论文的
    学科发展趋势图
改进了作者名字消歧的算法,但是这个问题还是很难。
改进用户反馈功能
改进了整个数据处理流程, 达到两周一次的数据更新。
(尝试了 学术家族树 这一功能,但是效果不够好, 没有集成到公开的系统中)
数据量: 7.6 million 

应某部门的要求,我们把界面色调改得像它的孪生兄弟一样 (橘黄色)。有意思的是, 此部门后来一直在思考中, 并未采取行动 …

 
2011/3: V2M7 发布
增加了 Keyword (关键字)这是最后一个实体。
发布了 Academic Search API, 让学术界能通过API 使用我们的元数据, 开发他们自己的应用。
独特的可视化功能 – Author Citation Graph
Call for Paper 和其它一系列功能的改进
和一个出版社的协议生效并且数据上线了, 数据量: 15.7 million . 其余的出版社还是讨论中。
 
V2 订下的目标基本实现 (计算机领域的全文本数据还是在痛苦地等待中)。开始V3, 向全学科领域进军
由于项目的绝大部分模块都进行了大规模的工程性重构,重写。有些问题太难 (Smile), 研究员们逐步撤出了项目。
 
2011/6: V3M1 发布
新的领域扩展到 9 个
推出独特功能 -
    背靠背比较研究机构 – organization comparison
    关键字 - 支持关键字的变体
改进已有功能,在用户编辑模块提供 “修改历史”信息
为了充分展示各学科内容,  MAS独创的两级homepage 组织结构隆重登场.
工程师继续改进名字消歧的算法 - 即使难, 也要迎着困难上啊。
我让清华《现代软件工程》班的同学根据 API 写一个 iPad 上的程序, 一组同学做了一个, 但没有发布…
随着项目的成熟,  如何让项目可持续地发展成为一个问题,  我们和雷镇的另一部门商讨如何更好地进行商业运作。达成了初步协议。 
数据量: 27.1 million
 
大家对敏捷开发的流程也逐渐熟悉, 这是其中一个里程碑的工作项 (work item) 看板图。在每次史克朗茻  (SCRUM) 会议时, 大家就更新墙上自己负责的任务。
 
scrum_12_frame_small
 
2011/9: V3M2 发布
新的领域扩展到 17 个
推出独特功能 -
    独特的排名选项可以让用户用多种方式给作者排序。
    从美国 Harvey Mudd 学院来的实习生很快就完成了 学术地图 这一功能。
    Windows Phone 的客户端发布 (link)
很多小型出版社和我们达成了合作协议,最重要的出版社还在最后关头…
随着项目逐渐成熟, 知名度提高, 我们需要计划如何把 beta 产品转化为正式产品, 我们和一些其他部门商讨并达成初步共识。
项目的名声也大了, 黑客用他们独特的方式告诉我们网站有漏洞。
数据量: 35.3 million
 
2011/12: V3M3 发布
完成了全学科所有子领域的定义, 期刊/会议的学科归属, 产生 15 个一级学科
推出独特功能 -
    学术家族树 (经历上次失败后, 中科大的同学再次努力, 终于上线)
    可视化功能 - 论文引用图 - 这是和另一个研究小组合作的结果
    wp7 手机客户端增加对学术会议的支持 (正在走上线流程)
 
对所有代码进行了安全检查和修复
CS 领域的重要出版社终于和我们达成了合作协议!  我们等了两年的时间…
数据量: 35.3 million, 总数量不变,  但是全文本的数据比重大幅增加。
越来越多的学术界同行申请使用 学术搜索 API

    It’s been a very impressive year for Microsoft Academic Search.

    Not only did the index experience major growth during the past 12 months but the Academic Research team launched a new interface and added several new tools including several that allow users to visualize data…

当然竞争对手也没闲着…

 

 
2012/1-3  service pack 阶段
重点放在如何把项目移交给另一部门
形成了有规律的数据更新周期。
进行文档整理和规范化工作
姓名消歧工作又经过几个月的努力, 得到大幅改进, “Zheng Lei”这样的名字也得到不错的处理,  不会出现一个“Zhang Lei”写了几千篇论文的滑稽情况。
根据用户反馈和自身计划, 改进各个模块的质量
对CS, Engineering 领域的论文覆盖率大大提高。
数据量: 38.8 million
访问数据:  平均每月 1百万独立IP 访问, 其中 60% 来自美国; 超过60 个合作伙伴使用我们的API 进行各自的研究。
 
模块: 元数据抽取, 离线处理, 数据库, 论文集成,作者名字集成与消歧,数据索引, 网站, API, wp7 客户端, 测试工具,  内部编辑复审工具, log 工具。
代码量: 34万 (C++, C#, asp.net, javascript, silverlight, SQL)
代码量不包括空行, 注释, 只有一个字符的行。
——————————————————————————————————————————————————
 
 
 
微软学术搜索(Microsoft Academic Search)是微软研究院开发的免费学术搜索引擎。它为研究员、学生、图书馆馆员和其他用户提供了一个更加智能、新颖的搜索平台,方便用户查找学术论文、知名学者、国际会议、权威期刊等信息。同时,微软学术搜索作为一个研究试验平台,展现了研究院在对象级别垂直搜索、命名实体的提取和消歧、数据可视化等研究领域的最新研究成果。

 

作为一个研究原型,微软学术搜索覆盖的学术内容仍比较有限,我们衷心感谢您的反馈与贡献。您可以通过Twitter 关注我们,或者加入我们的论坛

 
主要功能 - 搜索

要实现基本的搜索功能,只需简单地输入关键词,然后单击搜索按钮。

微软学术搜索不仅仅涵盖计算机科学,而且已经逐步扩展到其他学科,您可以通过指定感兴趣的学科领域来缩小搜索范围,快速找到所需论文。

例子:输入关键词;点击"All Domains"按钮;从下拉表中选择一个复选框,可将您的搜索范围缩小到指定学科。

如果您有更为具体的搜索条件,您可以使用高级搜索,以提高搜索的准确性与有效性。点击“高级搜索”(Advanced Search)并输入以下选项的具体值:作者、会议、期刊和年份。

例子:查找1999年之后发表的与"data mining"相关的论文,输入关键词并设置年份。

用户参与编辑

微软学术搜索允许用户在线修正数据。如果您发现作者的资料、论文的资料有误,或是我们提供的信息已过时,您可以直接在网上进行修改。微软学术搜索目前支持修改的数据项包括:作者的基本信息,如姓名、所属机构、头像及个人主页;论文的基本信息;上传论文;确认论文归属等。您的修改经编辑验证后将更新在网页上。如果您有其它修改需求,请与我们联系。我们致力于提供最新、最准确的学术信息,期待您的参与。

获取最新的征稿信息

您可能希望了解某个学术会议的论文提交截止期限,或是您想要查询该学术会议的召开地点,那么, 征稿信息 (call for paper)对您而言是一个非常有用的工具。

征稿信息页面将自动显示最近半年的会议列表,您可以通过学科筛选(Domain Filter)来锁定目标会议。将鼠标放在时间线上,就能看到每个会议的时间安排。点击“地图视图”,可以方便地查找到会议地点。

您也可以在搜索框中输入会议名称(全称或缩写名)来查找感兴趣的会议。

展现多样的作者关系

合作关系图 (Co-author Graph)中每个节点代表一名作者,节点越大意味着作者所发表的著作越多,合作数量越多的合作者离作者的距离越近。

合作关系路径图(Co-author Path)展示了两个学者之间的合作路径,路径中的每条边表示两个端点代表的作者间存在合作关系。

 

学术引用图(Citation Graph)呈现作者之间的引用关系。图中每个节点代表一名作者,位于页面左上角的作者为被引用作者,引用该作者的文章越多,与该作者的距离越近。

 

学术家族树(Genealogy Graph)呈现作者之间的导师/学生关系。在主要作者上方是其导师, 下方是其学生。 当学生数量较多的时候, 学生按机构进行归类。

 

您可以点击页面右上方的 Embed 选项 将上述图形化展示页面嵌入个人主页。

 

将论文嵌入到自己的个人主页

微软学术搜索允许您将论文列表嵌入到其它网页,比如您的个人主页。

具体步骤:在作者详细页面中点击Embed,然后点击“生成JavaScript 代码”(Generate JavaScript code),复制显示在右侧窗口中的全部JavaScript 代码并黏贴到您的个人主页。

查看论文的引用信息

引文内容(Citation Context)列出了引用论文对原始论文的转述内容,帮助用户方便、快速地理解其他作者对原始论文的评价。

您可以在论文详细页面中找到引文内容,一条典型的结果会包括从引用论文中实际摘录的一段内容、引用论文的第一作者以及引用论文的题目。系统默认显示5条结果,如果您想查看更多,请点击引文内容(Citation Context)。

直观显示各学科领域的出版物动态

领域动态(Domain Trend)以叠加分布图的方式直观展示了各学科领域的研究动态。

您可以通过页面左侧的面板来过滤或自定义显示的学科领域,调整时间轴可让您更改感兴趣的时间段。您可以点击某个感兴趣的学科领域以查看该领域的作者列表。

获取研究机构的更多信息

微软学术搜索推出两个新功能以帮助您更多了解研究机构的相关信息。

A. 学术地图

学术地图Academic Map)使用可视化地图展示全世界研究机构的地理分布,地图中的每个点代表一个研究机构,点击某一个机构会显示该机构学者的详细信息。您也可以通过指定学科领域来对研究机构进行筛选。

B. 机构比较

您可以点击机构详细页面中的比较按钮,将该机构与其它机构进行比较。在机构比较页面中,您可以看到两个机构所发表论文量、引用量、研究侧重以及所属学者的对比情况。

论文引用图

展现了论文之间的引用关系, 您可以通过这个直观的引用图梳理知识脉络, 找到相关论文, 拓宽对某专业的理解。

 

搜索结果页面

微软学术搜索基于您所输入的搜索词给出相应的搜索结果。例如:搜索“data mining”返回的页面如下:

A:年份筛选:通过限定年份条件进一步过滤搜索结果。

B:结果:一条典型的搜索结果包含以下信息:

  • 论文题目:链接到论文详细信息页面,显示该论文的作者信息、摘要、参考书目、引用书目等。
  • 查看论文:链接到论文浏览/下载页面。
  • 引用:该论文的引用数量。
  • 作者姓名:链接到作者详细信息页面,该页面显示作者的个人主页、所属机构、论文列表等。
  • 论文摘要。
  • 出版时间。
  • 论文来源:链接到会议、期刊的详细信息网页,显示其论文数量、引用数量、论文列表等。

C:侧栏:通过选择不同的学科领域,您可以进一步过滤您的搜索结果。

学术实体 (作者, 机构等) 的详细页面

您只需点击微软学术搜索任一页面上的论文题目、作者姓名、机构名称、会议名称、期刊题目或关键词,即可访问相应对象的详细信息页面。例子:这是关于作者Wei-Ying Ma的详细信息页面:

系统将学者分为两种类型。当头像显示为一个问号时,表明这个学者的资料还未被任何用户编辑过,欢迎您对资料进行补充或更正;另一种类型的学者资料则已被人工编辑,您对这些学者资料做进一步更新时请更为谨慎。

H-指数

H-指数是Jorge E. Hirsch提出的一种评价科研人员学术成就的方法。Hirsch定义一个科研人员的h指数为在一定期间内他发表的论文至少有h篇的被引频次不低于h次。

H-指数也可以用来衡量一个机构的学术成就。我们基于以下方法计算该指数:一个机构的论文数量包括(a)由当前属于该机构的学者所发表的论文;(b)该论文发表时相关作者属于该机构。一个机构的h指数指一定时期内该机构的论文至少有h篇的被引频次不低于h次。

G-指数

G-指数是基于科研人员被引次数的分布来评价科研人员学术成就的另一种方法。该指数由Leo Egghe提出,一个科研人员的g-指数指他的g篇被引次数最多的论文平均有g次被引,g是可能的最大数目。

学科信息排序表

微软学术搜索提供各学科领域各种信息的排序表,通过列表,您可以发现有影响力的论文、作者、会议、期刊和机构等。

 
学术搜索API

微软学术搜索通过开放API,允许用户访问我们的海量数据,帮助开发人员构建各种创新性应用程序。无论您是要进行学术机构排序,还是要展示论文引用关系,API都可以让您轻松启动这些项目。

了解更多关于API的信息,请参考API 介绍页

posted @ 2012-02-20 09:18  SoftwareTeacher  阅读(12420)  评论(24编辑  收藏  举报