从NLP领会隐藏空间(Latent Space)
By 高焕堂 / AI建模师俱乐部会长
前言
*** 本文摘自 高焕堂 的下列书籍 ***
*** 以及北京【电子世界杂志】连载专栏 ***
一、从ML(机器学习)观念出发
• 然后将此道应用于眼前或未来的新事物上。
• 所以,ML的特长是:鉴往知来,瞬间洞察(眼前及未来)。
• 人们常常想知道一群X数据(以X[ ]表示),与另一群Y数据 (以Y[ ]表示)之间的关联性。
• 例如,X代表身体的可能病症,而Y代表可用的药物。人们 很想知道:如何「对症下药」,也就是药物与病症的疗效 关联性。
• 于是阅历更丰富的医师,将更熟谙其对症下药之道(潜藏之规律)了。
• 于是计算机机器就来观察、抽象,进而归纳出其中的规律。
• 这称之为:机器学习(ML:Machine Learning)。
• 于此,引进空间坐标的观念。从简单的空间对映(Space Mapping)出发。
• 其实,简单的空间,就是人人都知道的二维坐标平面和一 维坐标数线。
.
• 从X空间到Y空间映射(Mapping)就是把X空间的原始数据 (代表自然空间的实物)投影到Y空间。
• 就如同把故乡(实物空间)的照片(X空间原始数据)放到投影 机上投影到白板(Y空间)上。人们可以设定投射的角度、亮 度等参数;还可以加上过虑镜片等等。
• 典型的机器学习机制是:透过Wh权重将X对映到H隐藏空 间,然后透过Wo权重将H对映到Y空间。
• ML是采逐步修正法。就如同一个人,学习愈多、阅历愈丰 富,其心中领悟、沉淀之道就愈精致。
• 人们学习过程就是:博观而约取、厚积而薄发、学而时习之。
• 当ML从X映射到Y时,如果与历史数据Y有误差时,就会返 回来修正Wo和Wh值。
• 就得到新的Wo和Wh值了。
• 基于新的Wh和Wo权重,再进行第2回合的映射。
• 当ML从X映射到Y时(第2回合),如果与历史数据Y仍有误差 时,就再度返回来修正Wo和Wh值。 • 就得到更新的Wo和Wh值了。
• 基于新的Wh和Wo权重,再进行第3回合的映射。
• 当ML从X映射到Y时(第3回合),如果与历史数据Y仍有误差 时,就再度返回来修正Wo和Wh值。 • 就得到更新的Wo和Wh值了。
• 当ML从X映射到Y时(第4回合),如果与历史数据Y的误差已 经足够小了,就结束学习过程(毕业)了。
• 就得到很棒的Wo、Wh和隐藏空间H值了。
• 当ML从X映射到Y时(第4回合),如果与历史数据Y的误差已 经足够小了,就结束学习过程(毕业)了。
• 就得到很棒的Wo、Wh和隐藏空间H值了。
二、ML基础技能 --似曾相识
• 兹以NLP(自然语言处理)为例
• 首先从<相似度>出发…
• 例如上图里,Mike最满意微风超市里的Apple,评等为:7 分。而他却最不喜欢这里的Orange,评级最低:0分。
• 人们都可以一眼看出来:p1与P2的偏好相似性很高。
• 而p3与p4的偏好相似性很高。一样地,AI也能计算出他们 之间的相似度。请您按下<Pearson相似度>:
• 上图里的Pearson相似度的值是在[-1, 1]之间。
• 1表示最大的正相关性(即相似度最高)。
• 反之,-1表示最大的反相关性(即相似度最低)。
• 例如,p0与p1的相似度很高:0.97。
• 而p0与p2的相似度很低:-0.82。
• 刚才的大数据里,是每一个对3项水果都有评分。比较容易 看出相似度。
• 然而经常情形是,当他(她)没买过某种水果,就不会给予 评分。如下图:
• 上图里,Lily没有在我们商店里买过橘子和香蕉,所以就没有 对这两项评分了。
• 这时,ML也能够计算出那些人的偏好是比较相似的。相似度 高的一群人,具有同样的偏好(同好),就通称为:邻居。
• 请您按下<Pearson相似度>,就会计算出相似度:
• 例如红色框里,p0与p1的相似度最高。p0与p2的相似度 稍微低一些。而p0与p3的相似度最低。
• 请您按下<找邻居>,就会找出各人的邻居:
• 在上图红色框里,显示出来了,p0有两位很接近的邻居: p1和p2。
• 于是,ML就可以依据p1与p2的偏好来预估Lily(p0)的未知偏 好。 • 例如,p1对橘子的评分为 1,就推估:p0对橘子的评分也可 能很低。
• 再如, p2对香的评分为 5,就推估:p0对香蕉的评分也会 很高。
三、体验NLP应用
--词(Word)相似度
• 然后把各单词出现的频率(次数),记录于表格里:
• 按下<计算相似度>:
• 目前在这空间里,其3个向量:
• 把这3个向量的坐标呈现于Excel表格里:
• 请按下<Cosine相似度>:
• Cosine相似度是比较向量之间的夹角大小。
• 两个向量之间的夹角愈小,表示其相似度愈高。
• 下图可以看到,v0与v1之间的夹角(蓝色)最小。所 以相似度最高。
• 其次是v1与v2的夹角。
• 而v0与v2之间的夹角最大,表示其相似度愈低。
One-hot向量编码
• 这称为:单一编码 (One-hot-encoding)。
• 又翻译为:独热编码。
• 如果您只有2个单词(Word),例如:<男>和<女>。
• 就可以使用向量[1, 0]代表<男>,并且使用向量[0, 1]代表< 女>。
• 例如,在一个向量空间里,这两个向量表示为:
• 如果您只有3个单词(Word),例如:<公鸡>、<母鸡>和< 小鸡>。
• 就可以使用向量[1, 0, 0]代表<公鸡>,并且使用向量[0, 1, 0] 代表<母鸡>,以及使用向量[0, 0, 1]代表<小鸡>。
• 于是,在一个向量空间里,这3个向量表示为:
• 从夹角来看,这3个向量互为垂直,夹角皆为90度,其 cosine相似度都是0。
• 例如,有4个句子:
• 这4个句子里,总共享到下列5个单词 [ I, like, apple, love, banana]。
• 就可以使用向量[1, 0, 0, 0, 0]代表”I”。并使用向量 [0,1,0,0,0]代表”like”。以此类推,得到下表:
• 于是,在一个向量空间里,这3个向量表示为:
• 接下来,就使用这些向量来表示刚才的4个句子,如下:
• 请按下<Cosine相似度>:
• 于是显示出来了,s0与s1、 s1的相似度普通。而s0与 s3的相似度较小。
• 由于这位人类儿童领悟到”like”和“love”这两个词在妈 妈心中几乎是<同义词>。
• 于是人类儿童将会听出来:
--- 高相似度的句子是:s0与s2,以及s1与s3。
--- 普通相似度的句子:s0与s1,以及s2与s3。
• 所以,上述的句子含意相似度的做法,仍是有缺陷的。
四、ML派上用场
-- 隐藏空间的神奇
-- 修正单词的向量
-- 更能判断句子含意相似度
• 于是设计AI机器学习的模型(Model)如下:
• ML是采逐步修正法。就如同一个人,学习愈多、阅历愈丰 富,其心中领悟、沉淀之道就愈精致。
• 人们学习过程就是:博观而约取、厚积而薄发、学而时习之。
• 当ML从X映射到Y时,如果与历史数据Y有误差时,就会返 回来修正Wo和Wh值。
• 就得到新的Wo和Wh值了。这称为:学习一回合。
• 请按下<学习1回合>,如下:
• 请您观察H隐藏空间,”like”的向量是[0.508, -0.07]。
• 而且”love”的向量是[-0.49, -0.47]。如下图所示:
• 可以看出来,这两个向量的夹角很大,表示相似度很低。
• 显然这AI还没有学习到妈妈的心意。
• 于是,继续努力,学而时习之。
• 请您按下<学习(100回合),此时修正了Wh和Wo权重,也改 变了隐藏空间里的向量,如下:
• 请您观察H隐藏空间,”like”的向量是[0.596, -0.91]。
• 而且”love”的向量是[-0.12, -0.18]。如下图所示:
• 可以看出来,这两个向量的夹角已经缩小了。表示AI已经有 一些领悟到妈妈的心意:”like”与”love”含意有些相似。
• 于是,继续努力,学而时习之。
• 请您按下<学习(1000回合),此时修正了Wh和Wo权重,也改变了隐藏空间里的向量,如下:
• 请您观察H隐藏空间,”like”的向量是[0.138, -0.48]。
• 而且”love”的向量是[-0.097, -0.49]。如下图所示:
• 可以看出来,这两个向量的夹角已经很小了。表示AI已经充 分领悟到妈妈的心意:”like”与”love”含意非常相似。
• 由于夹角已经足够小了。就毕业了。
• 接下来,就取出Wh权重,来进行句子的涵意相似度分析。
• 于是就可以利用这个Wh来将X空间里的5个单词向量,映射 到H隐藏空间,得出5个H隐藏空间的向量。
• 请按下<映射到H空间>:
• 于是得到了5个新向量。就可以取代X空间里的原本向量。
• X空间里的原本向量是One-hot编码,没有表达出妈妈的心意 (“like”与“love”是同义词)。
• 经由ML机器学习之后,得出H空间的新向量:
• 由于这H空间里的“like”与“love”代表向量的夹角非常 小,表示其含义非常接近于同义词了。
• 接下来,就拿这H空间里的新向量,来评估句子的相似度。
• 于是就可以利用这个H空间里的5个单词向量,来计算出这4 个句子的相似度了。
• 请按下<Vector相似度>:
• 恭喜,圆满完成了ML与NLP的亲密结合了。
• 由于“like”与“love”向量非常相似,因而
句子“I like apple”涵义非常接近于
句子 ”I love apple”。所以s0与s2的相似度极高。
• 同理,
句子“I like banana”涵义非常接近于
句子 ”I love banana”。所以s1与s3的相似度极高。