基于主动学习算法减少人工标注量,提升文本标注效率的方案探究

基于主动学习算法减少人工标注量,提升文本标注效率的方案探究

阅读 451
收藏 23
2018-06-26
原文链接:yq.aliyun.com
OPPO技术开放日第三期,未来的探索 · AI&AR的实践应用juejin.im

项目地址: https://github.com/crownpku/Chinese-Annotator

bba3160ac79b458af12fec0615c36eba306c69ed

自然语言处理的大部分任务是监督学习问题。序列标注问题如中文分词、命名实体识别,分类问题如关系识别、情感分析、意图分析等,均需要标注数据进行模型训练。在深度学习大行其道的今天,基于深度学习的 NLP 模型更是数据饥渴。 

最前沿的 NLP 技术往往首先针对英文语料。英文 NLP 的生态很好,针对不同有意思的问题都有不少大规模语料公开供大家研究,如斯坦福的 SQuAD 阅读理解语料。中文方面开源语料就少得多,各种英文 NLP 上的犀利模型和前沿技术都因为中文语料的匮乏很难迁移过来。

另一方面,对于一些垂直领域,如医疗、金融、法律、公安等等,专有名词和特有需求甚多,很难将比较 general 的比如在 wikipedia dump 上面训练的模型直接拿过来用。 

传统人工标注数据的过程往往是繁琐和低效率的。刚标了一个“联想”是公司名,又来一个“联想集团”,再标一次又来一个“联想集团有限公司”,如此的例子令标注过程含有大量的重复劳动。另一方面也没有一个易上手的标注 UI,标注工作者往往需要直接按预先定好的格式直接在写字板之类的软件中修改原始数据,格式错误率也较高。 

能不能构建一个中文文本的标注工具,需要看以下两个特点: 

  1. 标注过程背后含有智能算法,将人工重复劳动降到最低; 
  2. 标注界面显而易见地友好,让标注操作尽可能简便和符合直觉。 

答案是可以的。事实上很多标注工具已经做到了这一点,最先进的如 Explosion.ai 的 Prodigy;然而开发了著名的 NLP 开源包 Spacy 的 explosion.ai 选择了将 Prodigy 闭源,而 Spacy 支持中文也仍然遥遥无期。我们希望构建一个开源的中文文本标注工具,而本文很多的技术灵感正是来自 Prodigy 文档[1]。 

主动学习的智能标注算法

流程: 

  1. 用户标一个label;
  2. 主动学习的后台算法分为 online 和 offline 部分。online 部分即时更新模型,可使用诸如 SVM、bag of words 等尽可能快的传统方法;offline 部分当标注数据积累到一定数量时更新模型,可使用准确度较高的深度学习模型; 
  3. 模型更新后,对尽可能多的 example 做预测,将确信度排序,取确信度最低的一个 example 作为待标注例子。重复 1 的过程。 

可以想象如果模型训练得好的话,这个过程将直接忽略掉确信度最大的那些例子,而把所有重点放在分类边界上的那些确信度小的例子。这样可以尽算法所能减少用户端的人工工作量。 

online 与 offline 模型互相协作,与用户手动标注的过程一起不断迭代;在最终标注任务完成之后,offline 模型可以重新在所有标注数据上重新训练,以达到最好的模型效果。 

显而易见的友好标注前端

用户标注的界面应该尽可能符合直觉,让用户完全聚焦在当前的标注任务上。 Prodigy 给了一个非常好的 demo[2],每一次的标注只需要用户解决一个 case 的问题。以文本分类为例,对于算法给出的分类结果,只需要点击“正确”提供正样本,“错误”提供负样本,“略过”将不相关的信息滤除,“Redo”让用户撤回操作,四个功能键以最简模式让用户进行标注操作。 

真正应用中,应该还要加入一个用户自己加入标注的交互方式,比如用户可以高亮一个词然后选择是“公司”,或者链接两个实体选择他们的关系等等。

03c2f47f9e60106a95cbe105788d98f6b00b4d37

以上是个人觉得的一个智能中文文本标注工具的最大亮点。算法本身还有很多细节需要思考,比如 online 机器学习算法与 offline 深度学习算法的协作、中文 NLP 的特征提取与模型构建、正则规则的引入、word embedding 的训练和使用等等。

系统本身还要考虑后台存储(SQLite?)和数据导入导出,前端框架选型和开发,前后端交互(django? flask? RestAPI?)等等的问题。下面是 Prodigy 的简单架构图。

2480d637736d84cc382634e17fc67504dae86af0

我们希望专注于中文文本标注的功能。前期我们想实现三种中文 NLP 任务的标注工具:中文命名实体识别,中文关系识别,中文文本分类。未来如果有更多如中文图片问答、中文图片描述之类的任务,我们可以再研究加入图片标注这一块。

希望这个工具的开发会是以中文社区的开源协作方式,为整个中文 NLP 的开源生态做出一点贡献。

FAQ

1. 待标注数据集如何分割

应该分为按句子、按段落、按文章三种,写入配置文件由用户选择。 原因是命名实体识别与关系抽取可能按句子或者段落为单位给用户标注比较合适;同时可能用户会有全文章分类的需求,需要给出全文。 

2. 为什么要使用 online?

用户标注数据 + offline 标注数据,为什么还要使用 online model 更新数据呢?原因是 offline 的模型往往在全量数据上重新学习,也很可能需要使用深度学习模型,训练的速度会很慢。而 active learning 的人机迭代过程要求模型给出几乎实时的 stream 级别的训练和推断速度,这时候就需要 online model 来先行更新数据。 

3. 使用什么机制触发 offline model? 

这也可以是写入配置文件的参数。一种是用户标够了 100 个或提前设置好的足够多的新的数据,就可以启用 offline model 进行训练;另一种是给用户一个按钮,用户可以点击启动后台的 offline 模型训练并给出进度条。 

4. 系统使用什么格式的配置文件? 

推荐 json 格式的配置文件。请参考一个例子在这里[3]。

5. AIgo Factory 是什么?和 User Instance 里面的部分是不是有点重合?

Algo factory 是算法的代码模块,你可以想象一堆 tensorflow 或者 sklearn 的代码;而 user instance 是 config 文件与模型参数,是一堆用户生成的 json 文件和模型文件。algo factory 是可以不同 user instance 传入参数复用的,而每一个 user instance 代表了一个用户任务的实例。

这样设计的目的,是尽可能使系统可复用部分模块化,而抽出用户具体任务的配置与数据单独存储管理。

附录:几个开源文本标注工具

  • IEPY 

0ab1ada57844bf977696051ab84ee55815f6678b

整个工程比较完整,有用户管理系统。前端略重,对用户不是非常友好。

代码:https://github.com/machinalis/iepy 

说明:http://iepy.readthedocs.io/en/latest/index.

html

  • DeepDive (Mindtagger)

1bcf2cfdc9ddb5bd52e25d20456397c7e93f0aab

Screenshot of Mindtagger precision task in progress


前端比较简单,用户界面友好。 

介绍:http://deepdive.stanford.edu/labeling 

前端代码:https://github.com/HazyResearch/mind

bender 

将 DeepDive 的 corenlp 部分转为支持中文的代码尝试:

https://github.com/SongRb/DeepDiveChineseApps 

https://github.com/qiangsiwei/DeepDive_Chinese 

https://github.com/mcavdar/deepdive/commit/6882178cbd38a5bbbf4eee8b76b1e215537425b2

  • BRAT

d933fbafad95a66684fc189ae19df168c9f528ba

介绍:http://brat.nlplab.org/index.html 

在线试用:http://weaver.nlplab.org/~brat/demo/

latest/#/ 

代码:https://github.com/nlplab/brat

  • SUTDAnnotator

f3fdac3cad49edadfeddbb148acb790bf982a6d4

用的不是网页前端而是 pythonGUI,但比较轻量。 

代码:https://github.com/jiesutd/SUTDAnnotator 

Paper:https://github.com/jiesutd/SUTDAnnotator

/blob/master/lrec2018.pdf

  • Snorkel

88161283d4ee8d84f2f3f8e3a8c41126e7d4b9c0

Page: https://hazyresearch.github.io/snorkel/ 

Github: https://github.com/HazyResearch/snorkel 

Demo Paper: https://hazyresearch.github.io/snorkel/

pdfs/snorkel_demo.pdf

  • Slate

1177fa41fab0a6997d1a3373e292541a6deb0959

Code: https://bitbucket.org/dainkaplan/slate/ 

Paper: http://www.jlcl.org/2011_Heft2/11.pdf

  • Prodigy

8cf21844294297ae3ee7726dadd4bf5e6ceab85d

和著名的 spacy 是一家做的。

Website: https://prodi.gy/docs/ 

Blog: https://explosion.ai/blog/prodigy-annotation-tool-active-learning


原文发布时间为:2017-11-26

本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU ”微信公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

具有生物启发训练方法的物理深度学习:物理硬件的无梯度方法

编辑 | 绿萝对人工智能不断增长的需求推动了对基于物理设备的非常规计算的研究。虽然此类计算设备模仿了大脑启发的模拟信息处理,但学习过程仍然依赖于为数字处理优化的方法,例如反向传播,这不适合物理实现。在这里,来自日本 NTT …

BP算法是从天上掉下来的吗?

第二个标题:一般而特殊的前馈神经网络前馈神经网络在文章《逻辑回归到神经网络》(以下简写《LR到NN》)中,小夕为大家描述了一个从逻辑回归延伸到神经网络的过程。在《一般化机器学习与神经网络》中,小夕阐述了神经网络…

深度学习如何应用在广告、推荐及搜索业务?阿里妈妈实践案例解读

</span></ul><div class"markdown-body"><div id"meta_content" class"rich_media_meta_list"> </div>阿里妹导读&#xff1a;靖世&#xff0c;阿里妈妈精准展示技术研究员。2011 年&#xff0c;刚进阿里的他提出…

AI for Science的上半场:人工智能如何重新定义科学研究新范式?

AI发展七十余年&#xff0c;每一技术性突破都将给人类未来开辟新一种可能性。而它与科学研究的深度融合&#xff0c;则会裂变出无数或无穷种可能性。来源 :36氪万众瞩目下&#xff0c;今年10月&#xff0c;有着诺贝尔奖“嫡传”之称的诺贝尔化学奖终于揭晓&#xff0c;授予了对…

从前,小夕种了一棵树

从前&#xff0c;小夕种了一棵树&#xff0c;种在了小夕的小屋后面~为什么要种这棵树呢&#xff1f;因为呀&#xff0c;它可以帮小夕总结历史经验&#xff0c;然后帮小夕对当前的局势做出决策~这样小夕就可以安心给大家写文章啦~这棵树是这样的。一开始&#xff0c;小夕买了一颗…

用于化学动力学模拟的原子神经网络表示

编辑 | 白菜叶机器学习技术已广泛应用于化学、物理、生物学和材料科学的许多领域。最富有成果的应用之一是从离散量子化学数据中学习势能或相关电子特性的复杂多维函数。特别是&#xff0c;大量努力致力于开发各种原子神经网络 (AtNN) 表示&#xff0c;这些表示是指将目标物理量…

自然语言生成任务,如文本摘要和图像标题的生成。seq2seq的模型原理

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/Irving_zhang/article/details/78889364 </div><link rel"stylesheet" href"https://csdnimg.cn/release/phoenix/template/css/ck_htmledit…

史上最简单的决策树模型讲解

从前 从前&#xff0c;小夕种了一棵树&#xff0c;种在了小夕的小屋后面~ 为什么要种这棵树呢&#xff1f;因为呀&#xff0c;它可以帮小夕总结历史经验&#xff0c;然后帮小夕对当前的局势做出决策~这样小夕就可以安心给大家写文章啦~ 这棵树是这样的。 一开始&#xff0c;小夕…

听觉器官是高阶元分类“革命性证据”

来源&#xff1a;中国科学报反刍类的内耳几何形态学分析及系统发育示图。Laura Dziomber/绘化石研究的第一步是通过形态特征鉴定身份&#xff0c;厘清物种的亲缘关系&#xff0c;但这种方法并不完美。那些长相相似的也许“八竿子打不着”&#xff0c;而毫无共同特征的却是“亲属…

机器学习从理论到工程的第二步-开发环境与工具篇

在《第一步-编程语言篇》中&#xff0c;小夕为大家较为详细的介绍了做机器学习&#xff08;及其相关应用方向&#xff09;的编程语言的选择问题&#xff0c;这一篇便是小夕为大家推荐的各个编程语言的开发环境/工具。习惯性扫盲开篇。鉴于可能有部分同学的软件开发经验稍有欠缺…

干了一年“元宇宙”,Meta亏了300亿美金

来源&#xff1a;青投创新编辑&#xff1a;Leon"Facebook更名成Mate&#xff1a;从社交媒体转型为“元宇宙”&#xff0c;但前景并不乐观。一年前&#xff0c;Meta在元宇宙上高歌猛进。该公司刚刚完成了从Facebook到Meta的品牌重塑。正如马克扎克伯格&#xff08;Mark Zuc…

机器学习从理论到工程的第二步-开发环境与工具篇(下)

好啦~继续昨天的《第二步——开发环境与工具篇&#xff08;上&#xff09;》~其实有点尴尬啦&#xff0c;本来想一篇讲完的&#xff0c;结果小夕太啰嗦了&#xff0c;还没有开始讲正文&#xff0c;就写了快2000字了。。。所以说&#xff0c;这一篇是上一篇的正文。。。matlab就…

阿里-2019算法岗笔试编程题-kmp匹配

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/qq_25737169/article/details/82503724 </div><link rel"stylesheet" href"https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_…

IBM量子处理器,将突破1000位

来源&#xff1a;半导体行业观察IBM的CONDOR是世界上第一台拥有超过1000个量子比特的通用量子计算机&#xff0c;它将于2023年首次亮相。预计这一年IBM还将推出Heron&#xff0c;这是该公司表示可能对其有所帮助的新型模块化量子处理器群中的第一个到2025年生产出超过4000个量子…

ChatGPT到底有多聪明?我测试了ChatGPT的数学能力

来源&#xff1a;AI前线译者&#xff1a;马可薇 人人都听说过最新&#xff0c;也是最复杂的聊天机器人 chatGPT。而众所周知&#xff0c;它在英文文学等“软话题”方面甚是熟练&#xff0c;所以我决定测试它在数学这类“硬话题”方面的表现。你可能不知道&#xff0c;但我是有…

从朴素贝叶斯到贝叶斯网

回顾在文章《朴素贝叶斯》中&#xff0c;小夕为大家介绍了朴素贝叶斯模型的基本知识&#xff0c;并且得出了朴素贝叶斯是利用联合概率P(x1,x2,x3...xn,y)来确定某个样本为某个类别的概率&#xff0c;进而利用最大后验概率&#xff08;MAP&#xff09;来决策类别。也就是说&…

2022年,谁在数学史上永远留下了姓名

来源&#xff1a;新智元这一年&#xff0c;数学领域有什么大事&#xff1f;Quanta Magazine做了一份全年总结。我们可以把数学家想象成考古学家——他们煞费苦心地拂去世界隐藏结构上的灰尘。起来很吸引人&#xff1f;“你的起点并不重要&#xff0c;但要眼光长远&#xff0c;了…

神经网络激活函数=生物转换器?

啊~昨晚躺了一个小时竟然没有睡着&#xff0c;美容觉泡汤了...于是竟然大半夜起来写了这篇文章在《逻辑回归到神经网络》中&#xff0c;小夕让神经网络冒了个泡。在《一般化机器学习与神经网络》中&#xff0c;将神经网络这一火热的模型强制按回机器学习一般框架里。在《BP算法…

从Encoder到Decoder实现Seq2Seq模型

首发于机器不学习关注专栏写文章从Encoder到Decoder实现Seq2Seq模型天雨粟模型师傅 / 果粉​关注他300 人赞同了该文章更新&#xff1a;感谢Gang He指出的代码错误。get_batches函数中第15行与第19行&#xff0c;代码已经重新修改&#xff0c;GitHub已更新。前言好久没有更新专…

市场增速超20%,国产操作系统“浴火重生” | 解读操作系统的 2022

作者 | 凌敏 本文是“2022 InfoQ 年度技术盘点与展望”系列文章之一&#xff0c;由 InfoQ 编辑部制作呈现&#xff0c;重点聚焦操作系统领域在 2022 年的重要进展、动态&#xff0c;希望能帮助你准确把握 2022 年操作系统领域的核心发展脉络&#xff0c;在行业内始终保持足够的…