当前位置:   article > 正文

1.2 如何让机器说人话?万字长文回顾自然语言处理(NLP)的前世今生 —— 《带你自学大语言模型》系列

1.2 如何让机器说人话?万字长文回顾自然语言处理(NLP)的前世今生 —— 《带你自学大语言模型》系列

本系列目录

《带你自学大语言模型》系列部分目录及计划,完整版目录见:带你自学大语言模型系列 —— 前言

第一部分 走进大语言模型(科普向)

第二部分 构建大语言模型(技术向)

本节目录

  • 1.2.1 语言模型的理论基石
  • 1.2.2 基于语法规则(20世纪50 - 70年代)
  • 1.2.3 基于统计的语言模型(20世纪70 - 90年代)
    • 1.2.3.1 N-gram
  • 1.2.4 基于神经网络的语言模型(1990年代中期-至今)
    • 1.2.4.1 前馈神经网络
    • 1.2.4.2 循环神经网络模型(RNN)
    • 1.2.4.3 词向量
    • 1.2.4.4 注意力机制
    • 1.2.4.5 Transformer

【思考】

  1. 在让机器说人话这件事上,人们都做了哪些尝试?
  2. 基于神经网络的语言模型,核心的任务有哪几步?
  3. 人理解语言的方式和计算机理解语言的方式有什么相同和不同?

欢迎关注同名公众号【陌北有棵树】,关注AI最新技术与资讯。

【前言】

语言既是人类的最基础活动,同时又是最复杂的信息游戏。如果一个东西同时具有“最基础”和“最复杂”两种属性,那么这其中必然隐含了许多隐性的、约定俗成的内在知识。比如下面这些“意思”,都代表着不同的意思:

  • “你这是什么意思?”
  • “没什么意思,意思意思。”
  • “你这就不够意思了。”
  • “小意思,小意思。”
  • “你这人真有意思。”
  • “其实也没有别的意思。”
  • “那我就不好意思了。”
  • “是我不好意思。”

尽管我不说,但你仍然能心领神会都是什么意思,但如果让只认识0和1的计算机去理解这些“意思”,那可真是太有意思了。

但是,NLP的核心目的,就是让计算机去理解这样复杂且抽象的人类语言。

上一节我们回顾了人工智能的发展史,与人工智能所经历的发展曲线类似,自然语言处理也经历了类似的路径,一般称之为从理性主义到经验主义。理性主义基于规则,经验主义基于统计。

关于什么是“理性主义”,我们不妨思考传统编程下的机器语言,这是最极致的“基于规则”,本质上就是一个个逻辑判断,逻辑和规则被固化在代码的一个个if…else和for循环里,计算机做的只是存储数据,指令计算,它不需要有所谓的“智能”,智能在程序员的脑子里,通过代码固化下来。

但到了自然语言这里,最大的难点在于语言的歧义性和动态变化,上面提到的“意思”的例子,还只是歧义的一种,叫语义歧义。在此之前,计算机还要解决结构歧义、省略歧义、指代歧义等等这些在人类看起来根本不是问题的问题。

在传统计算机采用的编码方式下,数字并不代表文字背后隐藏的意义,电脑也不需要理解文字背后的意义,使用电脑的人理解这个意义即可。但是,如果一个系统的所有功能都需要预先编码好而不具有学习的能力,恐怕很难认为它具有智能。而人工智能试图做的,就是代替人类智能的那部分。

本节我们依旧从发展史的角度,来看计算机是一步步“学会”人类的语言的。

【正文】

正如人们对于智能的探索一样,人们对于语言奥秘的探索,也从未停歇。最近读杨立昆的自传《科学之路》,读到美国女作家帕梅拉·麦科多克(Pamela McCorduck)写的一句话,人工智能的历史始于“人类扮演上帝的古老愿望”, 写的极妙,于是人类一直试图创造出带有生命特征的机器。

一直以来,语言被认为是人类拥有智能的标志,同时,用机器做语言翻译又有着极强的需求,尤其是在二战和冷战期间,所以自然语言处理可以说一直是备受关注。

1.2.1 语言模型的理论基石

一般我们说“语言模型”,通常是指基于统计的语言模型。虽然“基于规则”的繁荣期要早于“基于统计”,但从时间顺序来看,基于统计的萌芽可以追溯到上个世纪初。之所以要花很大篇幅讲这段历史,是因为尽管技术日新月异,但其所依据的底层原理仍是基于100年前的发现。这个发现最大的意义在于:证明了通过统计学方法进行自然语言研究的可能性。

这样一件对自然语言处理(NLP)领域如此重大的事件,起源却是一场关于自由意志与宿命论的神学辩论,可以说是无心插柳。

涅克拉索夫是俄国一位具有神学背景的数学家,他在1902年发表的一篇论文中,为了证明自由意志的存在,即人类的恶行和上帝无关,他将大数定律注入神学研究的论证中。他的论点大致如下:自愿行为是自由意志的表达,就像概率论中的独立事件,它们之间没有因果联系。大数定律只适用于这样的独立事件。社会科学家收集的数据,如犯罪统计数据等,符合大数定律。因此,个人的基本行为必须是独立和自愿的。

论文传到俄国另一个大名鼎鼎的数学家马尔科夫手中,马尔可夫在意识形态立场上,可以说是与涅克拉索夫的观点完全对立,但是在他发起攻击时,却几乎不谈派系或宗教,而是直指其中一个数学错误——大数定律需要独立性原则。

尽管自雅各布·伯努利时代以来,这一概念一直是概率论的常识,马尔可夫却开始证明这个假设是不必要的。如果满足某些标准,大数定律同样适用于依赖变量系统。简单来说,就是大数定理不需要独立性假设

于是他的论证方法就是,找到不符合独立性假设的事件并证明其中大数定理的存在。他选择了普希金的诗歌小说《尤金·奥涅金》,手工统计了元音和辅音的出现规律,发现它们的出现频率最终收敛到固定值,即大数定律。

同时,这本书中的元音和辅音出现的概率分别是是0.28和0.72。首先我们不妨假设元音和辅音的出现都是独立事件,那么根据独立事件的乘法定理,连续出现两次元音的概率应该是0.28×0.28,所以在这本有20多万个字母的书中,应该出现大约16500对两个连续的元音。这本书中的真实情况是两个连续的元音只出现了7388对,所以元音和辅音的出现是独立事件的假设并不成立,但同时他们的统计结果却确实显现了大数定律。

1913 年 1 月 23 日,他在圣彼得堡皇家科学院的演讲中总结了他的发现。基于上面的结论进一步扩展,把元音和辅音各自看作一个状态,而这两个连续字母的四种情况看作是两个状态之间的四种转移方式,每种转移都按照一个特定的概率发生,这就是马尔可夫链,马尔可夫链在当今科学界无处不在,比如语音识别、DNA识别、网络搜索等,但本文我们只讨论其在自然语言处理领域所起到的开创性作用。

马尔可夫的发现揭示了通过统计方法进行自然语言研究的可能性。这成为今天仍活跃的N-gram模型的前身,甚至今天的LLM和ChatGPT本质上也是用前面的词预测后面的词。

虽然这一研究成果极具开创性意义,但由于当时客观条件的限制(甚至还没有计算机)纯粹用纸笔进行统计实在无法激起学者们的兴趣,于是又沉寂了35年。

直到1948年,香农在《通信的数学原理》中,对马尔可夫过程进行了进一步的详细说明。在这篇论文中,香农详细地描述了自然语言中存在的马尔可夫随机过程。香农指出:语言的统计特性可以被建模,同时,还可以根据这个概率模型有效地生成语言。 这篇论文中甚至出现了对N-gram模型的描述。

1.2.2 基于语法规则(20世纪50 - 70年代)

虽然两位如此有影响力的大佬都证明了自然语言的统计特性,可以说是开局极好。但在后面的20年,自然语言处理领域的进展却是乏善可陈。一方面是客观条件的限制,当时计算能力和语料规模都还不足以支撑数理统计的研究,另一方面是则是由于主观上人们惯性思维,当时的语言学家认为,用“简陋”的统计学方法去研究复杂且精密自然语言,多少有点“不够严肃”…

而基于规则的自然语言处理方法,主要思想是通过词汇、形式文法等制定的规则引入语言学知识,从而完成相应的自然语言处理任务。具体的理论与方法,并不是本文的重点,所以不再详细说明。从某种程度上来说,这种方式也是在试图模拟人类完成某个任务时的思维过程。

语言学家们认为,解决语言问题的关键是语法,试图以将所有语法输入给计算机从而让机器学会说人话,但他们似乎忘记了,语言的核心是语义,有限的符号和语法规则,能幻化出无限的语义可能性。试想如果这套方法管用,为什么你学了那么多年的英语语法,结果还是要靠各种翻译软件了。

但是语言学家们不信邪,于是在1950-1970近二十年间,与专家系统类似,语言学家也在用一种近乎愚公移山的方式,试图补全所有语法规则。但是,自然语言的复杂性却似乎超出了他们的想像。将庄子那句“吾生也有涯,而知也无涯。以有涯随无涯,殆已!”放在这里同样十分合适。

自然语言生成的研究几乎处于停滞状态,除了使用模板生成一些简单的语句,并没有什么太有效的解决办法。

1966年,美国科学院发表了报告《语言与机器》,全面否定机器翻译的可行性,并提出停止对机器翻译项目的资金支持的建议。但是由于机器翻译的需求场景真的很大,又没有可替代的技术,直至80年代之前,NLP的主要实现方式还是基于规则。

后来1988年,美国工程院院士贾里尼克在自然语言处理评测讨论会上的发言中说过这样的话:“ 我每开除一个语言学家, 语音识别系统的性能就会有所提高 本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】

推荐阅读
相关标签