开发 | Google发布自然语言处理解析器SLING,免除模块化分析级联效应产生的缺陷

AI科技评论消息,日前,Google发布自然语言框架语义解析器SLING,它能以语义框架图(semantic frame graph)的形式,将自然语言文本直接解析为文本语义表示。这一系统避免了级联效应,另外还减少了不必要的计算开销。

详细消息AI科技评论编译整理如下:

直到最近,大多数实际的自然语言理解(NLU)系统都采用的是从词性标签和依存句法分析(dependency parsing)到计算输入文本的语义表示的分析。虽然这使得不同分析阶段易于模块化,但前期的错误会在后期和最终表示上产生层叠效应,中间阶段的输出也可能会与这一阶段本身并不相关。

例如,一个典型的NLP系统可能在早期执行依存句法分析的任务,在结束阶段时执行共指解析(coreference resolution)任务,早期依存句法分析阶段出现的任何错误都会产生级联效应,影响共指解析的输出。

今天我们发布SLING实验系统,它能以语义框架图(semantic frame graph)的形式,将自然语言文本直接解析为文本语义表示。

输出框架图能直接捕获用户感兴趣的语义标注(semantic annotation),因为没有运行任何中间阶段,所以避免了上述那种管道系统的缺陷,另外还减少了不必要的计算开销。

SLING使用具有特殊用途的循环神经网络模型,通过框架图上的增量编辑操作(incremental editing operation)来计算输入文本的输出表示。框架图足够灵活,可以捕获大家感兴趣的许多语义任务(下面有更多介绍)。SLING中的分析器(parser)只使用输入词来进行训练,不需要额外再生成标注(例如依存句法分析)。

SLING通过提供高效的、可扩展的框架存储实现(frame store implementation)和JIT编译器来生成高效的代码来执行循环神经网络,从而在推理(inference)时能快速进行句法分析。

尽管SLING还处于实验阶段,但得益于高效的框架存储和神经网络编译器,它在台式机CPU上能实现超过2500符号/秒的解析速度。

SLING使用C++,目前可以在GitHub上下载。这个系统在技术报告中有详细描述。

框架语义句法分析(Frame Semantic Parsing)

框架语义表示文本的含义(例如一句话),是一套正规表述。每个正规表述都被称为一个框架,可以被看作是知识或语义的一个单元,还包含与与它相关的概念或其他框架的相互作用。

SLING将框架组织成属性槽(slot)列表,其中每个属性槽都有对应的名称(角色)和值(可能是literal或是到另一个框架的链接)。

下面是一个例句:

“很多人都宣称自己预测到了黑色星期一。”(Many people now claim to have predicted Black Monday)

下图是SLING识别提到的实体(例如人物、地点或事件)、度量(例如日期或距离)和其他概念(例如动词),并将它们放置在正确的语义角色中的说明。

上面的例子相当简单,框架图的功能强大到可以模拟各种复杂的语义标注任务。对于初学者来说,这种框架可以非常方便地将语言的内外部信息类型(例如知识库)结合起来。这可以用于处理复杂的语言理解问题,例如引用、隐喻、转喻等。这些任务的框架图只在框架类型、角色和链接约束条件上有所不同。

SLING

SLING通过优化语义框架来训练循环神经网络。网络隐藏层中学到的内部表示取代了在前面那种管道系统中的手工特性组合和中间表示。

解码器使用伴随反复出现的特征一起的表示,来计算用于框架图更新的一系列过渡,以获得输入语句的预期框架语义表示。在SLING中用TensorFlow和DRAGNN来训练模型。

下面的动图展示了使用过滤操作将框架和角色逐渐添加到框架图中的构建过程。

正如一开始讨论的那个简单例句,SLING使用ARG1角色将动词和事件框架连接起来,表示事件框架是被预测的概念。

这个过渡系统的一个关键层面是,有一个很小的固定大小的框架缓冲区,它代表了最近被唤起或修改的框架,用橙色方框标记。这个缓冲区会捕捉到我们倾向于记住的最近被唤起、提及或强化的知识的直觉。如果一个框架不再使用,那么当新的框架出现时,它最终会从这个缓冲区中被清除掉。我们发现这种简单的机制在捕捉大量框架间链接的片段时非常有效。

下一步

上面所描述的实验仅仅是对诸如知识提取、解析复杂引用和对话理解等语义句法分析研究任务的启动研究。

在Github上发布的SLING中有上述任务的预训练模型,还有一些示例和方法,大家可以在提供的综合数据或自己的数据上来训练解析器。希望SLING能对大家有所帮助有用,我们期待着在其他语义句法分析任务上应用和扩展SLING。

Github地址:https://github.com/google/sling

Via:Google Research Blog

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-11-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CreateAMind

TensorFlow-dev-summit:那些TensorFlow上好玩的和黑科技

本文属于介绍性文章,其中会介绍许多TensorFlow的新feature和summit上介绍的一些有意思的案例,文章比较长,可能会花费30分钟到一个小时

922
来自专栏Duncan's Blog

Recommendation方向学习

目前推荐上研究的方向有这样几个方向: 1.Temporal Context-Aware Recommendation 2.Spatial Recommendat...

583
来自专栏新智元

专访田渊栋 | Torch升级版PyTorch开源,Python为先,强GPU加速

【新智元导读】 PyTorch今天发布,这是一个支持强大的 GPU 加速的张量计算(类似numpy),构建基于 tape 的 autograd 系统的深度神经...

3558
来自专栏PPV课数据科学社区

工具 | Facebook 开源产业级深度学习框架 Caffe2,带来跨平台机器学习工具

来源:caffe2.ai 作者:caffe2 team 译者:文强 【导读】近日,Facebook 宣布开源 production-ready 的深度学习框架 ...

3225
来自专栏开发 & 算法杂谈

动态数据竞争检测方法实验分析(一)

之前的文章大致介绍了一下我们的动态数据竞争检测平台如何构建,这篇文章主要是在动态数据竞争检测平台上实现了之前介绍的数据竞争检测方法,我们扩展了其中的一些方法使得...

1772
来自专栏pangguoming

JAVA智能设备基于OpenGL的3D开发技术 之AABB碰撞检测算法论述

摘要:无论是PC机的3D还是智能设备应用上,碰撞检测始终是程序开发的难点,甚至可以用碰撞检测作为衡量3D引擎是否完善的标准。现有许多3D碰撞检测算法,其中AAB...

37210
来自专栏织云平台团队的专栏

AI运维的实践探索(一):如何实现多维智能监控?

监控数据多维化后,带来新的应用场景。SNG的哈勃多维监控平台在完成大数据架构改造后,尝试引入AI能力,多维根因分析是其中一试点,用于摸索AI的应用经验。本分分享...

6553
来自专栏机器之心

业界 | 英特尔开源nGraph编译器:从多框架到多设备轻松实现模型部署

选自ai.intel 作者:Scott Cyphers 机器之心编译 参与:刘晓坤、李亚洲 近日,英特尔的人工智能产品团队宣布开源 nGraph,这是一个面向各...

3268
来自专栏AI研习社

只需连接电脑摄像头,就能用深度学习进行实时对象检测

实时对象检测是一个非常有趣的话题。 我们应如何可靠地检测视频输入中的人和其他现实生活中的物体? 最近我设法构建了一个非常简单的应用程序,只需连接到用户的电脑网络...

702
来自专栏AI科技大本营的专栏

TensorFlow AI 新品更易用!联手NVIDIA,支持Swift和JavaScript

整理 | 费棋 天体物理学家使用 TensorFlow 分析开普勒任务中的大量数据,以发现新的行星; 医学研究人员利用 TensorFlow 机器学习技术来评估...

39211

扫描关注云+社区