font-template-cs5color

解读FB可自我学习的AI产品Deeptext,它能读懂你的聊天内容

海中天人工智能2016/06/03

智东西(公众号:zhidxcom) 文 | 海中天 先是微软,然后是Facebook,再然后是谷歌,互联网科技 […]

智东西(公众号:zhidxcom)
文 | 海中天

先是微软,然后是Facebook,再然后是谷歌,互联网科技巨头都在追求同一个未来:聊天机器人。这些企业向世人承诺:未来,你可以与互联网服务聊天,如同与朋友家人聊天一样。机器人可以迅速回答问题,可以对提问做出回应,甚至可以预测你的需求。

然而科技企业还面临一个大挑战:开发出真正可以聊天的机器人。在某种程度上,机器的确可以模仿对话,但是要想真正像人一样交流还很遥远。上个月,谷歌开放了自然语言理解工具,最近Facebook推出了DeepText,它也是一个自然语言引擎。Facebook还没有开放技术,DeepText现在只用在Facebook自己的服务中。在开发系统时,Facebook的目标是更少地依赖人力,更多地依赖数据——海量的在线数据。

谷歌和Facebook都利用深度神经网络来推动自然语言技术的发展。在许多其它在线服务中,深度神经网络已经证明了自己的能力,比如识别图片,确定智能手机语音命令,企业希望通过分析海量数据,由软件和硬件组成的深度神经网络能够学习离散的任务,以自然的形式学习、理解语言并作出回应。

谷歌的新开源系统名叫SyntaxNet,它利用神经网络来理解给定语句的语法逻辑。Facebook研究者认为,他们已经做好准备将尖端技术应用于新领域。Facebook工程主管候赛因•马哈尼(Hussein Mehanna)表示:“DeepText帮助我们弥补标签式数据集的不足,它拥有大量的架构,可以按无监督的方式学习。”也就是说Facebook的系统更多依赖数据,而不是精准的语法。

深度学习创业公司Skymind的创始人克里斯•尼科尔森(Chris Nicholson)解释说:“Facebook的意思就是说他们没有必要将语言架构的一切教给神经网络。”这一点相当重要,尼科尔森补充说,Facebook可以打造更具弹性的系统:系统能够扩展,应用于许多不同的环境。按照学习英语的方法,Facebook系统能够学习法语和西班牙语——可以将语言拆解为数学。马哈尼说,DeepText已经可以处理20种不同的语言。

放在过去,研究人员用精细的代码规则来开发神经语言引擎,这种方法很困难,很耗费时间。苹果的Siri正是这样开发出来的。如果能构建自己学习的系统,谷歌和Facebook等企业就可以开发自动成长的系统,人为干涉越多,系统越聪明。这点我们目前还做不到。Facebook的方法还处在发展初期,真的管用吗?并不是所有人都能信服。

华盛顿大学计算机科学家诺亚•史密斯(Noah Smith)是神经语言理解方面的专家,他阅读了Faebook最近刊发的研究报告,在史密斯看来,要想通过无标签数据达到可以理解语言的程度,Facebook系统很难做到,离目标仍然遥远,他认为Facebook 的方法并没有什么特别激动人心的地方。尽管如此,史密斯及其它一些人都深信,研究的方向是正确的。

马哈尼说,今年夏天,Facebook将会刊发与DeepText有关的新研究报告。目前公司正在测试工具,让DeepText成为Facebook Messenger的内部驱动。马哈尼还解释说,当你与朋友、家人对话时,当你想打的时,系统会帮助用户识别。我们有理由相信Facebook在研究中占据优势,因为它拥有“数据”。

要从自然语言中学习,你必须拥有大量的自然语言——数字形式的自然语言。不久之前,要获得这种语言还很困难。Facebook拥有众多的数字式自然语言,因为每天社交网站上都会产生无数真实的对话。马哈尼称,每分钟,网民会在Facebook上创造40万篇新帖子,每天针对帖子的评论会达到8000万条。

开发DeepText的目的

在Facebook上,文本是一种主要的沟通方式。理解不同的文本形式,无疑可以改进Facebook的产品体验,如果用户想看到更多内容,Facebook就可以显示多一点内容,如果人们不喜欢这些内容就可以过滤。

正是因为这个目标,Facebook开发了DeepText,它是一个深度学习文本理解引擎,每秒引擎能够理解几千篇纯文本内容的帖子——精准度接近人类,它已经覆盖20多种语言。

DeepText整合了几种深度神经网络架构,包括卷积神经网络、递归神经网络,能够进行词汇级、字符级的学习。Facebook利用 FbLearner Flow 和Torch进行模型训练。通过FBLearner Predictor平台,按一下按钮就可以对模型进行训练,FBLearner Predictor平台拥有可扩展、可靠的模型分配基础架构。DeepText还能够提供自服务架构,通过该架构,Facebook可以轻易开发新的DeepText模型。

2

为什么是深度学习?

文本理解包括了许多的任务,比如对文本进行分类,确定帖子与什么有关(比如,与篮球有关),还要识别标题,比如运动员的名字,比赛的统计及其它有意义的信息。要像人类一样理解文本,我们需要对计算机进行训练,让它可以理解理解行话、感知词汇歧义。例如,如果有人说:“我喜欢黑莓。”他说的黑莓是水果还是设备?

要理解Facebook文本,需要解决一些棘手的问题,传统的NLP(神经语言程序)技术不管用。使用深度学习,Facebook能够在多种语言上更好地理解文本,能够更有效的利用标签式数据——比传统NLP技术更有效率。

更快地理解语言

Facebook社区是面向全球的,让DeepText尽可能多地理解各种语言是至关重要的。传统NLP技术需要广泛的预处理逻辑,它们是建立在复杂的工程、语言技术之上的。在每一种语言内部还存在各种变体,因为人们会使用俚语,在沟通同一个意思时会使用不同的拼写方式。利用深度学习,我们就可以减少对独立语言知识的依赖,因为系统不需要、或者只需要少量的预处理就可以从文本中学习。这样一来Facebook就可以快速学习多种语言,只需要在工程上稍作调整就可以了。

更深入地理解

按照传统的NLP方法,词汇需要转化为计算机算法可以理解的格式。比如,“兄弟”这个词汇可能会拥有一个整数ID,例如4598,当中的“兄”可能又会有另一个整数ID,例如986665。为了方便理解,在训练数据中,每一个词汇都要有具体的拼写形式。

在深度学习中,我们可以使用“词汇嵌入(word embeddings)”方法,它是一个数学概念,能够保留词汇之间的语义关系。如果我们的计算是正确的,嵌入“兄弟”和“兄”的词汇在空间上应该是很接近的。通过这种方式,我们可以深入理解词汇的语义关系。

在Facebook上测试DeepText

到目前为止,DeepText已经在Facebook的一些体验中进行测试。例如Messenger,当某人想去某地时,它的理解能力比过去有所提高。DeepText可以对用户的意图进行侦测,进行实体抽取,理解该用户所说的“我刚从的士下来”并不是要找一辆的士。

Facebook已经开始使用高精准度、多语言DeepText模型帮助人们寻找适合的工具。例如,如果某人发帖说:“我想出售旧自行车,定价200美元,有人感兴趣吗?”DeepText会侦测出售东西的贴子,提取一些有用的信息,比如出售的物品是什么,标价是多少,让卖家利用现有工具更快速地达成交易。

DeepText能够掌握帖子的意图、情绪与实体(比如人、地点、事件),理解混合内容信号,比如文本和图片,自动剔除一些不适合的内容,比如垃圾信息,从而更好地理解内容。

下一步

Facebook正在努力优化DeepText技术,DeepText团队与Facebook AI研发团队合作,携手提高技术的应用能力。

下面就是一些例子:

1、更好地理解人们的兴趣

在Facebook的个性化用户体验中,按照兴趣推荐内容是相当重要的一部分。为了达成目标,Facebook需要对任何给定主题的文本进行绘图,当中会涉及到大量的标签式数据。

尽管这些数据很难手动生成,Facebook找到了另一个办法:利用公共Facebook页面,通过半监督标签的形式生成大量数据集。我们可以假定发布在某页面的帖子是围绕某个主题展开的,这一假定是合理的,例如,Steelers(橄榄球队)页面的帖子所包涵的文本与球队有关。通过这些内容,Facebook训练了一个普通兴趣分类器,它的名叫字PageSpace,分类器的底层技术正是DeepText。在其它的Facebook体验中,该技术也可以进一步优化文本理解系统。

2、对文本和视觉内容进行联合理解

大多的人在发图片或者视频时会加下一些描述性文字。许多时候,理解意图既需要理解文本,还需要理解视觉内容。例如,一位朋友发了一张图片,告诉别人他们刚刚生了一个孩子,上面写了“25日”的字样。很显然,这位朋友是在分享家庭新闻。DeepText团队与Facebook视觉内容理解团队一起合作,开发新的深度学习架构,从文本和视觉内容中学习如何理解意图。

3、新的深度神经网络架构

我们不断对新的深度神经网络架构进行研究和调研。贝叶斯正则化神经网络看起来效果不错,分类时它的错误率比卷积神经网络、递归性神经网络低,在某些时候错误率低至20%。

zhidx201602