第5章 AI与自然语言处理

感谢您的阅读!!!这是一本很不错的AI书籍!!!如果您需要这本书的英文版,请加我微信bigdata_work,注明:Zero To AI     如果您需要看这本书的中文版,请关注微信公众号 登峰大数据 。目前已翻译了前5章,后续都会发布到公众号上,欢迎阅读。

本章包括

  • 理解自然语言处理的主要挑战

  • 用情感分析来衡量文本中的观点

  • 使用自然查询搜索文本内容

  • 构建会话接口(聊天机器人)

  • 案例研究:ML辅助语言翻译

自20世纪50年代以来,让计算机理解语言一直是计算机科学家的白日梦。这可能是因为大多数人类的知识和文化都是用文字记录下来的,而语言的使用是使我们区别于动物的最强大的能力之一。理解语言和创造语言,这些技术的总称为自然语言处理(NLP)。

不幸的是,赋予机器理解和创造语言的能力是相当困难的:维持如此无缝的人机交互的技术还没有出现。这并没有阻止公司、机构和媒体过度销售端到端解决方案的潜力。聊天机器人就是这种现象的一个典型例子,它被大肆宣传为能够与客户进行信息交流的自主代理,能够在销售或售后服务等复杂事务中无缝地扩充或取代人工。结果令人失望:2017年,硅谷博客the Information发表了关于Facebook Messenger个人助理M的研究报告。该博客报道称,M未能处理70%的用户请求。你可以想象,违背诺言除了浪费金钱、时间和挫折之外,什么也不会有。

如果这种介绍看起来不那么鼓舞人心,那就看下这些好消息吧。首先,技术正在迅速发展,可能性的范围也在相应扩大。第二,您将学习如何发现和开发那些可以从更简单、更成熟的NLP工具中获益的隐藏项目。在围绕NLP的炒作泡沫中,这些机会往往被低估了,但对于你的AI努力来说可能是一个强大的成功故事。

本章有两个主要目标:

  • 给你判断一个想法在今天的技术(和你的资源)下是否可行的知识。

  • 教您如何规划自然语言的努力,以实现投资回报的最大化。这将使你成为一个拨开迷雾的人,并在你的组织中发现隐藏的机会。

我们将首先解释为什么语言对计算机来说真的很难,以及机器学习如何在过去几年里再次拯救了我们,让我们能够创建令人惊叹的产品和解决方案。

5.1 自然语言处理的魅力

让我们面对现实吧。我们在互联网上消费信息的方式,一段时间内已经陷入了非自然的妥协:我们仍然在点击按钮和选择下拉菜单,而在现实世界中我们只是使用简单的语言。自然语言处理是一种技术,它可以让我们消除这一障碍,让人们以体验现实世界的方式来使用数字世界。

让我们试着想象一下NLP将如何改变一个房产经纪人网站的游戏规则。我们将设身处地为它的一位用户着想:一位来自旧金山的富有的创业投资者,他想买一套房子。她想要一幢至少有四个房间的大别墅,靠近101号高速公路,必须能看到海景。

现在,当她访问该网站时,她面对的是我们都熟悉的经典门户网站界面:一个菜单、一些价格、位置、卧室的框,以及每个列表的一堆信息(图像、描述等)。

摆弄所有这些按钮、选择器和下拉菜单,感觉就像坐在一架飞机的驾驶舱里,你想要的只是这个问题的一个简单答案:

在旧金山,有哪些别墅靠近高速公路,能看到美丽的海景,而且至少有四间卧室?这个周末我想去参观一些最好的别墅。

每一个有血有肉的经纪人都能回答这个问题,但我们不可能为每个在互联网上找房子的人配备一个专门的人。但是如果我们可以使用人工智能呢?这就是机器语言理解的前景:对每个与计算机交互的人来说都是一种卓越的体验,在一定程度上增加了他们的满意度和效率。

您已经意识到,在使用语言方面,完全匹配人类的能力是当今技术所无法达到的。解决这一挑战的方法是设计降低复杂性的解决方案,以适应现有的技术。第一步是理解和度量复杂性。让我们开始吧。

5.2 分解NLP:度量复杂性

语言是人类区别于动物的最重要的能力之一。虽然家里的狗可以用声音来交流,但它的情绪是有限的(例如,痛苦、悲伤和愤怒)。另一方面,人类可以(几乎)用语言来交流任何事情:从表达我们的感情到我们生命中的爱,再到点一个双层芝士汉堡。

显然,从狗的简单能力到诗人能用语言表达的细微差别,这是一个复杂的范围。在技术领域,复杂性是我们的敌人:任务越复杂,我们失败和推出平庸产品的机会就越多,特别是在NLP这样的技术不成熟的情况下。我们如何在NLP任务领域中度量复杂性?根据我们的经验,有两个定性的关键指标:

  • 广度——执行任务所需的主题或语言域的多样性。我们的算法需要掌握多大的词汇量?

  • 深度——我们的算法的结果有多复杂?它需要理解或做多少事情?

表5.1 列出了NLP任务的示例,并指出了它们的宽度和深度。

表5.1 NLP任务及其广度和深度评价

任务 宽度 深度
理解一个亚马逊的产品评论是正面的还是负面的 高:评论可以是关于广泛的产品和属性。 低:只有两个可能的输出(积极或消极情绪)。
帮助旅客预订和管理他们的机票。 低:我们要处理的文本是关于主题的一个有限子集(航班、预订)。 高:必须了解大量的选项,从检查价格到更改机票、处理投诉、提供机场协助等等。
帮助经理计划他们的时间和预约(秘书机器人)。 高:秘书需要了解关于许多领域的查询----行程安排、预约、发票、差旅等等。 高:在每一个主题中,秘书机器人应该有一个坚实的理解和执行复杂的行动,比如在一个舒适的时间安排会议,同时安排交通。

请注意,因为宽度和深度都影响了任务的复杂性,所以我们可以说,任务的总体复杂性与它们的乘积成正比:

Complexity = Width × Depth
复杂度 = 宽度 × 深度

如果我们在座标轴上画出这两个度量的图形,我们就得到了一种有效的方法来可视化NLP任务的复杂性。大区域矩形的任务比面积较小的任务更复杂,如图5.1所示。

图5.1 房产网站可以通过聊天机器人完成的各种NLP任务的宽度和深度

 

让我们回到房产网站聊天机器人的例子。这个聊天机器人可以执行的一个简单操作是理解基本的用户查询,基本上取代了传统的搜索界面。这是一个查询的例子:

帮我查询下旧金山市中心那些价格不到200万美元、有四间以上卧室的房子。

在这种情况下,聊天机器人需要执行一个单独的操作--查询数据库--与单一领域相关:房产属性。我们可以从聊天机器人那里得到更多信息,扩展它的功能,从这个数据库中提取元信息或回答更复杂的查询,例如:

在普雷西迪奥(Presidio)社区,一套带海景、有四间卧室、距离 101号高速公路(Highway 101)不到10分钟车程的房子,平均价格是多少?

这不会增加宽度,因为语言域仍然局限于房子,但是深度要高得多,因为机器人必须能够处理的可能操作的数量已经增加了。最后一步是管理家庭旅游的预订。这将随着操作数量的增加而再次增加深度。现在,宽度也增加了,因为机器人需要理解与预订相关的新语言表达式。

请记住,两个非常不同的任务可能具有相似的复杂性。让我们转换一下话题,来看两个你可能已经熟悉的NLP的典型例子:

  • 推特上的情感分析——在这项任务中,该模型会阅读一篇短文,并判断它表达的是正面还是负面的情绪。换句话说,情感分析就是找出作者对文章主题的看法。例子:“我喜欢斯皮尔伯格的新电影”是正面的。“这部新手机的摄像头很糟糕”是负面的。

  • 客户支持票据(customer support tickets)的分类——对于这个任务,模型读取来自客户的抱怨,并将它们分配给几个潜在原因类别中的一个。例如:“密码错误”是一个身份验证问题,而“网站没有加载”是一个连接问题。

第一个任务具有高宽度,因为它可以处理许多主题(人们使用Twitter谈论一切),但深度较低,因为它只有两种可能的结果:正面或负面的评论标志。

另一方面,第二个任务具有较低的宽度,因为它需要处理所有与相同域(IT内容不起作用)某种程度上相关的票据,但是它具有较高的深度,因为它需要将票据放入几个桶中。在我们的宽度/深度图上,这两个任务看起来类似于图5.2。

图5.2 宽度/深度图上的两个任务:对客户支持票进行分类(高深度,低宽度),以及对tweets进行情感分析(高宽度,低深度)

 

我们如何将这些见解转化为可操作的信息?从广度和深度的角度看待NLP任务有助于评估其可行性。通常,您希望通过从最低宽度/深度组合开始设计NLP应用程序,来尽可能地降低这两个值。您将根据自己的需要在其基础上进行构建,这取决于可以实现的性能。在图5.3中,可以根据应用程序的深度和宽度看到其可行性的表示。

图5.3 基于宽度和深度的NLP应用。一个应用程序越接近右上角,它就越不可能在今天的技术条件下实现。

 

在本章的下一部分中,我们将使用这个心智模型作为我们的向导,为我们的房产网站添加NLP功能。

5.3 向您的组织添加NLP功能

让我们回到上一章讲到的房产经纪人网站。我们的基于DL的图片分类器极大地改善了用户体验,每月的访问量也在快速增长。客户访问我们的网站,可以快速找到他们感兴趣的细节,通过图像的每个房子的图片,询问更多关于他们最喜欢的家的信息。现在,对特定房子列表感兴趣的人可以通过两种方式来了解更多信息:

  1. 花很长时间阅读房主留下的描述和所有其他人的评论(让我们假设我们的房产平台上有关于房子的评论)。

  2. 呼叫客户服务,它将连接客户和处理该房屋的经纪人。

第一个选项不是很好的用户体验,而第二个选项对于您的业务来说是非常昂贵的。我们已经描绘了一个类人的计算机程序(通常被称为bot、chatbot或agent),它可以完全取代房屋经纪人的角色,但我们也知道,这样的NLP应用程序不太可能适用于今天的技术。我们可以将这个高级应用程序称为brokerbot:它具有高宽度和高深度。

让我们后退一步,看看我们的业务目标。业务目标是允许客户快速找到他们需要的关于每个房屋清单的信息。如果你从这个角度来看,brokerbot有点大材小用:在使用更简单的技术的同时,我们仍然可以逐步获得更好的用户体验和更快的搜索速度。

我们知道,用户会花很多时间浏览其他潜在购房者的评论。这些评论中包含的信息通常不包括在房屋描述中,比如照明情况、社区情况等的第一手信息。我们希望利用这些信息帮助其他用户做出最好的决定,但是很少有人愿意花时间阅读所有这些信息。

在接下来的章节中,我们将逐步为我们的网站提出更复杂的NLP特性,利用我们拥有的主要自然语言内容:用户评论。您会发现,即使是最基本的NLP功能对人们来说也是有用的,而不必设计超级复杂的类人特性,这些特性最终可能会让用户感到失望。如图5.4所示,在一个复杂且不成熟的领域,如自然语言处理,产品复杂性的增加会成倍地增加技术风险,而业务价值则会在一段时间后停滞不前。

图5.4 不同的特性随着复杂性的增加,带来的技术风险呈指数级增长,而业务价值迅速停滞不前。

 

向我们的网站添加NLP功能的第一步应该是我们能够构建的最简单的事情,同时仍然为人们提供价值。在我们的例子中,可以开发一个系统,将每个房子评论分为正面或负面,让新用户更容易理解所列出的房子实际上有多好。

基本上,我们希望从像表5.2中那样的无组织的评审布局,过渡到更易于理解和提供更多信息的布局,如表5.3中所示。

表5.2 正面和负面评论的列表混合在一起

评论
很好的位置!
这房子又旧又破。
从屋顶往下看,景色美极了。
我决不会和这么危险的邻居住在一起。

表5.3 一个有组织的正面和负面评论表

人们喜欢的 人们不喜欢的
很好的位置! 这房子又旧又破
从屋顶往下看,景色美极了。 我决不会和这么危险的邻居住在一起。

让我们看看情感分析在深度和广度方面的情况。请记住,应用程序的深度与模型功能的复杂程度有关。在本例中,我们只要求聊天机器人将评论分为两类(正面或负面),因此深度较低。宽度 度量模型必须“知道”的词汇量(它必须了解的单词数量,以便正确地对评论进行分类)。在这种情况下,所需的词汇种类仅限于“美丽”、“安全”、“惊险”等正面词汇,以及“破旧”、“糟糕”、“危险”等负面词汇。这些词是一般的正面词和负面词的结合,如“美丽”和“丑陋”,以及一些领域特定的术语,如“宽敞”和“磨损”,是具体到房屋领域。因此,它的宽度比标准的情感分析任务略高,但并不显著。图5.5在图5.1中引入的宽度/深度图上,将情绪分析与brokerbot进行对比。

图5.5宽度/深度图上的brokerbot与情感分析。情感分析的深度和宽度都比较小,因为它的最终结果比较窄,而且它只处理表达观点的词汇。

 

正如您所看到的,与brokerbot相比,它是一个更小的区域,因此它更容易构建,同时仍然为用户体验带来显著的改进。

情感分析是NLP的一个经典而重要的应用,值得深入探讨。在下一节中,我们还将使用它作为一种工具来阐明NLP算法的内部工作原理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章