本帖最后由 3dfx232 于 2019-1-11 14:49 编辑
今年年中,Reddit 上一场关于自然语言处理技术突破的激烈争论曾给笔者留下了深刻的印象。在这场讨论中,有人认为,NLP 和语音领域的突破状况有些令人失望,人们研究的热点纷纷转向了 GAN 和强化学习,也有人认为,NLP 和语音领域已经成为目前为止应用最为广泛和成熟的 AI 技术之一,取得的进步有目共睹。 但评论中大家一致认同的是,近年来自然语言领域的突破进展确实乏善可陈。为什么自然语言处理难有突破出现呢?
最先进的理解、推理模型,以及各自的缺陷
阅读理解: 阅读理解旨在考察机器在给定篇章的情况下,完成面向对应问句的精准回复。斯坦福的 SQuAD 等数据集推动了这个领域的研究。通过最新的基于注意力机制的深度学习方法,该类阅读理解问题的准确率已经可以做的很高。 缺陷: 当前的阅读理解还是在给定问句的情况下去篇章中抽取答案,且对训练数据的依赖相对还是较高的。机器通过利用各类知识,实现真正意义上对篇章的理解,还有较长的路要走。 推理: 传统的符号逻辑推理业界一直都在研究,但是进展相对缓慢。一方面由于推理所涉及的领域非常广泛,机器如何具备知识这个问题一直也没有得到很好的解决,所以在解决实际推理问题的时候,往往表现得非常依赖人工专家知识,缺乏较好的泛化性。
近年来随着深度学习的发展,一些近似推理的工作也被大家关注。比如以知识图谱表示为代表的工作,将知识图谱表示在低维连续向量空间中,并通过向量空间的语义联系,学习概念或实体之间的关系,并据此进行浅层的关系推理。 目前公开最先进模型应该是 ICLR 2018 文章中提到的 DIIN。NLI (自然语言推理)任务主要是判断两个句子的逻辑关系,是蕴含,互斥,还是无关,一般转化为句子 pair 的分类问题。DIIN 模型框架上遵循通用的表征学习 + 交互匹配的框架,细节上把 multi-head attention 用到了极致。 缺陷: 近似推理目前比较热门,但总体还是以相对浅层的推理为主。DIIN 在涉及时间、梳理、条件判断的时候,准确率降至 50% 左右。就 NLI 任务而言,目前模型已经能够在大多数情况做到 80-90% 的准确率,但对于长尾情形的效果,反而规则、正则更好处理。 典型技术难题及解决思路
问题 1:基于 CNN 与 LSTM 模型的问答模型经常在只“读到”问题的一半就收敛于一个预测出的答案。这意味着模型严重依赖于训练数据的表面相关性,缺乏组合性,导致结果出现偏差。 解决思路 1: 模型依赖训练数据的表面相关性,实质上是当前深度学习技术在序列建模过程中的共性问题,本质上属于模型的泛化性问题。 要克服这类问题,需要研究一个相对通用普适的语义模型,该模型具有较强的泛化能力,这样就可以让该语义模型作为核心基础,为各领域的特有模型提供语义支撑。要设计实现该类模型,需要解决无监督语义学习的问题,这类工作目前在学术界开始被关注,比如 ELMo、BERT 都是这类工作。(科大讯飞专家) 解决思路 2: 通用语义嵌入大规模预训练可能是预防过训练的一种方式。此外还需要新的合成模型。另一种方法是构建更多复杂、大规模、真实世界的任务,如开放对话或目标导向对话相关的复杂结构性任务,比如销售对话、客服对话。这些任务将促进更加普适、更综合的模型出现,因为在这些复杂的任务重中,表层相关模型的效果并不好,亟需合成信息模型。(京东专家) 解决思路 3: 首先通过训练集和测试集上的表现变化,判断模型是过拟合还是欠拟合。如果是欠拟合,说明模型没有很好地捕捉到特征,这种情况下应该在特征的层面进行加强,把模型加深;如果是过拟合,说明参数的复杂度超过了数据的复杂度,常见的做法包括数据增强、正则、模型简化、dropout、早停等。(腾讯专家) 解决思路 4: 具体来说,CNN 与 LSTM 模型建模问句时,很容易捕获跟答案直接相关的问句中靠前位置词语,如“type”和“topic”类型的词语,不管输入序列的长短,现有的 attention 模型或者 CNN 滤波都容易反复关注到这些词,造成只“读到”问题的一半就收敛于一个预测出的答案。 可能的解决方式包括: 解决思路 5: 在文本处理中,CNN 网络更适合于短文本中的特征提取,LSTM 网络虽然在诞生之初为了解决长句子训练中的梯度爆炸和消失的问题,在相对较长的句子中其确实显示了很好的效果,但是对于问答类数据,文本过长导致 LSTM 在训练中遗忘句子之前的信息并且在训练中无法将问题的特征加到网络中一块训练,而导致效果不好。 目前对于问答模型更倾向利用基于注意力机制的网络,最典型的是 BERT 网络,完全依赖注意力机制, 另一种是依据记忆力网络的结构, 像 Deep Memory Network, 通过记忆力网络循环计算整个句子的注意力权重。(氪信专家)
问题 2: 现代 NLP 技术在基准数据集上表现优良,但对于未知自然语言文本的语言理解与推理方面远不及人类的水平。** 解决思路 1: 这与第一个问题类似,也是模型的泛化能力问题。除了尝试设计一个通用的无监督语义模型之外,还可以重点思考如何将各类人类知识引入到机器的建模学习过程中。人类知识相对稀疏和抽象,但却具备将各类概念和实体关联起来的作用,所以如果机器能具备对人类知识的学习能力,那么其在处理未知信号的时候,就会表现的更加智能。(科大讯飞专家) 解决思路 2: 我们需要大规模、注意力具有结构化注意力机制、普适的语言理解模型,这是通向类人水平 NLP 智能的道路。我认为最近一些进展,如 HAN、BERT、Transformer、Elmo 也是解决这个问题的方向。(京东专家) 解决思路 3: 一方面机器语言理解确实还不及人类。人类在理解语言的时候会调用很多语言之外的信息,比如常识等,相当于海陆空联合作战,模型目前还只具备学习到怎么使用一把特定的手枪,我们对此也应该有正确的预期。另一方面,在相似的任务上和数据上,可以考虑迁移学习或者预训练模型来快速启动。(腾讯专家) 解决思路 4: 在基准数据集上表现优良并不代表在未知数据上表现好,这是机器学习领域的努力方向。现有 NLP 技术大都基于机器学习方法,因此,这也是 NLP 技术的努力方向之一。这个问题确实非常难,对于 NLP 而言,也许融合知识 (包括语言学知识、人类常识、领域知识等) 是一个缓解上述问题的方向。(小米专家) 解决思路 5: 这个问题不仅只限于 NLP 领域,在任何场景训练的模型如果迁移到新的未知领域,都会遇到模型性能剧烈下降的问题。我们需要构建一个可快速迭代的系统或者框架来解决未知领域的问题。预训练的模型先快速冷启动,收集样本,持续监控模型的性能,然后快速迭代模型。(氪信专家)
问题 3: 如何充分衡量模型在新的、从未见过的输入数据上的表现?或者说,如何衡量系统的泛化能力?以及如何处理未曾见过的数据分布和任务? 解决思路 1: 可以从模型在多个不同任务上的表现来衡量,即扩大评估集合;另一方面,还可以将模型应用到不同的系统中来评估。 严格来说,自然语言理解领域的未知数据,由于空间极为庞大,很难建模或者预设,因此不论是从模型评估来看,还是从模型训练来说,未知数据或信息的建模学习,都还是一个比较大的问题。(科大讯飞专家) 解决思路 2: 对于神经网络而言,现在还没有比较好的理论指导。ICLR`17 的最佳论文给了“Understanding Deep Learning Requires Rethinking Generalization”也说明了学界对深度学习的泛化能力的关注和讨论,这篇文章做了大量的实验,表明深度神经网络一定程度上“记忆”了输入样本。这篇文章同时也认为经典统计机器学习理论和正则策略难以解释深度网络的泛化能力,目前来看,仍然还没有公认的答案。(腾讯专家) 解决思路 3: 目前来看非常困难,对于未曾见过的数据分布和任务,可以尝试采用迁移学习等方法来将在其他数据上得到的规律迁移到新数据或者新任务上来。(小米专家) 解决思路 4: 首先得有一个非常合理和直观的评价指标,其次需要在跨时间窗口或者跨场景的多批数据上充分测试,避免过拟合的现象。(氪信专家)
问题 4: 机器翻译模型的训练,我们使用诸如交叉熵或预期句子级别 BLEU 之类的损失函数训练模型。这些函数已经被证明存在偏好,而且与人类判断不充分相关。强化学习似乎是 NLP 的一个完美选择,因为它允许模型在模拟环境中通过反复试验来学习类似人类的监督信号(“奖励”)。但是,强化学习也无法完全解决 NLP 的所有问题,强化学习在进行 NLP 时的问题主要是什么?怎么解决? 解决思路 1: 强化学习在 NLP 领域的应用,最主要的问题是 reward 信号的确定问题。由于自然语言非常稀疏,属于非连续信号,如何定义奖励函数一直是自然语言处理领域的普遍难题。包括机器翻译的 BLEU 分,文档摘要的 ROUGE 分,虽然属于相对客观的指标,但还是无法直接代表人类的语义评价。因此这个问题本质上,是如何客观评估或者定义语义的问题。我个人认为强化学习在 NLP 领域暂时还不能有很好的应用。(科大讯飞专家) 解决思路 2: 强化学习在 NLP 领域是一个非常强大,且具有潜力的工具,但不可以解决所有的 NLP 问题。如强化学习不能告诉你最好的损失函数是什么,因为它必须是语言 / 任务相关。而且经典的 RL 算法需要进行拓展去解决语言问题,比如说如何处理一个接近无限的行动空间(如语言空间),如何处理一个无法简单模仿环境的开放系统,如何在不同的对话任务中定义奖励,如何用少量样本有效训练 RL,如何为语言建模让训练迅速收敛等。(京东专家) 解决思路 3: 强化学习的序列决策特点和 NLP 的一些任务非常契合,如对话生成、摘要、翻译等等。在 NLP 中使用强化学习,首先要看适不适合转化为一个强化学习的问题,能否定义好 agent, environment, action, reward 这些基础要素。另外在训练的时候,强化学习比较不稳定,要时刻保持对算法学习过程的关注,是否在合理的状态。在不确定的时候,可以适当对交互环境、reward 函数做简化,甚至可以先观察随机策略在一个具体的 setting 下会如何工作。剩下的就是一些具体的技巧了,比如尝试多个随机数种子,做数据标准处理等。(腾讯专家) 解决思路 4: 强化学习的一个主要难点在于奖励函数的定义,对 NLP 也是如此。人类善于定性式评判,但是机器在学习时需要定量,定性到定量的转变十分困难。要解决这个问题,还是要从评价函数上多下功夫。(小米专家) 解决思路 5: 强化学习的范式对于 NLP 里面机器翻译、序列生成、对话系统、聊天机器人等传统损失函数有缺陷,但又比较容易定义奖励函数的动态系统有比较好的应用效果。但是强化学习自身的一些问题,譬如样本利用效率低,对环境过拟合和训练效果不稳定等问题也是在 NLP 里应用强化学习的痛点。(氪信专家)
问题 5: 为什么 NLP 模型在处理简单的常识性日常场景时那么困难?应该怎么改善? 解决思路 1: 这其实并不是 NLP 模型独有的问题,即使是语音、图像等,在一些日常场景中依然无法做到很好的模式识别。我们认为日常场景简单主要是因为我们从小到到大积累的各类生活经验、常识、专业知识,但机器或者单一的模型或者系统所“见过”或者训练所用到的信息非常少,导致处理日常场景比较困难。如何赋予机器常识推理的能力,是人工智能领域但共同目标,需要解决如何定义或者构建常识知识,如何让机器理解常识并学会灵活推理等一系列问题。(科大讯飞) 解决思路 2: 这是因为我们缺乏常识性数据库、好的常识表示,以及常识在具体领域中的语义理解,因此会影响决策。此外,现在大部分 NLP benchmark 评估标准并不包括常识。因此,学习常识最好的办法是使用更复杂、大规模、现实世界的任务来促进研究和技术进步,激励研究者发明可以从良好常识模型中受益的算法。(京东专家) 解决思路 3: 有些日常性场景已经做得比较好,比如情感分类、开放领域的知识型问答等。当然,通识的全能的 NLP 模型现在还没有,也不大可能有,个人的看法还是需要一个任务一个任务地去做好。(腾讯专家) 解决思路 4: 日常场景背后包含各种复杂的上下文特征 (如天气、位置、时段、人的情绪等),机器难以很好地形式化描述。人类的推理机制十分复杂,机器目前还很难模拟。可能的改善方法一是大量增加训练数据,另外可以考虑融合知识和数据进行理解和推理。(小米专家) 解决思路 5: 日常场景的口语化和开放性特征在自然语言处理中都是非常具有难度的。首先,口语化的句子一般语法结构不规整,语气助词较多,分析和建模难度增大;其次,日常场景开放性大,没有足够大的知识库来支持日常场景的建模。在相关产品或者系统的开放上需要针对这两点下功夫:加强对口语化语句的 text normalization 的工作,以及通过流程引导和产品设计减少场景的开放性。 此外,自然语言处理领域其他亟待解决的问题还有任务驱动对话系统、语言资源不足和偏见、预估最坏情况案例性能、领域适应、有意义的文本和对话生成、迁移学习、拥有长期的目标 / 任务导向的人机对话、收集数据的方法、指代消解、词义消歧、文本摘要、民主化等,这些都是业界比较关心的话题,解决了这些技术上的问题,商业化应用才能更加顺利地开展。
典型应用难题和解决思路
问题 1:在机器翻译领域,目前落地的机器翻译解决方案大多无法完美满足日常或重要场合的翻译需求。以今年博鳌论坛上腾讯翻译君出现的“车祸事件”为例,让我们意识到目前的翻译产品离真正的可用还有很长的路要走。 解决思路: 对此,有专家认为“人机耦合”的理念将被视为未来 AI 落地的关键。所谓“人机耦合”的本质,是指人与机器的高效分工合作。通俗地说就是,人去做人擅长的智力工作,机器去做机器擅长的计算工作。这与通常的人工智能不一样,通常的人工智能希望由机器解决一个任务中的所有问题,但往往在很多领域,机器并不能做到对所有问题的高效解决。这个时候就需要人的介入,和机器一起配合完成一个大的事情。 人机耦合之所以会成为 AI 落地的关键,便是由于当前人工智能系统在某些方面,如理解、推理方面的能力不足,需要人工专家的帮助所决定的,这方面需要有一个引导及适应的过程。 自然语言处理技术应用场景受限,有部分原因是当前 AI 技术瓶颈,但是相比若干年前,目前的自然语言处理技术相关的产品正在层出不穷。这些产品都有一些特点:挖掘用户需求、解决用户的痛点、技术层面可达。在深入理解各种 AI 能力的发展趋势,结合不同的场景,因地制宜才是关键。
问题 2:在实际使用体验中会发现,NLP 技术在智能对话机器人系统中,对长句语义理解、理解人的意图方面仍然面临较大的困难,很难让用户有好的体验。 由于中文语言的变位性特点等,长句理解一直是 NLP 中的难题,虽然学术界做过很多努力,但是目前来看,离实用还是有距离的。在短期内从技术上解决这个问题并不现实,可以考虑采用一些对话技巧提高用户体验。全方位意图理解也很困难,但是可以通过构建并利用领域知识库做精某些重要领域。正如氪信所说,可以先完成 80 分,再慢慢去优化剩余的 20 分的体验。 也有人认为,这类问题的解决不一定从技术上入手,可以考虑从产品层面,设计相应的产品交互逻辑,来规避一些不必要的问题。要知道当前系统的自然语言理解能力还无法真正意义上达到人类水平,如果设置过于开放的交互模式,往往会带来很多技术上解决不了的问题。因此,解决这个问题需要技术和产品齐头并进,互相配合努力。
问题 3:另外一个比较火的应用是语音交互,然而,虽然现在市场上出现很多语音识别软件、语音交互产品,如智能音箱,但智能音箱等所谓的智能语音产品目前能解决的问题是比较初级简单的,在复杂场景和问题处理时的表现并不乐观。至今,似乎还未出现过一款真正意义上的“语音交互”式产品。 语音交互的概念最早在手机助手上得以实现,早期也能完成基本的助手操作。但是这个不是真正意义上的语音交互产品。理想的语音交互应该要满足人与人之间的语音沟通。从目前看,还有很长的路要走。从发展的模式上,语音交互产品的落地工作也会语音识别一样,循序渐进地开展,随着技术的不断突破,数据的不断迭代,形成从量变到质变的突破。 小米也从另一个角度做了补充:按照小米首席架构师,小米人工智能与云平台副总裁崔宝秋的说法,真正的 AI 产品 (包括语音产品) 要做到无处不在、无所不能、与日俱增、如影随形。要做到这点,大数据、大知识和大计算缺一不可。另外,个性化、自学习也是这类产品的必要属性。 氪信也认为,真正的语音交互是想你所想,但这不必要,也不可能是完全基于语言理解技术就能做到的。学术界一直有将图像、文字、行为等数据融合进行建模的研究,有些研究的 demo 也非常吸引眼球。因而,氪信在金融领域利用全域数据构建的知识图谱,以及不断与合作伙伴在多个技术领域展开合作,包括语音、视觉等领域的合作,正是为了打造出真正智能、可落地的交互体验产品。
未来趋势NLP 与语音技术从独立走向融合协作 随着自然语言处理技术的不断发展和用户的需求的改变,有人认为,自然语言处理技术已经出现从独立技术走向融合协作的趋势。对此,五位专家一致表示同意。 AI 的能力一定不是相互独立的,自然语言处理技术走向融合协作是必然的,就如同人的大脑的多个功能区域协同工作。讯飞在这方面一直都有布局,2015 年底推出的业界首个全双工语音交互系统 AIUI,其中就把语音技术与语义理解技术做了一定的融合,提升了交互的效果,3 年来在家居、汽车、家电、客服等领域都有成功案例。再比如语音翻译技术,一个研究趋势就是源语言语音到目标语言文本之间的端到端翻译技术,不用经过传统多个模块的流水线流程(先语音识别后机器翻译),这种端到端直接进行语音翻译的直接好处是缓解了原先流程的错误级联的缺陷。 其他趋势氪信:智能问答和语音搜索会是之后的发展趋势。首先,大的互联网巨头会以语音搜索作为自己的门户入口,其次智能问答(包括自然语言理解,自然语言生成和对话管理系统等)结合智能客服会大幅度提升客服的效率。这两个需求是刚需,也是目前产学研都在攻克的领域。 科大讯飞:NLP 和语音的发展趋势是无监督学习。当前的深度学习技术,已经可以在具备大量有监督数据的情况下,实现对数据的充分利用和学习,并解决具体的一个又一个问题。随着时间的推移,有监督学习的“油水”已经越来越少了,如何让机器无师自通、自主学习,实现真正意义上的无监督学习,才是下一步的关键。比较期待在自然语言的语义建模学习,以及人机对话过程中的自主学习方面出现突破,可以保持关注。 未来商业化潜力大的场景科大讯飞:具有个性化特性、覆盖全场景的语音交互,未来非常有机会成为主要的人机交互方式,具有广阔的商业化应用潜力;同时,语音、图像、NLP 等人工智能技术也可以帮助许多传统行业简化工作流程、提升工作效率。 小米:NLP 技术在搜索、推荐、问答和对话等场景下仍然有较大的商业化应用潜力。 氪信:未来,基于对话理解与知识图谱的整合会越来越深入,而其内涵的深度也足以支撑商业愿景。
|