AI 建模师 素养手冊(5)

从NLP领会隐藏空间(Latent Space)

By 高焕堂 / AI建模师俱乐部会


文章目录

  • 前言
  • 一、从ML(机器学习)观念出发
  • 二、ML基础技能:似曾相似
  • 三、体验NLP应用
  • 四、ML派上用场:隐藏空间的神
  • 总结


前言

*** 本文摘自 高焕堂 的下列书籍 ***

AI 建模师 素养手冊(5)_第1张图片

 *** 以及北京【电子世界杂志】连载专栏 ***


一、从ML(机器学习)观念出发

AI 建模师 素养手冊(5)_第2张图片

• ML从历史数据中学习,增广阅历,萃取经验, 沉淀其精 华,领悟其中之道,谓之「潜藏之规律」。

• 然后将此道应用于眼前或未来的新事物上。

• 所以,ML的特长是:鉴往知来,瞬间洞察(眼前及未来)。

AI 建模师 素养手冊(5)_第3张图片

 • 人们常常想知道一群X数据(以X[ ]表示),与另一群Y数据 (以Y[ ]表示)之间的关联性。

• 例如,X代表身体的可能病症,而Y代表可用的药物。人们 很想知道:如何「对症下药」,也就是药物与病症的疗效 关联性。

• 于是阅历更丰富的医师,将更熟谙其对症下药之道(潜藏之规律)了。

AI 建模师 素养手冊(5)_第4张图片

 • 于是计算机机器就来观察、抽象,进而归纳出其中的规律。

• 这称之为:机器学习(ML:Machine Learning)。

AI 建模师 素养手冊(5)_第5张图片

AI 建模师 素养手冊(5)_第6张图片

AI 建模师 素养手冊(5)_第7张图片

AI 建模师 素养手冊(5)_第8张图片

AI 建模师 素养手冊(5)_第9张图片

AI 建模师 素养手冊(5)_第10张图片

AI 建模师 素养手冊(5)_第11张图片

 • 于此,引进空间坐标的观念。从简单的空间对映(Space Mapping)出发。

• 其实,简单的空间,就是人人都知道的二维坐标平面和一 维坐标数线。

.

AI 建模师 素养手冊(5)_第12张图片

• 从X空间到Y空间映射(Mapping)就是把X空间的原始数据 (代表自然空间的实物)投影到Y空间。

• 就如同把故乡(实物空间)的照片(X空间原始数据)放到投影 机上投影到白板(Y空间)上。人们可以设定投射的角度、亮 度等参数;还可以加上过虑镜片等等。

AI 建模师 素养手冊(5)_第13张图片

• 典型的机器学习机制是:透过Wh权重将X对映到H隐藏空 间,然后透过Wo权重将H对映到Y空间。

AI 建模师 素养手冊(5)_第14张图片

 • ML是采逐步修正法。就如同一个人,学习愈多、阅历愈丰 富,其心中领悟、沉淀之道就愈精致。

• 人们学习过程就是:博观而约取、厚积而薄发、学而时习之。

AI 建模师 素养手冊(5)_第15张图片

• 当ML从X映射到Y时,如果与历史数据Y有误差时,就会返 回来修正Wo和Wh值。

• 就得到新的Wo和Wh值了。

AI 建模师 素养手冊(5)_第16张图片

 • 基于新的Wh和Wo权重,再进行第2回合的映射。

AI 建模师 素养手冊(5)_第17张图片

• 当ML从X映射到Y时(第2回合),如果与历史数据Y仍有误差 时,就再度返回来修正Wo和Wh值。 • 就得到更新的Wo和Wh值了。

AI 建模师 素养手冊(5)_第18张图片

 • 基于新的Wh和Wo权重,再进行第3回合的映射。

AI 建模师 素养手冊(5)_第19张图片

• 当ML从X映射到Y时(第3回合),如果与历史数据Y仍有误差 时,就再度返回来修正Wo和Wh值。 • 就得到更新的Wo和Wh值了。

AI 建模师 素养手冊(5)_第20张图片

 • 当ML从X映射到Y时(第4回合),如果与历史数据Y的误差已 经足够小了,就结束学习过程(毕业)了。

• 就得到很棒的Wo、Wh和隐藏空间H值了。

AI 建模师 素养手冊(5)_第21张图片

 • 当ML从X映射到Y时(第4回合),如果与历史数据Y的误差已 经足够小了,就结束学习过程(毕业)了。

• 就得到很棒的Wo、Wh和隐藏空间H值了。

AI 建模师 素养手冊(5)_第22张图片

二、ML基础技能   --似曾相识

• 兹以NLP(自然语言处理)为例

• 首先从<相似度>出发…

AI 建模师 素养手冊(5)_第23张图片

• 例如上图里,Mike最满意微风超市里的Apple,评等为:7 分。而他却最不喜欢这里的Orange,评级最低:0分。

• 人们都可以一眼看出来:p1与P2的偏好相似性很高。

• 而p3与p4的偏好相似性很高。一样地,AI也能计算出他们 之间的相似度。请您按下

AI 建模师 素养手冊(5)_第24张图片

• 上图里的Pearson相似度的值是在[-1, 1]之间。

• 1表示最大的正相关性(即相似度最高)。

• 反之,-1表示最大的反相关性(即相似度最低)。

• 例如,p0与p1的相似度很高:0.97。

• 而p0与p2的相似度很低:-0.82。

• 刚才的大数据里,是每一个对3项水果都有评分。比较容易 看出相似度。

• 然而经常情形是,当他(她)没买过某种水果,就不会给予 评分。如下图:

AI 建模师 素养手冊(5)_第25张图片

 • 上图里,Lily没有在我们商店里买过橘子和香蕉,所以就没有 对这两项评分了。

• 这时,ML也能够计算出那些人的偏好是比较相似的。相似度 高的一群人,具有同样的偏好(同好),就通称为:邻居。

• 请您按下,就会计算出相似度:

AI 建模师 素养手冊(5)_第26张图片

 • 例如红色框里,p0与p1的相似度最高。p0与p2的相似度 稍微低一些。而p0与p3的相似度最低。

• 请您按下<找邻居>,就会找出各人的邻居:

AI 建模师 素养手冊(5)_第27张图片

• 在上图红色框里,显示出来了,p0有两位很接近的邻居: p1和p2。

• 于是,ML就可以依据p1与p2的偏好来预估Lily(p0)的未知偏 好。 • 例如,p1对橘子的评分为 1,就推估:p0对橘子的评分也可 能很低。

• 再如, p2对香的评分为 5,就推估:p0对香蕉的评分也会 很高。

三、体验NLP应用

--词(Word)相似度

--句(Sentence)相似度
• 例如,有4个句子:

AI 建模师 素养手冊(5)_第28张图片

• 这4个句子里,总共享到下列7个单词 [ I, like, apple, but, don’t, banana, you]。
• 如下图所示:

AI 建模师 素养手冊(5)_第29张图片

 • 然后把各单词出现的频率(次数),记录于表格里:

AI 建模师 素养手冊(5)_第30张图片

• 按下<计算相似度>:

AI 建模师 素养手冊(5)_第31张图片

• 于是显示出来了,s0与s1相似度不高。而s0与s2、 s3 的相似度普通。
其中值得注意的是:
• 这s2与s3的相似度非常高。但是,从句子的涵意来看,它们 之间的涵意却完全不相同。
• 这意味着,在NLP领域里,使用这样的方式来计算句子之间 含意的相似度,这方法是有缺陷的。
向量表示法
• 于是,就来介绍另一种方法,来表达单词和句子。
• 这称为:向量(Vector)表示法。
• 首先来看看如何计算向量的相似度。基于向量的相似度计算 方法有很多种,在这里我们先介绍:Cosine相似度,
• 例如,在一个向量空间里:

AI 建模师 素养手冊(5)_第32张图片

 • 目前在这空间里,其3个向量:

AI 建模师 素养手冊(5)_第33张图片

 • 把这3个向量的坐标呈现于Excel表格里:

AI 建模师 素养手冊(5)_第34张图片

• 请按下

AI 建模师 素养手冊(5)_第35张图片

• Cosine相似度是比较向量之间的夹角大小。

• 两个向量之间的夹角愈小,表示其相似度愈高。

• 下图可以看到,v0与v1之间的夹角(蓝色)最小。所 以相似度最高。

AI 建模师 素养手冊(5)_第36张图片

 • 其次是v1与v2的夹角。

• 而v0与v2之间的夹角最大,表示其相似度愈低。

One-hot向量编码

• 这称为:单一编码 (One-hot-encoding)。

• 又翻译为:独热编码。

• 如果您只有2个单词(Word),例如:<男>和<女>。

• 就可以使用向量[1, 0]代表<男>,并且使用向量[0, 1]代表< 女>。

• 例如,在一个向量空间里,这两个向量表示为:

AI 建模师 素养手冊(5)_第37张图片

 • 如果您只有3个单词(Word),例如:<公鸡>、<母鸡>和< 小鸡>。

• 就可以使用向量[1, 0, 0]代表<公鸡>,并且使用向量[0, 1, 0] 代表<母鸡>,以及使用向量[0, 0, 1]代表<小鸡>。

• 于是,在一个向量空间里,这3个向量表示为:

AI 建模师 素养手冊(5)_第38张图片

 • 从夹角来看,这3个向量互为垂直,夹角皆为90度,其 cosine相似度都是0。

• 例如,有4个句子:

AI 建模师 素养手冊(5)_第39张图片

 • 这4个句子里,总共享到下列5个单词 [ I, like, apple, love, banana]。

• 就可以使用向量[1, 0, 0, 0, 0]代表”I”。并使用向量 [0,1,0,0,0]代表”like”。以此类推,得到下表:

AI 建模师 素养手冊(5)_第40张图片

 • 于是,在一个向量空间里,这3个向量表示为:

AI 建模师 素养手冊(5)_第41张图片

• 接下来,就使用这些向量来表示刚才的4个句子,如下:

AI 建模师 素养手冊(5)_第42张图片

• 请按下

 • 于是显示出来了,s0与s1、 s1的相似度普通。而s0与 s3的相似度较小。

AI 建模师 素养手冊(5)_第43张图片

• 由于这位人类儿童领悟到”like”和“love”这两个词在妈 妈心中几乎是<同义词>。

• 于是人类儿童将会听出来:

 --- 高相似度的句子是:s0与s2,以及s1与s3。

 --- 普通相似度的句子:s0与s1,以及s2与s3。

• 所以,上述的句子含意相似度的做法,仍是有缺陷的。

于是,AI机器学习就可以来帮忙了。

AI 建模师 素养手冊(5)_第44张图片

四、ML派上用场

-- 隐藏空间的神奇

-- 修正单词的向量

-- 更能判断句子含意相似度

AI 建模师 素养手冊(5)_第45张图片

AI 建模师 素养手冊(5)_第46张图片

AI 建模师 素养手冊(5)_第47张图片

AI 建模师 素养手冊(5)_第48张图片

AI 建模师 素养手冊(5)_第49张图片

AI 建模师 素养手冊(5)_第50张图片

AI 建模师 素养手冊(5)_第51张图片

• 于是设计AI机器学习的模型(Model)如下:

AI 建模师 素养手冊(5)_第52张图片

AI 建模师 素养手冊(5)_第53张图片

 • ML是采逐步修正法。就如同一个人,学习愈多、阅历愈丰 富,其心中领悟、沉淀之道就愈精致。

• 人们学习过程就是:博观而约取、厚积而薄发、学而时习之。

AI 建模师 素养手冊(5)_第54张图片

 • 当ML从X映射到Y时,如果与历史数据Y有误差时,就会返 回来修正Wo和Wh值。

• 就得到新的Wo和Wh值了。这称为:学习一回合。

• 请按下<学习1回合>,如下:

AI 建模师 素养手冊(5)_第55张图片

 • 请您观察H隐藏空间,”like”的向量是[0.508, -0.07]。

• 而且”love”的向量是[-0.49, -0.47]。如下图所示:

AI 建模师 素养手冊(5)_第56张图片

 • 可以看出来,这两个向量的夹角很大,表示相似度很低。

• 显然这AI还没有学习到妈妈的心意。

• 于是,继续努力,学而时习之。

• 请您按下<学习(100回合),此时修正了Wh和Wo权重,也改 变了隐藏空间里的向量,如下:

AI 建模师 素养手冊(5)_第57张图片

 • 请您观察H隐藏空间,”like”的向量是[0.596, -0.91]。

• 而且”love”的向量是[-0.12, -0.18]。如下图所示:

AI 建模师 素养手冊(5)_第58张图片

 • 可以看出来,这两个向量的夹角已经缩小了。表示AI已经有 一些领悟到妈妈的心意:”like”与”love”含意有些相似。

• 于是,继续努力,学而时习之。

• 请您按下<学习(1000回合),此时修正了Wh和Wo权重,也改变了隐藏空间里的向量,如下:

AI 建模师 素养手冊(5)_第59张图片

 • 请您观察H隐藏空间,”like”的向量是[0.138, -0.48]。

• 而且”love”的向量是[-0.097, -0.49]。如下图所示:

AI 建模师 素养手冊(5)_第60张图片

 • 可以看出来,这两个向量的夹角已经很小了。表示AI已经充 分领悟到妈妈的心意:”like”与”love”含意非常相似。

• 由于夹角已经足够小了。就毕业了。

• 接下来,就取出Wh权重,来进行句子的涵意相似度分析。

AI 建模师 素养手冊(5)_第61张图片

AI 建模师 素养手冊(5)_第62张图片

AI 建模师 素养手冊(5)_第63张图片

AI 建模师 素养手冊(5)_第64张图片

 • 于是就可以利用这个Wh来将X空间里的5个单词向量,映射 到H隐藏空间,得出5个H隐藏空间的向量。

• 请按下<映射到H空间>:

AI 建模师 素养手冊(5)_第65张图片

 • 于是得到了5个新向量。就可以取代X空间里的原本向量。

• X空间里的原本向量是One-hot编码,没有表达出妈妈的心意 (“like”与“love”是同义词)。

• 经由ML机器学习之后,得出H空间的新向量:

AI 建模师 素养手冊(5)_第66张图片

• 由于这H空间里的“like”与“love”代表向量的夹角非常 小,表示其含义非常接近于同义词了。

• 接下来,就拿这H空间里的新向量,来评估句子的相似度。

AI 建模师 素养手冊(5)_第67张图片

AI 建模师 素养手冊(5)_第68张图片

 • 于是就可以利用这个H空间里的5个单词向量,来计算出这4 个句子的相似度了。

• 请按下

AI 建模师 素养手冊(5)_第69张图片

 • 恭喜,圆满完成了ML与NLP的亲密结合了。

• 由于“like”与“love”向量非常相似,因而  

        句子“I like apple”涵义非常接近于

        句子 ”I love apple”。所以s0与s2的相似度极高。

AI 建模师 素养手冊(5)_第70张图片

• 同理, 

        句子“I like banana”涵义非常接近于  

        句子 ”I love banana”。所以s1与s3的相似度极高。

AI 建模师 素养手冊(5)_第71张图片


总结

欢迎继续阅读 <第 6 集>
*** *** *** *** *** ***
Thanks

你可能感兴趣的:(AI文章,python,人工智能)