选自InsightDataScience
作者:Emmanuel Ameisen
机器之心编译
参与:白悦、李泽南
自然语言处理(NLP)与计算机视觉(CV)一样,是目前人工智能领域里最为重要的两个方向。如何让机器学习方法从文字中理解人类语言内含的思想?本文中,来自 Insight AI 的 Emmanuel Ameisen 将为我们简述绝大多数任务上我们需要遵循的思路。
文本数据的 5W 和 1H!
文本数据无处不在
无论是成立的公司,还是致力于推出新服务,你都可以利用文本数据来验证、改进和扩展产品的功能。从文本数据中提取信息并从中学习的科学是自然语言处理(NLP)的一个活跃的研究课题。
NLP 覆盖领域很广,每天都会有新的令人兴奋的结果。但经过与数百家公司合作,Insight 团队发现其中有几个重要应用出现得尤其频繁:
识别不同的用户/客户群(例如预测客户流失、顾客终身价值、产品偏好)
准确检测和提取不同类别的反馈(正面和负面的评论/意见,提到的特定属性,如衣服尺寸/合身度等)
根据意图对文本进行分类(例如寻求一般帮助,紧急问题)
尽管网上有很多 NLP 论文和教程,但我们很难找到从头开始高效学习这些问题的指南和技巧。
本文给你的帮助
结合每年带领数百个项目组的经验,以及全美国最顶尖团队的建议,我们完成了这篇文章,它将解释如何利用机器学习方案来解决上述 NLP 问题。我们将从最简单的方法开始,然后介绍更细致的方案,如特征工程、单词向量和深度学习。
阅读完本文后,您将会知道如何:
收集、准备和检验数据
建立简单的模型,必要时转化为深度学习
解释和理解模型,确保捕获的是信息而非噪声
这篇文章我们将给你提供一步一步的指导;也可以作为一个提供有效标准方法的高水平概述。
这篇文章附有一个交互式 notebook,演示和应用了所有技术。你可以随意运行代码,同步学习:https://github.com/hundredblocks/concrete_NLP_tutorial/blob/master/NLP_notebook.ipynb
第 1 步:收集数据
数据源示例
每个机器学习问题都从数据开始,例如电子邮件、帖子或推文(微博)。文本信息的常见来源包括:
产品评论(来自亚马逊,Yelp 和各种应用商店)
用户发布的内容(推文,Facebook 上的帖子,StackOverflow 上的问题)
故障排除(客户请求,支持票据,聊天记录)
「社交媒体中出现的灾难」数据集
本文我们将使用由 CrowdFlower 提供的一个名为「社交媒体中出现的灾难」的数据集,其中:
编者查看了超过 1 万条推文,其中包括「着火」、「隔离」和「混乱」等各种搜索,然后看推文是否是指灾难事件(排除掉用这些单词来讲笑话或评论电影等没有发生灾难的情况)。
我们的任务是检测哪些推文关于灾难性事件,排除像电影这种不相关的话题。为什么?一个可能的应用是仅在发生紧急事件时(而不是在讨论最近 Adam Sandler 的电影时)通知执法官员。
这篇文章的其它地方,我们将把关于灾难的推文称为「灾难」,把其它的推文称为「不相关事件」。
标签
我们已经标记了数据,因此我们知道推文所属类别。正如 Richard Socher 在下文中概述的那样,找到并标记足够多的数据来训练模型通常更快、更简单、更便宜,而非尝试优化复杂的无监督方法。
Richard Socher 的小建议
第 2 步:清理数据
我们遵循的首要规则是:「你的模型受限于你的数据」。
数据科学家的重要技能之一就是知道下一步的工作对象是模型还是数据。一个好的方法是先查看数据再清理数据。一个干净的数据集可以使模型学习有意义的特征,而不是过度拟合无关的噪声。
下面是一个清理数据的清单:(更多细节见代码 code (https://github.com/hundredblocks/concrete_NLP_tutorial/blob/master/NLP_notebook.ipynb)):
1. 删除所有不相关的字符,如任何非字母数字字符
2. 把文字分成单独的单词来标记解析
3. 删除不相关的词,例如推文中的「@」或网址
4. 将所有字符转换为小写字母,使「hello」,「Hello」和「HELLO」等单词统一
5. 考虑将拼写错误和重复拼写的单词归为一类(例如「cool」/「kewl」/「cooool」)
6. 考虑词性还原(将「am」「are」「is」等词语统一为常见形式「be」)
按这些步骤操作并检查错误后,就可以使用干净的标签化的数据来训练模型啦!
第 3 步:寻找好的数据表示
机器学习模型的输入是数值。如图像处理的模型中,用矩阵来表示各个颜色通道中每个像素的强度。
一个笑脸可以表示为一个数字矩阵。
如果我们的数据集是一系列的句子,为了使算法可以从数据中提取特征,我们需要表示为可以被算法识别的形式,如表示为一系列数字。
One-hot encoding(词袋模型)
表示文本的一种常见方法是将每个字符单独编码为一个数字(例如 ASCII)。如果我们直接把这种简单的形式用于分类器,那只能基于我们的数据从头开始学习单词的结构,这对于大多数数据集是不可实现的。因此,我们需要一个更高级的方法。
例如,我们可以为数据集中的所有单词建立一个词汇表,每个单词对应一个不同的数字(索引)。那句子就可以表示成长度为词汇表中不同单词的一个列表。在列表的每个索引处,标记该单词在句子中出现的次数。这就是词袋模型(Bag of Words),这种表示完全忽略了句子中单词的顺序。如下所示。
将句子表示为词袋。左边为句子,右边为对应的表示,向量中的每个数字(索引)代表一个特定的单词。
可视化词嵌入
在「社交媒体中出现的灾难」一例中,大约有 2 万字的词汇,这代表每个句子都将被表示为长度为 2 万的向量。向量中有很多 0,因为每个句子只包含词汇表中非常小的一个子集。
为了了解词嵌入是否捕获到了与问题相关的信息(如推文是否说的是灾难),有一个很好的办法,就是将它们可视化并看这些类的分离程度。由于词汇表很大,在 20,000 个维度上可视化数据是不可能的,因此需要主成分分析(PCA)这样的方法将数据分到两个维度。如下图所示。
将嵌入的词袋可视化。
看起来很难分为两类,也不好去降低维度,这是嵌入的一个特点。为了了解词袋模型特征是否有用,我们可以基于它们训练一个分类器。
第 4 步:分类器
遇到一个问题时,通常从寻找解决问题的工具入手。当我们要对数据进行分类时,出于通用性和可解释性的考虑,通常使用 Logistic 回归(Logistic Regression)。训练非常简单,结果也可解释,因为易于从模型提取出最重要的参数。
我们将数据分成一个用于拟合模型的训练集和一个用于分析对不可见数据拟合程度的测试集。训练结束后,准确率为 75.4%。还看得过去!最频繁的一类(「不相关事件」)仅为 57%。但即使只有 75% 的准确率也足以满足我们的需要了,一定要在理解的基础上建模。
第 5 步:检验
混淆矩阵(Confusion Matrix)
首先要知道我们模型的错误类型,以及最不期望的是哪种错误。在我们的例子中,误报指将不相关的推文分类为灾难,漏报指将关于灾难的推文归为不相关事件。如果要优先处理每个可能的事件,那我们想降低漏报的情况。如果我们优先考虑资源有限的问题,那我们会优先降低误报的情况,从而减少误报的提醒。我们可以用混淆矩阵来可视化这些信息,混淆矩阵将我们模型预测的结果与真实情况进行比较。理想情况下(我们的预测结果与真实情况完全相符),矩阵为从左上到右下的一个对角矩阵。
混淆矩阵(绿色比例大,蓝色比例小)
我们的分类器的漏报情况(相对)高于误报情况。也就是说,这个模型很可能错误地将灾难归为不相关事件。如果误报情况下执法的成本很高,那我们更倾向于使用这个分类器。
解释模型
为了验证模型并解释模型的预测,我们需要看哪些单词在预测中起主要作用。如果数据有偏差,分类器会对样本数据作出准确的预测,但在实际应用时模型预测的效果并不理想。下图中我们给出了关于灾难和不相关事件的重要词汇。我们可以提取并比较模型中的预测系数,所以用词袋模型和 Logistic 回归来寻找重要词汇非常简单。
词袋:重要词汇
我们的分类器正确地找到了一些模式(广岛,大屠杀),但显然这是无意义数据的过度拟合(heyoo, x1392)。现在我们的词袋模型正在处理一个庞大的词汇表,所有词汇对它来说都是一样的。但一些词汇出现地非常频繁,而且只会对我们的预测加入噪声。接下来,我们试着用一个方法来表示词汇出现的频率,看我们能否从数据中获得更多的信号。
第 6 步:统计词汇
TF-IDF
为了使模型更关注有意义的单词,我们可以使用 TF-IDF(词频-逆文档频率)对我们的词袋模型进行评估。TF-IDF 通过对数据集中词汇出现的频率来加权,并减小高频但只是增加噪音的单词的权重。这是我们新嵌入的 PCA 预测。
将 TF-IDF 嵌入可视化。
由上图我们看到,两种颜色的数据差别更加明显。这使分类器分组更加容易。让我们来看一下这样结果是否会更好。训练新嵌入的 Logistic 回归,我们得到了 76.2%的准确率。
只是稍稍地进行了改进。那现在我们的模型可以选择更重要的单词了吗?如果模型预测时有效地绕过了「陷阱」,得到了更好的结果,那就可以说,这个模型得到了优化。
TF-IDF:重要词汇
挑出来的单词似乎更加相关了!尽管我们测试集的指标稍有增加,但模型使用的词汇更加关键了,因此我们说「整个系统运行时与客户的交互更加舒适有效」。
第 7 步:利用语义
Word2Vec
我们最新的模型可以挑出高信号的单词。但很可能我们运作模型时会遇到训练集中没有单词。因此,即使在训练中遇到非常相似的单词,之前的模型也不会准确地对这些推文进行分类。
为了解决这个问题,我们需要捕获单词的含义,也就是说,需要理解「good」和「positive」更接近而不是「apricot」或「continent」。用来捕获单词含义的工具叫 Word2Vec。
使用预训练的单词
Word2Vec 是寻找单词连续 embedding 的技术。通过阅读大量的文本学习,并记忆哪些单词倾向于相似的语境。训练足够多的数据后,词汇表中的每个单词会生成一个 300 维的向量,由意思相近的单词构成。
论文《Efficient Estimation of Word Representations in Vector Space》的作者开源了一个模型,对一个足够大的可用的语料库进行预训练,将其中的一些语义纳入我们的模型中。预训练的向量可以在这篇文章相关的资源库中找到:https://github.com/hundredblocks/concrete_NLP_tutorial。
句子的表示
快速得到分类器的 sentence embedding 的一个方法是平均对句子中的所有单词的 Word2Vec 评估。这和之前词袋模型是一个意思,但这次我们保留一些语言信息,仅忽略句子的语法。
以下是之前技术的新嵌入的可视化:
可视化 Word2Vec 嵌入
这两种颜色的数据更明显地分离了,我们新的嵌入可以使分类器找到两类之前的分离。经过第三次训练同一个模型后(Logistic 回归),我们得到了 77.7%的准确率,这是目前最好的结果!可以检验我们的模型了。
复杂性/可解释性的权衡
我们的 embedding 没有向之前的模型那样每个单词表示为一维的向量,所以很验证看出哪些单词和我们的向量最相关,。虽然我们仍可以使用 Logistic 回归的系数,但它们和我们 embedding 的 300 个维度有关,而不再是单词的索引。
它的准确率这么低,抛掉所有的可解释性似乎是一个粗糙的权衡。但对于更复杂的模型来说,我们可以利用 LIME 之类的黑盒解释器(black box explainers)来深入了解分类器的工作原理。
LIME
可以通过开源软件包在 Github 上找到 LIME:https://github.com/marcotcr/lime
黑盒解释器允许用户通过扰乱输入并观察预测的变化来解释一个特定例子的任何分类器的决定。
让我们看一下数据集中几个句子的解释。
挑选正确的灾难词汇并归类为「相关」。
这里,这个词对分类器的造成的影响似乎不太明显。
但是,我们没有时间去探索数据集中的数千个示例。我们要做的是在测试例子的代表样本上运行 LIME,看哪些词汇做的贡献大。使用这种方式,我们可以像之前的模型一样对重要单词进行评估,并验证模型的预测结果。
Word2Vec:重要单词
模型提取的高度相关的词意味它可以做出更加可解释的决定。这些看起来像是之前模型中最相关的词汇,因此我们更愿意将其加入到我们的模型中。
第 8 步:使用端到端(end-to-end)方法
我们已经介绍了生成简洁句嵌入快速有效的方法。但是由于忽略了单词的顺序,我们跳过了句子所有的语法信息。如果这些方法提供的结果不充分,那我们可以使用更复杂的模型,输入整个句子并预测标签,而不需要中间表示。一个常见的方法是使用 Word2Vec 或更类似的方法(如 GloVe 或 CoVe)将句子看作一个单词向量的序列。这就是我们下文中要做的。
高效的端到端结构
用于句子分类的卷积神经网络训练非常迅速,作为入门级深度学习体系效果非常理想。虽然卷积神经网络(CNN)主要因为在图像处理的使用而广为人知,但它们在处理文本相关任务时得到的结果也非常好,而且通常比大多数复杂的 NLP 方法(如 LSTMs 和 Encoder/Decoder 结构)训练地更快。这个模型考虑了单词的顺序,并学习了哪些单词序列可以预测目标类等有价值的信息,可以区别「Alex eats plants」和「Plants eat Alex」。
训练这个模型不用比之前的模型做更多的工作,并且效果更好,准确率达到了 79.5%!详见代码:https://github.com/hundredblocks/concrete_NLP_tutorial/blob/master/NLP_notebook.ipynb
与上述模型一样,下一步我们要使用此方法来探索和解释预测,以验证它是否是给用户提供的最好的模型。到现在,你应该对这样的问题轻车熟路了。
结语
下面对我们成功使用的方法进行简要回顾:
从一个简单快速的模型开始
解释其预测
了解其错误类型
根据以上知识来判断下一步的工作——处理数据还是寻找更复杂的模型
这些方法只用于特定的例子——使用适当的模型来理解和利用短文本(推文),但这种思想适用于各种问题。希望这篇文章对你有所帮助,也欢迎大家提出意见和问题!
原文链接:https://blog.insightdatascience.com/how-to-solve-90-of-nlp-problems-a-step-by-step-guide-fda605278e4e
年度订阅用户可加入科技英语学习社区,每周科技英语直播讲堂,详情查看“阅读原文”
2017 年,人工智能领域迎来了转折之年:在这一年,传统的计算机视觉和语音识别都达到了新的高度,也在性能方面趋于饱和。在 2017 年的 ImageNet 图片识别比赛中,参赛的 38 支队伍中有 29 支错误率低于 5%(2011年,表现最好的队伍也有四分之一左右的错误率)。部分由于这个原因,ImageNet 宣布将在 2018 年改变数据集,增加难度。
在产业方面,不少专注于计算机视觉的公司也获得了长足发展。其中比较具有代表性的是估值已经超过 20 亿美元的商汤科技,在经历了数轮大额融资之后,其隐隐有从独角兽变成巨头的趋势。
不过,人工智能另一个相关领域自然语言处理似乎没有达到这种高度。在技术方面,这一领域的技术准确率远远没有达到计算机视觉和语音识别的水平,技术产品(比如个人助手)经常被人讽刺只能用来调戏,缺少实际价值。在创业公司方面,自然语言处理领域也没有产生像商汤、旷视、依图、云从这样的“小巨头”。
这些现状都恰恰说明自然语言处理的难度。然而,可以说这项技术有多难,就有多重要。
微软创始人比尔·盖茨曾经表示,“语言理解是人工智能领域皇冠上的明珠”。微软全球执行副总裁沈向洋也在2017年底的公开演讲时说:“懂语言者得天下……下一个十年,人工智能的突破在自然语言的理解……人工智能对人类影响最为深刻的就是自然语言方面”。
人工智能包括两个重要的部分——“感知”和“认知”。其中,计算机视觉和语音识别等领域属于感知部分,而自然语言处理属于认知部分的重要内容。对一个“智能”而言,仅仅感知当然不够,理解和消化内容的认知能力才是真正意义上的核心。
那么,我们究竟何时才能摘下这个“人工智能领域皇冠上的明珠”?围绕这个问题,近日,DT 君分别采访了两位自然语言处理领域的领军人物:宾夕法尼亚大学教授 Dan Roth 和微软亚洲研究院副院长周明。
对于自然语言处理领域的从业者来说,这两位的名声如雷贯耳。
图 | Dan Roth 教授在 EmTech China 峰会演讲
Dan Roth 教授致力于通过机器学习和推理的方法帮助机器理解自然语言,他也是 AAAS、ACL、AAAI 和 ACM 的会士,曾在多个重要会议上担任程序主席一职,他也是中国计算机学会主办的国际自然语言处理和中文计算大会(NLPCC2018)的大会主席之一。
图 | 周明博士在 EmTech China 峰会演讲
而周明博士作为中国自然语言处理最顶尖的学者之一,目前担任微软亚洲研究院副院长、国际计算语言学协会(ACL)候任主席、中国计算机学会理事、中文信息技术专委会主任、术语工作委员会主任、中国中文信息学会常务理事等多个职务,还是哈尔滨工业大学、天津大学、南开大学、山东大学等多所学校博士导师。
在与两位 NLP 领军人物的对话中,DT君发现,两位受访者在一些热门话题上有所分歧,比如说近几年愈发火热的专业竞赛, Dan Roth 认为这样的竞赛长期来看对推动科学研究和发展价值不大,而周明的看法则正面得多。而在比较自然语言处理和计算机视觉的发展时,两位都认为,自然语言处理远比计算机视觉复杂,仍有许多问题没有解决。
尽管如此,在访谈的最后,Dan Roth 和周明也都表示出对于自然语言处理有望在 2018 年涌现新进展的信心。以下为访谈全文:
我们还没看到非常大的 NLP 创业公司
问:为什么自然语言处理领域没有产生非常大的创业公司?
周明:这个问题很值得研究。总的来说,这是因为自然语言处理的技术难度太大,和应用场景太复杂。
一个公司的成立和发展是由需求驱动。图像识别的需求巨大,例如安防和身份认证的应用场景很多,到处都有摄像头,谁也看不过来。所以,安防领域一直期待着一种技术,只要达到一个阈值,立刻就能用了,恰好这两年深度学习把计算机视觉水平升到了那个阈值。此外,就像上面的回答所说,图像识别问题更干净,再加上有现成且巨大的场景。所以,只要技术有一点突破,场景自然结合,公司一下子就做起来。
特别纯粹的自然语言应用(不包括搜索),主要就是机器翻译。机器翻译长期有需求,但没有安防和身份认证的需求那么大。而且,机器翻译水平一直不到位。即使到今天,机器也很难翻译有背景的复杂句子。
另外,自然语言处理的应用太依赖于UI了。图像识别基本不需要UI,直接在系统内部集成一些技术就行。包括微软在内的所有公司做翻译软件,如果UI做得不行,用户体验不行,人们就不会愿意使用。
技术产业化最重要的是商业模式,也就是怎么让技术挣钱。图像识别公司的挣钱模式已经成立了,但翻译付费就难多了。所以自然语言是从研究到技术到落地到商业化,面临一系列的挑战。
目前的现状是,自然语言处理技术更多的是作为公司内部技术,比如内部的商业情报或人机接口功能。但这不代表我们未来找不到这样的渠道。
Dan Roth:在各种专业应用中,必须要选择正确的自然语言模型,没有任何单一模型可以解决自然语言领域中所遇到的所有问题,自然语言处理没有一个可以解决所有问题的魔术盒子存在,你必须要把所有相关的知识库放进盒子里,选择对的算法,并且针对性的处理特定问题,那么这个盒子最后才有作用。这种现状加大了技术落地的难度。
举例来说,计算机视觉发展到最后已经不是只有单纯识别图像或者是物体,而是要能够做到预测这些物体的本身的下一个动作,比如说在桌子上放了瓶水,然后把瓶子往外推,一个先进的计算机视觉系统就能够判断出瓶子最终的动作轨迹可能是掉到桌子下。然而自然语言处理技术达不到这种水平,它无法进行预测。它只能就现有的文字组合、数据库来判断所有文字应该有的意义。
计算机视觉的物体识别准确度已经可以达到将近百分之百,而自然语言目前的阅读准确度也不过将近9成,而这也是目前自然语言处理商用化的最大阻碍。如果要用到专业领域,那么现有的精准度明显不足。
即使我们不考虑基础研究的困难,就算是现有的自然语言处理的基础研究结果,似乎也没有很好地转化,很多产品在发布会上的效果往往和实际使用的效果完全不同。
周明:目前自然语言处理产品出现的问题,很多时候无关技术,而是在产品设计和UI方面做得不够好。
在做机器阅读理解和机器翻译研究的时候,我们往往有一个固定的评测集,以及F-分数和精确度这样的评测方法。但这些不代表用户的体验,即使在实验中分数达到100%也是这样。技术是独立于产品应用方向发展的,做产品的人应用技术的时候要运用之妙存乎一心。他们要考虑,无论是78%的技术,还是88%或者98%的技术,要怎么运用到产品里,才能让用户体验最好。
用户体验要考虑什么呢?最重要的是用户界面。因为系统很难达到100%的正确,所以要考虑用户怎么操作,怎么容错,让他们接受有缺陷的结果。比如说搜索引擎返回多个搜索结果的设计,其实非常巧妙。因为谁都知道搜索达不到那么好的水准,但当返回多个结果后,用户不抱怨搜索引擎,反而认为搜索引擎的结果扩大了他的思路,把坏事变成好事。
这种巧妙的用户界面设计和用户体验设计,是做自然语言处理的人要好好考虑的。系统和研究厉害,不代表能把用户体验做好。要从用户的角度看,如何把你的技术,融入到其他所有的相关的场景中,解决用户的实际问题。
还是以机器翻译为例,在实验室里,所有话都实验了很多遍,也没有什么噪声,效果肯定很好。但做产品的时候要考虑语音、环境噪声、背景噪声、远场识别、专有名词,以及口音等等。如果做不好,会导致翻译结果一塌糊涂。
但是,背景噪声怎么来解决呢?首先要好好调整UI,要解决语音识别的一些问题,然后可能要解决简单的多轮对话的问题,要对用户口音做自动调整,如果用户觉得翻译不好,要有方便的方式和他们互动。这样就能让用户觉得,这个系统虽然没有那么好,但是他也给我解决了很多问题了。这一块就是要考虑设计水平的能力了。
所以,这个不是科技要解决的问题,这个是产品设计要解决的问题。
2018年,我们可以期待哪些的 NLP 进展?
问:除了这些难点和问题,自然语言处理技术在研究和应用方面,可以在今年或未来几年出现较大的进展?
Dan Roth:利用知识库,未来自然语言处理应用会协助企业把专业知识转成特定的自然语言处理模型。利用这些模型,自然语言处理技术就能成为很好的工具,影响更深层次的人类生活。
周明:垂直领域有一定的保护门槛(比如有一些不公开的数据),导致大公司无法直接进入。在这样的领域可以做一些知识图谱的探索,还可以针对本领域特点,做一些特殊的优化和有的放矢的研究,而不是使用通用的自然语言技术。这样就可能会产生一个专业的知识图谱,以及基于专用图谱之上的自然语言理解的技术。最后提升整个领域的生产力。
此外,神经网络机器翻译、阅读理解、聊天对话,和创作辅助这四个应用在今年和明年就会有很多地方普及,相关的应用场景包括搜索引擎、个人助手、语音助手、机器翻译,还有个人制作音乐,个人制作新闻、撰写网络小说、问答系统等等。
另外一个重要的应用是机器客服。一般没人愿意看产品手册,但如果让计算机读一遍产品手册,你就能问它任何手册里出现过的产品问题,就能在客服、售后服务这些领域产生很好的应用。智能客服可以帮助提高效率,节省人员。系统也可以按照座席收费,有商业模式。
对成熟公司来说,首先搜索引擎还有进步空间。如果搜索引擎有阅读理解的能力,在手机屏幕上返回的结果特别精准,会产生很大的竞争优势。第二,现在信息流非常重要。例如今日头条背后的推荐技术需要理解文本,理解用户,然后匹配他们。如果我们的自然语言处理能力提高了以后,推荐水平就提高了。
对创业公司来说,第一个机会是机器翻译,但是要把用户体验和商业模式做好。第二个机会是客服。最后一个是开发垂直行业的自然语言处理技术。
“自然语言处理远比计算机视觉复杂”
问:和一般的机器学习、人工智能领域以及机器视觉这样的方向相比,自然语言处理领域是否有存在属于自己的独特挑战,有什么解决方案?
Dan Roth:计算机视觉基本上就是物体探测。虽然计算机视觉应用很多,但基本上核心算法都离不开物体探测这个方向,背后使用的逻辑也相当一致。
此外,由于计算机视觉的技术成熟度已经达到商用化的标准,所以我们可以看到很多不同的公司百花齐放。但自然语言处理的情况完全不同。不同场景、不同语言,甚至不同专业所需要用到的自然语言处理层次都不同,所以自然语言处理远比计算机视觉复杂,且目前的应用还是相当少,要为了这些少数应用而开发自己的算法并不划算。
周明:语音识别和图像识别都是一输入一输出,问题非常干净、简洁。比如输入一个图片,要判断里面有没有花或者草,直接判断就行了。这些方向中间没有多轮,不需要交互,一般不太依赖于知识图谱和常识,即使用也被证明没有什么太大效果。
但自然语言处理有三个重要的区别,让它变得很难:
第一,自然语言是多轮的,一个句子不能孤立的地看,要么有上下文,要么有前后轮对话。目前的深度学习技术,在建模多轮和上下文的时候,难度远远超过了一输入一输出的问题。所以语音识别做的好的人和图像识别做的好的人,不一定能做好自然语言。
第二,自然语言除了多轮特征之外,它还涉及到了背景知识和常识知识,这个也是目前大家不清楚怎么建模,都没有完全明白。
第三,自然语言处理要面对个性化问题。同样一句话,不同的人用不同的说法和不同的表达,图像一般没有这么多变化。这种个性化、多样化的问题非常难以解决。
因为人工智能包括感知智能(比如图像识别、语言识别和手势识别等)和认知智能(主要是语言理解知识和推理),而语言在认知智能起到最核心的作用。所以,我们可以很自信地说,如果我们把这些问题都解决了,人工智能最难的部分就基本上要解决了。
问:那怎么解决这些问题呢?
周明:虽然不保证可以改进技术,但有三个值得尝试的方向:
第一,上下文的建模需要建立大规模的数据集。比如多轮对话和上下文理解。数据标注的时候要注意前后文。没有这样的数据,很难取得突破。
第二,强化学习很重要。我们需要根据用户的反馈倒推模型并做参数修正,使模型更加优化。现在强化学习刚刚开始用在自然语言领域,性能并不稳定,但在未来很有机会。
第三,要引入常识和专业知识,并把这些知识构建好。这样就能更加精准地回答问题。没有人能证明现在常识知识用在语言问答和搜索中的作用有多大。所以,我们需要一个测试集来检验结果。这个测试集要专门测上下文和常识,可以让我们要不停用新模型(比如强化学习或者知识图谱)去试错,来看系统性能能不能提升。
机器理解竞赛究竟价值何在?
图丨SQuAD的全称是斯坦福问答数据集(Stanford Question Answering Dataset),是由斯坦福大学自然语言处理实验室开发的数据集和比赛。SQuAD的数据来自Wikipedia的文章。数据标注人员去掉了文章里的一些单词,并让参赛队伍利用模型重新填空,借以检测模型对文章的理解程度
问:2017年,微软亚洲研究院、阿里巴巴和哈工大·讯飞联合实验室分别宣布,自己开发的模型对文章的理解已经超过了人类标注员的水平,引起了很大的反响和争议。类似 SQuAD 这样的竞赛是否有一些技巧刷分?类似的竞赛对行业的意义有多大?我们需要什么样的数据集和比赛?
Dan Roth:这种竞赛对于提高技术基础建设会有一定的贡献,但是长期来看,对推动科学研究和发展方面并没有太多价值。
举例来说,如果用相同数据集来进行竞争,持续个一年或两年,比赛本身就会完全失去其意义。主要原因就是,如果人们只是为了竞赛的数据来进行训练,而不是我们所普遍关心的那些真正应该被解决的问题,那么,最后我们就不会看到真正的技术进展,而只剩为了拿到比赛名次而发展的各种小技巧。
图 | Dan Roth 教授接受 DT 君的采访
周明:SQuAD的一些设置可以有效防止刷分。例如,数据集很大,而且测试集也没有公布。总的来说,斯坦福的 SQuAD 可以说是自然语言处理领域一个里程碑式的创新。人们原来做阅读理解,都是泛泛的去做,从来都不知道到底做到什么水平。但是,现在斯坦福做了一个大规模的,不太容易通过微调改进性能(fine tune)的数据集。实际上很有力地来促进这个领域。
但 SQuAD 确实存在问题。但正确的态度应该是巧妙地设计测试集的新难点,针对这些难点一条一条地把阅读理解所涉及到的技术难点逐个攻关。久而久之,我们整体的阅读理解能力就会循环往复地上升,最后就真的逼近人的平均水平。
图 | 周明博士接受 DT 君的采访
例如,SQuAD 没有涉及太多的推理能力,我们就可以做一个专门测试推理能力的测试集。推理还可以分几级:简单推理可以根据上文就能推理,复杂推理可以根据全文推理,更复杂的推理甚至必须要用到背景和领域知识。如果能把这样一层一层的难度做出来的话,成功就有一半了。
未来研究的成功有两个重要的因素,一个是模型,一个是可以用来评测竞赛的数据集。
参考:
【1】Computational Linguistics and Deep Learning Christopher D. Manning∗ Chttps://www.mitpressjournals.org/doi/pdf/10.1162/COLI_a_00239
人工智能赛博物理操作系统
AI-CPS OS
“人工智能赛博物理操作系统”(新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能)分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利用AI-CPS OS形成数字化+智能化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生。
AI-CPS OS的真正价值并不来自构成技术或功能,而是要以一种传递独特竞争优势的方式将自动化+信息化、智造+产品+服务和数据+分析一体化,这种整合方式能够释放新的业务和运营模式。如果不能实现跨功能的更大规模融合,没有颠覆现状的意愿,这些将不可能实现。
领导者无法依靠某种单一战略方法来应对多维度的数字化变革。面对新一代技术+商业操作系统AI-CPS OS颠覆性的数字化+智能化力量,领导者必须在行业、企业与个人这三个层面都保持领先地位:
重新行业布局:你的世界观要怎样改变才算足够?你必须对行业典范进行怎样的反思?
重新构建企业:你的企业需要做出什么样的变化?你准备如何重新定义你的公司?
重新打造自己:你需要成为怎样的人?要重塑自己并在数字化+智能化时代保有领先地位,你必须如何去做?
AI-CPS OS是数字化智能化创新平台,设计思路是将大数据、物联网、区块链和人工智能等无缝整合在云端,可以帮助企业将创新成果融入自身业务体系,实现各个前沿技术在云端的优势协同。AI-CPS OS形成的数字化+智能化力量与行业、企业及个人三个层面的交叉,形成了领导力模式,使数字化融入到领导者所在企业与领导方式的核心位置:
精细:这种力量能够使人在更加真实、细致的层面观察与感知现实世界和数字化世界正在发生的一切,进而理解和更加精细地进行产品个性化控制、微观业务场景事件和结果控制。
智能:模型随着时间(数据)的变化而变化,整个系统就具备了智能(自学习)的能力。
高效:企业需要建立实时或者准实时的数据采集传输、模型预测和响应决策能力,这样智能就从批量性、阶段性的行为变成一个可以实时触达的行为。
不确定性:数字化变更颠覆和改变了领导者曾经仰仗的思维方式、结构和实践经验,其结果就是形成了复合不确定性这种颠覆性力量。主要的不确定性蕴含于三个领域:技术、文化、制度。
边界模糊:数字世界与现实世界的不断融合成CPS不仅让人们所知行业的核心产品、经济学定理和可能性都产生了变化,还模糊了不同行业间的界限。这种效应正在向生态系统、企业、客户、产品快速蔓延。
AI-CPS OS形成的数字化+智能化力量通过三个方式激发经济增长:
创造虚拟劳动力,承担需要适应性和敏捷性的复杂任务,即“智能自动化”,以区别于传统的自动化解决方案;
对现有劳动力和实物资产进行有利的补充和提升,提高资本效率;
人工智能的普及,将推动多行业的相关创新,开辟崭新的经济增长空间。
给决策制定者和商业领袖的建议:
超越自动化,开启新创新模式:利用具有自主学习和自我控制能力的动态机器智能,为企业创造新商机;
迎接新一代信息技术,迎接人工智能:无缝整合人类智慧与机器智能,重新
评估未来的知识和技能类型;
制定道德规范:切实为人工智能生态系统制定道德准则,并在智能机器的开
发过程中确定更加明晰的标准和最佳实践;
重视再分配效应:对人工智能可能带来的冲击做好准备,制定战略帮助面临
较高失业风险的人群;
开发数字化+智能化企业所需新能力:员工团队需要积极掌握判断、沟通及想象力和创造力等人类所特有的重要能力。对于中国企业来说,创造兼具包容性和多样性的文化也非常重要。
子曰:“君子和而不同,小人同而不和。” 《论语·子路》云计算、大数据、物联网、区块链和 人工智能,像君子一般融合,一起体现科技就是生产力。
如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!
新一代技术+商业的人工智能赛博物理操作系统AI-CPS OS作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。
产业智能官 AI-CPS
用“人工智能赛博物理操作系统”(新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能),在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的认知计算和机器智能;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链。
长按上方二维码关注微信公众号: AI-CPS,更多信息回复:
新技术:“云计算”、“大数据”、“物联网”、“区块链”、“人工智能”;新产业:“智能制造”、“智能金融”、“智能零售”、“智能驾驶”、“智能城市”;新模式:“财富空间”、“工业互联网”、“数据科学家”、“赛博物理系统CPS”、“供应链金融”。
官方网站:AI-CPS.NET
本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!
版权声明:由产业智能官(公众号ID:AI-CPS)推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:[email protected]