摘录-语言智能

2018-08-24  本文已影响7人  入世修行中

人工智能的金字塔结构:

最底层是所谓的运算智能,计算机在记忆存储和运算远远超过人类,以前我们还认为这是一种智能,但现在已经没有人在讨论人工智能的时候,把它也作为智能,但它是一切人工智能的基础。

再往上就是感知智能,就包括听觉、视觉、触觉等等,在过去几年取得了突飞猛进的结果。

再往上是认知智能,认知智能主要是语言知识和推理。今天讲座的主题就是在语言智能这个领域。这三者是密切相关的,语言的能力强了,对问题的理解就强,获取知识的能力强,那么推理的能力也强。所以语言智能是认知智能中最重要的一个。

再往上就是创造智能,就是说从无到有产生一个想法,甚至一套理论,把它勾画出来,再通过实践验证出来,产生一个新的事物、物体或者意识。这方面的智能目前计算机还是比较薄弱。

感知智能目前进展到什么程度?给一个图片,我们可以识别出图片的主要内容,并且用文字来描述它。这个描述的结果出来,实际上就是给语言智能提供输入信号,这样可以做后续工作。

同样的道理,对视频也可以做同样的工作:给一段视频,用语言文字来描述这段视频的主要内容,同样从这个视频得到一些信号输入到我们自然语言,供后续的自然语言处理。

现在所谓的感知智能已经达到了相当高的水平。每一帧在讲什么内容,大概知道在说什么,然后可以用文字表述出来。

语言智能是讨论什么方面的问题?第一个是NLP的基础技术,它包括词、短语、句子、篇章的表达方法,还包括分词、断句、词性、句法分析、语义分析等等。

第二个是NLP的核心技术,包括像机器翻译、问答、信息检索、信息抽取、聊天和对话、知识工程、语言生成和推荐。

NLP+是指自然语言的应用,还要跟大规模的应用或者具体的场景结合。典型的应用,包括搜索引擎、智能客服等等。还有跟垂直领域的一些应用,比如说在金融、医疗、教育等方面的应用。

自然语言的这些研究也不是孤立的,实际上它的周围有一些支撑技术,比如说用户画像。基于用户画像,可以提供个性化的服务。

云计算使得训练速度加快,并且很容易的部署,然后机器学习和深度学习,在数据提供的条件下,自动学习其中的知识、建模,然后部署到真正的系统里面。

还有是知识图谱,包含具体领域的一些知识图谱,比如说金融领域的,或者是常识意义上的知识图谱。

所有这些技术综合起来,使自然语言的任务做得更好。

自然语言的一些核心技术。

句法分析

第一个是句法分析,我们这个例子把词法分析、词性判断、专有名词识别和依存分析都体现在一起了。

一个句子要判断出:这个句子有多少词?每个词的词性是什么?词与词之间的依存关系是什么?谁是主语,谁是谓语,谁是修饰者,谁是被修饰,哪个词是时间还是地点等等。这个分析是自然语言的基础数据。

语义分析

第二个是语义分析。语义分析包含两种意义上的分析:一个是单独的语义分析,不考虑上下文。图中第一个句子就是不考虑上下文;左边是原始的语句,右边得到一个语义表达。这是机器可以理解的。

上下文相关

第二个是上下文相关。在分析这个句子的时候,要考虑上一个句子或上面说过的话,然后得到当前句子的语义表达。

这个就更难一些,但在对话系统中常常要做这样的工作。

信息抽取

还有一个关键技术叫信息抽取。左边的框是一段文字,是无结构的;右边是一个数据库,它是有结构的。

信息收取是给一篇或者几篇无结构的文本,把其中的重要信息抽取出来,有结构地表示存到数据库里,供未来的推理或者预测模型所用。

以这个技术为基础,给你一大段文字,然后你判断每一段文字在讲什么。每一段文字又有什么具体的内容,比如说有没有人名,有没有机构,有没有时间等等。

以简历举例,简历的信息抽取是说来了一个简历,可以大致判断出这个人哪个学校毕业的,什么时候毕业的,专业是什么,成绩如何等等。招聘公司可能每天有上万个简历来投递,就用这种方法,抽取出来信息之后入库。用人单位有需求,那可以做匹配。

问答系统

问答系统,顾名思义就是给问题,然后理解这个问题,参照系统的知识库,把问题的答案导出来。有时候问题很简单,有时候问题有约束条件,是需要推理的。分别对应就是Simple Relation Question、Multi-Constraint Question和Muitl-Hop Question。需要处理的能力和难度都是不一样的。

自动文摘

有时候我们面对浩如烟海的文档,太多看不过来。那这个时候需要把最重要的信息抓出来,这里就涉及到自动文摘的技术。

从一个文档中获取的信息,这叫单文档摘要。第二个是从多个文档中抽取信息,这叫多文档摘要。还有的时候句子太长,让它缩小一点,这叫句子级的摘要。

这三个技术在搜索引擎、新闻、金融等领域有很广泛的应用。拿体育报道为例,一场比赛结束,比赛的信息存在一个数据库里。还有现场直播的解说词,通过时间轴可以找到对应关系。

那现在,一场足球比赛结束,马上就要一个体育报道,这个报道就能形成。报道的文字出来之后,还要自动找图片配上去,这就涉及到选哪个图片是最好的,配完图片就形成一个完整体育报道。

自然语言的标志性进展

这里包含几个方面:

第一个是神经机器翻译;第二个是聊天机器人;第三是阅读理解;第四是创作。

神经机器翻译

首先就是神经机器翻译,就是用神经网络或者深度学习的方法来做机器翻译。

在此之前的机器翻译是基于统计的;而基于统计往前是基于规则的。

神经机器翻译的特点是有两个过程:编码和解码。

对原文的句子,首先要通过某种意义上进行编码。那编码的意义是什么?得到一个多维向量来表征输入句子的语义信息,就完成了一种编码。这个编码肯定是有损的编码,它不代表完全的句子的意义,但是能代表多少,体现于我们设计神经网络的编码能力。

语义表达,通过一个解码器,逐个词生成目标语言句子。这东西怎么来做?一般来讲,开始都是用RNN——循环神经网络来表示一个句子的意思。后来对此神经网络进行了很多改造,比如LSTM——长短时记忆,来克服由于梯度丢失或爆炸等原因而可能造成的对长距离信息的把握能力不足的问题。

下面说明编码过程。首先每个词有一个词向量模型,来表示这个词的意思,根据大规模的语料库,可以学厨这个词向量一般可以用200维或者300维的向量来表示。

假设每个词的意思都提前训练到了,那么在编码的时候,通过查字典查到每个词的向量表示,然后生成一个隐状态。而下一个隐状态就是当前词的词向量表示和上一个隐状态的信息两者通过神经网络加权计算求和,再经过非线性变换得到目前这个词所对应的一个隐状态。

这个过程就持续进行,每一个节点代表从句首到目前这个词为止步的信息的融汇。而句尾这个红点(代表的隐节点)代表了从句首到句尾所有信息的融汇。

那么在解码的时候,就把这个信息作为输入,输入到解码器里,然后解码器根据当前的输入以及前一节隐节点的输入,来预测词表中哪个词的概率是最大的。

在算某一个位置的时候,要先生成隐状态,这个隐状态来自它上一个位置的隐状态和原句编码的全部信息,加上上一个词的词向量,把这三个信息在神经网络中都作为输入,加权求和,然后通过一个非线性变换得到一个值,这个值是通过多维向量来代表。这就是当前的隐状态。再对词表的所有词来预测每一个词的概率,寻找最大概率输出。

在前面的讨论中,是把最后红点所代表的信息直接代表全句。但是在翻译的时候,实际上是每个词对某一个词的影响是不一样的。所以就有“注意力模型”,用来概括不同词对目标语言翻译的影响。

在具体实现的时候,增加了一个从右到左的一个编码过程,跟原来从左到右编码过程合在一起。这样,每一个隐状态代表从句首到目前词位置,以及从句尾都目前位置的编码信息的汇总。

注意力模型,就是在目标里面某一个隐状态要进行生成目标语词汇的时候,需要考虑前一个隐状态跟编码中的每一个隐状态的相似度有多大,也即是关联度有多大,然后根据关联度的强弱,以不同的程度来加权,形成一个新的表示,来代替前面所说的句尾的红点,然后再逐个生成解码器的隐状态。

通过这个注意力模型捕捉到了源语言对应的每个隐状态对目标语言生成的影响力的大小。

总结一下,神经机器翻译大概的意思就是:先编码,把当前输入的句子编码得到一个语义表达,然后解码,输出目标语言。在解码的时候,需要考虑语言与语言之间每个词的重要度不一样,所以要搞一个所谓的注意力模型。

聊天机器人

聊天机器人的制作有两种方法:

一是基于检索,就是问一句话,然后通过匹配问题回答库中最相似的答案进行回复,这里的条件是数据库要很大,且越多越好,要分好各种类别,既要考虑当前输入也要考虑以前的对话。具体实现的时候可以做两次检索,一次(n-best 的类),第二次是根据上下文的再排序(re-ranking)的过程。

现在学术上做聊天机器人越来越转向做端到端对话的生成模型,即编解码的过程,与神经网络机器翻译很相似。

其过程是将用户上下文,机器上下文,和用户当前输入等进行编码,然后对话情感和用户画像等这些都作为一种编码输入,最后去解码产生一个句子。

阅读理解

再介绍下阅读理解,我们通过阅读一篇文章,然后回答相关的问题,通过回答的好坏评判阅读能力的强弱。这对电脑也是一样,看电脑是否回答得上来。

这是自然语言理解中很难的问题,不过最近也是通过神经网络进行端对端的训练,才取得了不错的进展。

目前通过很多研究者团队的共同努力,现在已经超过了人做的水平,达到82.3分(以百分制为准)。

Embedding Layer:得到文档和问句每一个词都的词向量。

Encoding Layer:编码层,对问题和文档进行编码,比如类似于机器翻译中的对句子的循环神经网络编码。

Matching Layer:匹配层,匹配问题中的每个词和文档中的每个词的语义关联程度的强弱,而问题中的疑问词所对应文本中的关联词就很有可能是答案。

Self-Matching Layer:自匹配,输入问句中的每个词,可能对应文档中的很多词,那么需要做一个匹配排序,获取最可能匹配的那个词。

Pointer Networks:对文档中可能答案的地方的左右边界的判定。

在实验的时候,需要编码外在的人类知识库,通过维基百科文章所训练的到的语言模型加入到神经网络中增强推理。

通过这样的结构,首次超越了人做阅读理解的平均水平。

创作

最后再讲讲计算机创作。计算机创作就是通过人的一个想法,通过关键词,图片的输入,电脑可以反馈一首诗。13年以前,我们做了微软对联,后来又做了古典诗词,猜谜语,现代诗,歌词,配乐等等。

对联:输入上联,电脑输出下联和横批。

古典诗词:输入关键词,电脑创作相应的绝句,宋词,并配上标题。

猜谜语:通过用户的提示,电脑猜出字,并给出推理过程。

自由体诗:上传图片,电脑理解后通过关键词表达,通过强化有用的关键词,将其作为再输入,通过编解码技术得到第一句诗,然后把第一句诗当作神经网络的输入,再加上原来强化的关键词序列,再去产生第二句诗,这样逐句生成创作诗。

上一篇下一篇

猜你喜欢

热点阅读