热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

NLP随笔(一)

NLP随笔(一)-20世纪50年代中期到80年代初期的感知器,20世纪80年代初期至21世纪初期的专家系统,以及最近十年的深度学习技术,分别是三次热潮的代表性产物Gartner

20 世纪50 年代中期到80 年代初期的感知器,20世纪80 年代初期至21世纪初期的专家系统,以及最近十年的深度学习技术,分别是三次热潮的代表性产物

Gartner2018技术成熟度曲线,Gartner每年发布的技术趋势曲线,聚焦未来5到10年间,可能产生巨大竞争力的新兴技术

人工智能技术远未达到媒体所宣传的神通广大,无所不能。从图1中的技术发展现状也可一窥端倪。AlphaGo可以战胜最好的人类棋手,但却不可能为你端一杯水。著名机器人学者Hans Moravec早前说过:机器人觉得容易的,对于人类来讲将是非常难的;反之亦然。

人可以轻松做到听说读写,但对于复杂计算很吃力;而机器人很难轻松做到用手抓取物体、以及走上坡路,但可以轻而易举地算出空间火箭的运行轨道。人类可以通过日积月累的学习,轻松完成各种动作,但对于机器人来讲完成这些简单的动作难如登天。专家们称此理论为“莫拉维克悖论”(Moravec's Paradox)。机器学习专家、著名的计算机科学和统计学家 Michael I. Jordan近日在《哈佛数据科学评论》上发表文章,也认为现在被称为AI的许多领域,实际上是机器学习,而真正的 AI 革命尚未到来。

业界一致认为,AI的三要素是算法,算力和数据

从计算,到感知,再到认知,是大多数人都认同的人工智能技术发展路径。那么认知智能的发展现状如何?

首先,让我们看一下什么是认知智能。复旦大学肖仰华教授曾经提到,所谓让机器具备认知智能是指让机器能够像人一样思考,而这种思考能力具体体现在机器能够理解数据、理解语言进而理解现实世界的能力,体现在机器能够解释数据、解释过程进而解释现象的能力,体现在推理、规划等等一系列人类所独有的认知能力上

对于看、听、说、动作而言,感知智能已经可以达到非常好的效果。而对于推理、情感、联想等能力,还需要更强的认知能力的体现

虚拟生命基本能力范畴

虚拟生命发展阶段

虚拟生命1.0,可以看做是聊天机器人的升级版本。本阶段最重要的特点是单点技术的整合,并能作为整体和人类进行交互。从功能上来看,仍然是被动交互为主,但可以结合对用户的认知,进行用户画像和主动推荐。

我们目前正在处于虚拟生命的1.0阶段。在这个阶段,多轮对话、开放域对话、上下文理解、个性化问答、一致性和安全回复等仍然是亟待解决的技术难题。同时,虚拟生命也需要找到可落地的场景,做好特定领域的技术突破。

虚拟生命2.0,是目前正在努力前行的方向,在这个阶段,多模态技术整合已完全成熟,虚拟生命形态更为多样性,具备基于海量数据的联合推理及联想,对自我和用户都有了全面的认知,并可快速进行人格定制。实现这个阶段可能需要3-5年。

虚拟生命3.0, 初步达到强人工智能,具备超越人类的综合感知能力,并拥有全面的推理、联想和认知,具备自我意识,并能达到人类水平的自然交互。随着技术的进步,我们期待在未来十年至三十年实现虚拟生命的3.0。

语言是主要以发声为基础来传递信息的符号系统,是人类重要的交际工具和存在方式之一。作用于人与人的关系时,是表达相互反应的中介;作用于人和客观世界的关系时,是认识事物的工具;作用于文化时,是文化信息的载体(来源:维基百科)。语言与逻辑相关,而人类的思维逻辑最为完善

自底向上,自然语言处理需要通过对字、词、短语、句子、段落、篇章的分析,使得计算机能够理解文本的意义

比如和机器人对话的过程中,对于音乐话题的理解,就需要用到命名实体识别、实体链接等技术。举一个简单的例子,“我真的非常喜欢杰伦的双截棍”,就需要判断杰伦是一个人名,链接到知识库中“周杰伦”这样一个歌手实体,并且“双截棍”是一个歌名而不是一种器械。同时,还可以进行情感判断,是一个正面的“喜欢”的情感。

传统的自然语言处理技术,还是以统计学和机器学习为主,同时需要用到大量的规则。近十年来,深度学习技术的兴起,也带来了自然语言处理技术的突破。这一切还需要从语言的表示开始说起。

众所周知,计算机擅长处理符号,因此,自然语言需要被转化为一个机器友好的形式,使得计算机能够快速处理。一个很典型的表示方法是词汇的独热(one-hot)表示,也就是相当于每个词在词汇表里都有一个特定的位置。比如说有一个10000个词的词汇表,而“国王”是词汇表里的第500个词,那么“国王”就可以表示为一个一维向量,只有第500个位置是1,其他9999个位置都是0。但这种表示方法的问题很多,对语义相近但组成不同的词或句子如“国王”和“女王”,利用独热表示的向量内积,无法准确的判断两者之间的相似度。

2013年,Tomas Mikolov等人在谷歌开发了一个基于神经网络的词嵌入(word embedding)学习方法Word2Vec,不但大大缩短了词汇的表示向量的长度,而且能够更好的体现语义信息。通过这种嵌入方法可以很好的解决“国王”-“男人”=“女王”-“女人”这类问题。感兴趣的读者可以参考互联网上大量的关于词嵌入的资料。

计算机能够快速处理自然语言之后,传统的机器学习方法也进一步被深度学习所颠覆。相关算法在近年来的迭代速度非常快。以语言模型(Language Model)预训练方法为例,代表性方法有Transformer,ELMo,Open AI GPT,BERT,GPT2以及最新的XLNet。其中,Transformer于2017年6月被提出。ELMo的发表时间是2018年2月,刷新了当时所有的SOTA(State Of The Art)结果。

不到4个月,Open AI在6月,基于Transformer发布了GPT方法,刷新了9个SOTA结果。又过了4个月,横空出世的BERT又刷新了11个SOTA结果。2019年2月,Open AI发布的GPT2,包含15亿参数,刷新了11项任务的SOTA结果。而2019年6月,CMU 与谷歌大脑提出了全新 XLNet,在 20 个任务上超过了 BERT 的表现,并在 18 个任务上取得了当前最佳效果。

除了算法和算力的进步,还有一个重要的原因在于,以前的自然语言处理研究,更多的是监督学习,需要大量的标注数据,成本高且质量难以控制,而以BERT为代表的深度学习方法,直接在无标注的文本上做出预训练模型。在人类历史上,无监督数据是海量的,也就代表着这些模型的提升空间还有很大。2019年7月11日,Google AI发表论文,就利用了惊人的250亿平行句对的训练样本。其应用效果我们也拭目以待。

尝试用技术模拟人类的真实对话,在开放领域就是个伪命题。因为在人类的对话过程中,一句话中所表达出的信息,不只是文字本身,还包括世界观、情绪、环境、上下文、语音、表情、对话者之间的关系等。

比如说“今天天气不错”,在早晨拥挤的电梯中和同事说,在秋游的过程中和驴友说,走在大街上的男女朋友之间说,在倾盆大雨中对同伴说,很可能代表完全不同的意思。在人类对话中需要考虑到的因素包括:说话者和听者的静态世界观、动态情绪、两者的关系,以及上下文和所处环境等

而且,以上这些都不是独立因素,整合起来,才能真正反映一句话或者一个词所蕴含的意思。这就是人类语言的奇妙之处。同时,人类在交互过程中,并不是等对方说完一句话才进行信息处理,而是随着说出的每一个字,不断的进行脑补,在对方说完之前就很可能了解到其所有的信息。再进一步,人类有很强的纠错功能,在进行多轮交互的时候,能够根据对方的反馈,修正自己的理解,达到双方的信息同步。

在上一节中,我们也提到,自然语言处理技术很难解决推理问题。而推理是认知智能的重要组成部分。比如说对于问题“姚明的老婆的女儿的国籍是什么?”,一个可行的解决方案,就是通过大规模百科知识图谱来进行推理查询。

知识图谱被认为是从感知智能通往认知智能的重要基石。一个很简单的原因就是,没有知识的机器人不可能实现认知智能。图灵奖获得者,知识工程创始人Edward Feigenbaum曾经提到:“Knowledge is the power in AI system”。张钹院士也提到,“没有知识的AI不是真正的AI”。

拿上一节提到的GPT-2算法来看,即使其文章续写能力让人赞叹,也只是再次证明了足够大的神经网络配合足够多的训练数据,就能够产生强大的记忆能力。但逻辑和推理能力,仍然是无法从记忆能力中自然而然的出现的。学界和企业界都寄希望于知识图谱解决知识互连和推理的问题。那么什么是知识图谱?简单来说,就是把知识用图的形式组织起来。可能这样说还不够明白,我们举例子分别说下什么是知识,什么是图谱。

所谓知识,是信息的抽象,举一个简单的例子来说,226.1厘米,229厘米,都是客观存在的孤立的数据。此时,数据不具有任何的意义,仅表达一个事实存在。而“姚明臂展226.1厘米”, “姚明身高229厘米”,是事实型的陈述,属于信息的范畴。对于知识而言,是在更高层面上的一种抽象和归纳,把姚明的身高、臂展,及姚明的其他属性整合起来,就得到了对于姚明的一个认知,也可以进一步了解姚明的身高是比普通人更高的。

维基百科给出的关于知识的定义是:知识是人类在实践中认识客观世界(包括人类自身)的成果,它包括事实、信息的描述或在教育和实践中获得的技能。知识是人类从各个途径中获得得经过提升总结与凝练的系统的认识。

图谱的英文是graph,直译过来就是“图”的意思。在图论(数学的一个研究分支)中,图(graph)表示一些事物(objects)与另一些事物之间相互连接的结构。一张图通常由一些结点(vertices或nodes)和连接这些结点的边(edge)组成。Sylvester在1878年首次提出了“图”这一名词[7]。如果我们把姚明相关的“知识”用“图谱”构建起来

知识图谱是实现通用人工智能(Artificial General Intelligence)的重要基石。从感知到认知的跨越过程中,构建大规模高质量知识图谱是一个重要环节,当人工智能可以通过更结构化的表示理解人类知识,并进行互联,才有可能让机器真正实现推理、联想等认知功能。而构建知识图谱是一个系统工程

自顶向下的策略为专家驱动,根据应用场景和领域,利用经验知识人工为知识图谱定义数据模式,在定义本体的过程中,首先从最顶层的概念开始,然后逐步进行细化,形成结构良好的分类学层次结构;在定义好数据模式后,再将实体逐个对应到概念中。

自底向上的策略为数据驱动,从数据源开始,针对不同类型的数据,对其包含的实体和知识进行归纳组织,形成底层的概念,然后逐步往上抽象,形成上层的概念,并对应到具体的应用场景中。

知识图谱可以辅助各种智能场景下的应用。谷歌在2012年最早提出“Knowledge Graph”的概念,并将知识图谱用到搜索中,使得“搜索能直接通往答案”。知识图谱还能辅助智能问答、决策推理等应用场景。

最后,构建知识图谱的成本仍然较高。Heiko Paulheim在其文章《How much is a Triple? Estimating the Cost of Knowledge Graph Creation》中,给出了几个典型的知识图谱的构建成本。其中,上世纪80年代开始的也是最早的知识图谱项目CYC,平均构建一条陈述句和断言的成本是5.71美元,而随着自然语言处理和机器学习技术的进步,DBpedia构建每一条的成本降低到了1.85美分。即便如此,在真正工程化落地的时候,牵扯到多源数据的清洗整合,一个知识图谱项目的成本还是居高不下。

自然语言处理与知识图谱结合可以实现一定程度的推理,而知识图谱和深度学习结合可以实现一定程度的可解释性,自然语言处理和深度学习结合,诞生了BERT等强大的语言模型


推荐阅读
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 视觉图像的生成机制与英文术语解析
    近期,Google Brain、牛津大学和清华大学等多家研究机构相继发布了关于多层感知机(MLP)在视觉图像分类中的应用成果。这些研究深入探讨了MLP在视觉任务中的工作机制,并解析了相关技术术语,为理解视觉图像生成提供了新的视角和方法。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战
    OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 深入浅出解读奇异值分解,助你轻松掌握核心概念 ... [详细]
  • 如何正确安装Python:详细步骤与常见问题解答
    本文详细介绍了如何正确安装Python,包括环境准备、下载与安装过程、路径配置等关键步骤,并针对初学者常见的安装问题提供了详细的解答和解决方案,帮助读者顺利搭建Python开发环境。 ... [详细]
  • 每日精选Codeforces训练题:1119E(贪心算法)、821C(栈模拟)和645D(拓扑排序)
    题目涉及三种不同类型的算法问题:1119E(贪心算法)、821C(栈模拟)和645D(拓扑排序)。其中,1119E的问题背景是有n种不同长度的棍子,长度分别为2^0, 2^1, …, 2^(n-1),每种棍子的数量为a[i]。任务是计算可以组成的三角形数量。根据三角形的性质,任意两边之和必须大于第三边。该问题可以通过贪心算法高效解决,通过合理选择棍子组合来最大化三角形的数量。 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 全新发布的自我修复与自我更新的Linux版本,专为云计算环境设计! ... [详细]
author-avatar
luosj
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有