自然语言处理包含4个部分:
1 语言识别,语音合成;
2 自然语言理解,对话理解,知识获取和问答,任务理解;
3 底层的机器学习(TennsorFlow和other)
4 个性化信息的获取和利用;
其中两个重要的竞品分析:
google的产品:各种语言场景;
Alexa亚马逊产品:基于云计算的对话机器人产品,NLP定制化场景;
google NLP开源项目:
BERT:Bidirectional Encoder Representations from Transformers 预训练语言表示的方法;
可以在大型文本语料库(如维基百科)上训练通用的“语言理解”模型,然后将该模型用于下游NLP任务,比如机器翻译、问答。
第一个无监督的用于预训练NLP的深度双向系统。
无监督意味着BERT仅使用文本语料库进行训练,也就是说网络上有大量多种语言文本数据可供使用。
NLP中的3个关键概念:
1 文本嵌入(字符串的矢量表示);
2 机器翻译(使用神经网络翻译语言);
3 以及Dialogue和Conversations(可以实时与人进行对话的技术);
还涉及到的技术:
技术1:情绪分析
情绪分析是通过较小元素的语义组成来解释较大文本单元(实体、描述性术语、事实、论据、故事)的含义的过程;
用于情感分析的现代深度学习方法可用于形态学、语法和逻辑语义,其中最有效的是递归神经网络。
迄今为止用于情感分析的最强大的RNN模型是递归神经张量网络,其在每个节点处具有神经网络的树结构。
技术2:问答系统
问答(QA)系统的想法是直接从文档、对话、在线搜索和其他地方提取信息,以满足用户的信息需求;
QA系统不是让用户阅读整个文档,而是更喜欢简短而简洁的答案;
QA系统可以非常容易地与其他NLP系统结合使用,并且一些QA系统甚至超越了对文本文档的搜索,
并且可以从图片集合中提取信息;
强大的深度学习架构(称为动态内存网络(DMN))已针对QA问题进行了专门开发和优化;
给定输入序列(知识)和问题的训练集,它可以形成情节记忆,并使用它们来产生相关答案;
该体系结构具有以下组件:
语义内存模块(类似于知识库)被用来创建从输入句子的嵌入字序列预先训练手套载体;
输入模块处理与问题有关的输入矢量称为事实;
问题模块逐字处理疑问词,并且使用输出相同权重的GRU输入模块的向量;
情景记忆模块接收从输入中提取和编码的嵌入事实和问题载体;
答案生成模块,通过适当的响应,情景记忆应该包含回答问题所需的所有信息;
DMN不仅在质量保证方面做得非常好,而且在情感分析和词性标注方面也优于其他架构。
技术3:文本摘要 人类很难手动汇总大型文本文档;
文本摘要是NLP为源文档创建简短、准确和流畅的摘要问题;
随着推送通知和文章摘要获得越来越多的注意力,为长文本生成智能且准确摘要的任务每天都在增长;
技术4:注意力机制 神经网络中的注意力机制是基于人类的视觉注意机制;
研究人员不得不处理各种障碍:算法的局限性、模型的可扩展性、对人类语言的模糊理解;
好消息是,大量的开源存在;
NLP中已经解决的主要障碍:
没有单一的模型架构,跨任务具有一致的最新结果;
机器学习中一种强大的方法是多任务学习,它共享相关任务之间的表示,以使模型能够更好地概括原始任务;
另一个挑战是重复字表示的问题,其中模型中编码器和解码器的不同编码导致重复的参数/含义;
另一个障碍是,与诸如卷积神经网络或前馈神经网络相比,任何Deep NLP技术的基本构建块Recurrent Neural Networks相当慢;
准递归神经网络采用RNN和CNN的最佳部分来提高训练速度,使用卷积跨越时间的并行性和跨越信道的并行性的元素级门控递归;
在NLP中,架构搜索使用机器学习自动化人工神经网络设计的过程 非常缓慢,使用Google Brain进行强化学习的神经架构搜索是迄今为止开发的最可行的解决方案;
对话系统-场景:
Task-bot任务型对话系统建立;
IR-BOT:检索型对话系统;
Chitchat-bot:闲聊系统;
NLU中设计概念:
域确认;用户意图甄别;填充槽点;
第一个是语法分析,可以通过语法规则去分析一句话,得到这句活是疑问句还是肯定句,继而分析出用户意图。
第二种方法是生成模式,主要两个代表性的HMM,CRF, 这样就需要标注数据。
第三种方法是分类思想,先对一句话提取特征,再根据有多少个槽值或意图训练多少个分类器,输入一句话分别给不同的分类器,最终得到包含槽值的概率有多大,最终得到这个槽值。
还有一种采用深度学习方式,使用LSTM+CRF两种组合的方式进行实体识别,现在也是首选的方法 ,
一般轻量型的对话系统还是通过语法分析或分类方式或序列标注来做。
自然语言生成也有多种方法。这里举三个方法:基于模板,基于语法规则和基于生成模型方法;
DM涉及的概念:
对话状态追踪DST;
对话策略;
意图识别的准确度跟两方面有关:
1 关键字在当前意图中出现的频率;
2 关键字在整个文件中出现的频率;
自然语言理解后,需要有状态追踪,策略优化等对话管理模块;
一般用传统的三元组方式即:action, slot , value。action就是意图,slot是需要填充的槽值,value是对应的值;
语音识别:孤立词语音识别,连续词语音识别,大词连续语音识别;
语音合成:语言处理,声学处理,韵律处理,情感处理;
语义理解:中文分词,序列标注,实体识别,意图识别;
语言生成:预定义模板,问答语料库,知识图谱,深度学习;
对话状态模型:对话表示模型,对话推理模型,对话学习模型;
对话策略模型:通用对话策略,领域对话策略;
语料库资源:预制模板,问答语料,知识图谱,生成模型,百科问答,搜索引擎;