『人工智能』为了读懂你,AI付出了多少努力( 二 )


1.一方面是因为语言的规律错综复杂 , 不是用简单的统计就可以计算出概率的 。 不同的语言之间语法结构不用 , 并且同一种语言对于同一个意思有不同的表达方式 , 同一个表达也可能有不同的理解 。 我们去建立一个语料库相当于重新为人类语言建立一个百科全书 , 工作量十分巨大;
2.另一个方面的原因是使用语言有特定的语境 。 语言是在特定的环境中 , 为了生活的需要而产生的 , 所以特定的环境必然会在语言上打上特定的烙印 。 例如“百度”原本是一家企业的名字 , 但是经过该企业的市场教育后 , 大家想说“搜索一下”时 , 很自然就说成了“百度一下” 。 这时候这个名词就赋予了一个新的特定动作 , 这些都是让计算机难以理解的表达方式 。
以上原因都说明 , 仅仅让计算机能够理解人类的语言已经是一件非常具有挑战性的事情 。 如果我们用统计的方式去实现“理解” , 让计算机通过配对的方式计算适合输出的语句 , 由于语言的不规律性和组合性会产生非常多的组合方式 , 显然是不太现实的 。
计算机能够做的事情就是将语言通过数学的形式表现出来 。 但是到目前为止 , 语言的组合到底能不能用数学模型去刻画还没有一个清晰的答案 。
自然语言本身是人类对世界各种具象以及抽象事物以及事物之间的联系和变化的一套完整的符号化描述 , 它是简化了底层物理感知的世界模型 。 这意味着自然语言处理的输入是离散的抽象符号 , 它直接跳过了计算机感知世界的过程 , 直接关注以现实世界为依托的各种抽象概念、语义和逻辑推理 。
人工智能的终极挑战是理解人类的语言 , 因此我们需要创造更接近人类大脑思考方式的模型才能模拟语言如何表达 。 同时也因为这个原因 , 自然形成了自然语言处理这个领域 。 我们称之为自然语言处理而不是自然语言理解 , 因为真正做到让计算机理解语言实在是太困难 。
3.
虽然要“理解语言”比较困难 , 但如果只是想“处理语言” , 还是有方法的 。 目前业界主流处理语言的方法是:循环神经网络+长短时记忆网络(RNN+LSTM) , 此处不展开讨论算法的原理 , 感兴趣的同学买一本《产品经理进阶:100个案例搞懂人工智能》看看 。
这套解决方案 , 主要是为了解决上述提到的语境与语言规律性的问题 。 回想我们初中做英语考试的时候 , 肯定也遇到过这种情况 , 几个单词可能不认识 , 但是联系上下文看就能理解这句话大概是什么意思了 。 LSTM就是这样的设计思路 , 让算法能够结合上下文的语境去判断这句话是在说什么 。
关于LSTM的原理 , 在知乎上天雨栗同学的解释非常直观 , 我给大家简单理一理 。 拿一个简单的情感分类问题为例:

『人工智能』为了读懂你,AI付出了多少努力
本文插图

比如这句话 , 我们去掉常见的停用词以后 , 这句话里:

  • 正面词汇:“好”x2、“喜欢”x1 , 共3个;
  • 负面词汇:“没有”x1、“不”x1 , 共2个;

由于句子中正面词汇更多 , 所以机器会更加倾向判断这句话传递的是积极情感 , 但实际上这句话表达的是负面情感 , 句中两个“好”前面都有“没有”去否定 , “喜欢”前面也有“不”去否定 , 但是普通的算法捕抓不到这种关系 , 所以需要借助LSTM , 那它具体是怎么做的呢?


『人工智能』为了读懂你,AI付出了多少努力
本文插图
【『人工智能』为了读懂你,AI付出了多少努力】

由于LSTM存在传递关系 , 如图中LSTM中连接的箭头所示 , 它能够捕抓到这种否定关系 , 从而输出正确的情感系数 , 所以它对语言的“处理”能力更胜一筹 。


推荐阅读