中科院计算所开源深度文本匹配开源工具 MatchZoo

标签: AI开发 | 发表时间:2017-12-05 16:43 | 作者:
出处:https://www.leiphone.com

via GitHub

雷锋网 AI 科技评论消息,中国科学院计算技术研究所网络数据科学与技术重点实验室近日发布了深度文本匹配开源项目 MatchZoo。MatchZoo 是一个 Python 环境下基于 TensorFlow 开发的开源文本匹配工具,可以应用于文本检索、自动问答、复述问题、对话系统等多种应用任务场景。

GitHub: https://github.com/faneshion/MatchZoo

在 arxiv 上,MatchZoo: A Toolkit for Deep Text Matching 介绍了开源项目的主要结构:

据雷锋网了解,这一开源工具能够让大家更加直观地了解深度文本匹配模型的设计、更加便利地比较不同模型的性能差异、更加快捷地开发新型的深度匹配模型。

MatchZoo主要特点

MatchZoo 基于 Keras 开发,支持 TensorFlow、CNTK 及 Theano,并能在 CPU 与 GPU 上无缝运行。MatchZoo 包括数据预处理,模型构建,训练与评测三大模块:

数据预处理模块(data preparation)

该模块能将不同类型文本匹配任务的数据处理成统一的格式,具体包含如下的几个文件:

  • word dictionary:每个单词的映射符,通过预设的规则进行过滤常用词,筛选少见词、噪声词。

  • corpus file:问题及回答内容文件,每行以(id, length, word_id)格式书写,分别表示问题或者回答的 id,文本长度,以及词 id;

  • relation file:包括训练、验证、测试文件,每行以(rel,query_id, doc_id)格式书写,分别表示问题与回答的相关度(数据中1为相关,0为不相关),问题的 id,以及答案的 id;

同时,该模块针对不同的任务需求提供了不同的数据生成器,包括有基于单文档的数据生成器、基于文档对的数据生成器、以及基于文档列表的数据生成器。不同的数据生成器可适用于不同的文本匹配任务,如文本问答、文本对话、以及文本排序等。

模型构建模块(model construction)

该模块基于 Keras 以帮助我们快速开发。Keras 中包含了深度学习模型中广泛使用的普通层,如卷积层、池化层、全连接层等,除此之外,在 matchzoo/layers/中,研究人员还针对文本匹配定制了特定的层,如动态池化层、张量匹配层等。这些操作能够快速高效地实现复杂的深度文本匹配的模型,在 matchzoo/models/中,研究人员实现了目前主流的深度文本匹配模型(如 DRMM, MatchPyramid, DUET, MVLSTM, aNMM, ARC-I, ARC-II, DSSM, CDSSM 等)。

训练与评测模块(training and evaluation)

该模块提供了针对回归、分类、排序等问题的目标函数和评价指标函数。例如,在文本排序中常用的基于单文档的目标、基于文档对的目标、以及基于文档序列的目标。用户可以根据任务的需要选择合适的目标函数。在模型评估时,MatchZoo 也提供了多个广为使用的评价指标函数,如 MAP、NDCG、Precision,Recall 等。同时,在文本排序任务中,MatchZoo 还能生成兼容 TREC 的数据格式,可以方便地使用 trec_eval来进行模型评估。

运行

git clone https://github.com/faneshion/MatchZoo.git
cd MatchZoo
python setup.py install

python main.py --phase train --model_file ./models/arci_ranking.config
python main.py --phase predict --model_file ./models/arci_ranking.config

基准测试

在 Github 上,作者们以 WikiQA 数据为例来介绍 MatchZoo 的使用。

以 DRMM 为例,在 MatchZoo/matchzoo 中运行:

python main.py --phase train --model_file models/wikiqa_config/drmm_wikiqa.config

在测试时可运行:

python main.py --phase predict --model_file models/wikiqa_config/drmm_wikiqa.config

运行十个模型的结果如下:

训练 loss 曲线图如下:

测试 MAP 性能曲线图如下:

论文地址: https://arxiv.org/pdf/1707.07270.pdf,雷锋网整理

相关 [中科院 计算所 开源] 推荐:

中科院计算所开源深度文本匹配开源工具 MatchZoo

- - 雷锋网
雷锋网 AI 科技评论消息,中国科学院计算技术研究所网络数据科学与技术重点实验室近日发布了深度文本匹配开源项目 MatchZoo. MatchZoo 是一个 Python 环境下基于 TensorFlow 开发的开源文本匹配工具,可以应用于文本检索、自动问答、复述问题、对话系统等多种应用任务场景. 在 arxiv 上,MatchZoo: A Toolkit for Deep Text Matching 介绍了开源项目的主要结构:.

360安全浏览器和中科院谁在说谎

- - 互联网的那点事
这篇文章一发布立马引起公众哗然,就在当天中科院信息工程所发布声明辟谣,称:“我所从未授权任何单位、任何个人、以任何形式报道和对外发布《个人隐私泄露风险的技术研究报告》”、“我所于2012年11月22日召开的‘隐私保护’专家研讨会为纯学术交流性质,尚没有可供发表的研究结果. ” 对此,有人说这是故意以中科院名义抹黑360,也有人说360安全浏览器暗藏后门.

中科院《中国人营养指南》是个错误严重的指南

- - 独角兽资讯
作者:哈佛宁博士 .(欢迎新闻机构转载澄清谬误).      作为中国最高学术机构,中国科学院近日发布了《中国人营养指南》. 读到这个指南,让我不得不惊诧于这个学术机构的科学性,至少这个错误百出的营养指南,实在不靠谱. 禁不住要问,这是个以健康为目的营养指南,还是把食品当猪饲料的购物指南. 第一、 中国的肥胖太少了么:养猪要催长,人饮食还是要适量.

中科院报告称360浏览器Gmail等存泄露隐私风险

- - TechWeb 今日焦点 RSS阅读
  昨日,南都记者独家获悉,中国科学院信息工程研究所主办了一场主题为“隐私保护”的闭门学术研讨会,同时发布了一份由中科院保密技术攻防重点实验室研究撰写的《个人隐私泄露风险的技术研究报告》(下称报告). 内容显示,目前网民日常使用的许多网络服务都存在泄露隐私的风险;国内外许多知名互联网公司榜上有名,包括360浏览器、微软的Hotmail、谷歌的Gmail等.

中科院称研制出精度为99.8%的人脸识别技术

- - Solidot
中科院重庆绿色智能技术研究院称研制出了识别率99.8%的人脸识别系统. 该研究院智能多媒体技术研究中心主任周曦表示,目前正在开发的人脸识别移动支付系统,预计将在2015年下半年推出使用. 他介绍说,“在人脸识别方面,我们自主研发了可移动式人脸数据采集阵列,能采集91个角度、多种复杂光照、不同遮挡及室内室外多种环境下的人脸图像.

中科院出了份70多页的报告 居然是为了研究游戏?

- - cnBeta.COM 全文
一谈到科学家,大伙们会想到什么. 是高深的核物理,是神秘的量子通讯,还是遥远的深空宇宙,差不多是直接过了一遍《 生活大爆炸 》的片头了. 然而,最近中科院有个团队却打破了我对科学家的固有“ 正经 ”印象. 因为他们的研究对象,竟然不再是那些高深的课题. 反而是看似有些“ 不大正经 ”的 —— 游戏.

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,该软件平台在社交巨人的视觉感知系统的进步上扮演了重要角色.