Word Embedding 浅析

目录

1. 语言的算法表达

1.1 字典序

1.2 one-hot 编码

2. 深度学习简述

2.1 复习一下:待定系数法

2.2 复习一下:导数

2.3 深度学习的本质

3. embedding 的本质

3.1 word2vec

3.2 Embedding Layer

3.3 Embedding 的本质

3.4 Embedding 的意义


1. 语言的算法表达

1.1 字典序

文字对于计算机来说就是一个个 鬼画符,计算机看不懂,也无法直接处理

因此NLP第一步就是 :

文字 转换为计算机能看懂的 数字

 

传统计算机系统会将一个个汉字转换为特殊的字符串编码,如:utf-8、gb2312 等等

而在机器学习、深度学习领域,必须将文本描述为数字

其中最常用的方式就是将文本转换为字典序:

词典中的第几个字

如: Abandon 是英语字典中 第1个 单词 ,所以他的字典序就是 1

 

 

这样就已经迈出了让计算机看懂文字的第一步

但是对于机器学习尤其是深度学习来说,光将文本转换为字典序是不够的。

 

我们回头看看字典序都有哪些特征:

  • 本质是间隔为 1 的非连续变量

实际上离散变量并不是无法训练,如:cart 树、 xgboost 等都可以直接使用离散变量进行训练。主要问题在于文本字典序只代表各个文本之间的字典顺序,实际并无具体意义

 

  • 数值存在数学性质

很明显这种数字上的关系在很多场景下会带来大量的错误信息,因为每个字词本身在不同语境下都有着不同的意义

 


1.2 one-hot 编码

为了解决字典序所带来的问题,我们可以使用one-hot 编码。

one-hot 编码有个很装逼的中文名:独热编码,听起来高大上,实际一句话概括就是:

构建一个由 n个0组成的序列 (n是字典总数),其中将第字典序个0 换成 1

例如:n =3,则所有的字典序对应one-hot 编码有

1: 1 , 0 , 0
2: 0 , 1 , 0
3: 0 , 0 , 1

 

one-hot 编码的优势:

1. 从数值上每个字典序转换后都是 1,而且有且只有一个 1 ,避免字典序带来的数值问题

2. 本身是离散变量,但是被当作连续变量训练时,0~1 正好可以代表出现的概率


2. 深度学习简述

2.1 复习一下:待定系数法

在高中时,有一类任务:给定函数类型及部分特征,求解函数解析式。常用的一种方法就是待定系数法

2.2 复习一下:导数

 

 

2.3 深度学习的本质

给定大量级样本及模型(负杂函数),求解模型参数(函数解析式)

因为,深度学习和高中求函数解析式不同,我们并不知道真实样本之间的映射函数是一个什么形式(如:一元二次、二元一次)

深度学习就是,通过待定系数法,设一个复杂函数g(x) 及 函数衡量 g(x)与真实函数f(x) 之间差距的函数 loss( g(x),f(x))。

对于loss 而言,f(x) 是常数,g(x) 的参数 w 是自变量。

通过导数求解 loss()的最小值,就能找到 g(x) 的参数w,让g(x) 约等于真实的函数f(x)

简单来说深度学习,就是通过待定系数法、求导更新,最小化模型和真实世界模型的误差。其中模型就是:一大堆负杂的矩阵乘法、加法及变换

3. embedding 的本质

终于到了Embedding 本质这一part了

有一句话: 万物皆可embedding

3.1 word2vec

首先,看看nlp embedding 的鼻祖之一:word2vec (2013)

直观的来讲,word2vec 就是进一步在语言的算法表达上,做了一个映射任务:

语言 ——> 函数 ——> 目标任务

这个目标任务有两种做法 :

  1. skip-gram : 给定句子中的当前词,预测周围的词
  2. cbow : 给定句子中的周围词,预测当前词

其核心观点是在one-hot 的文本表征基础上,乘以一个参数矩阵,得到一个dim 长度的参数,这个就是embedding

因为该矩阵通过Skip-gram 或 CBOW 方式在大量语料中训练得到 , 所以,通过w2c训练得到的embedding 也就带有了相似词相近这么一个特点。

因为同义词、近义词可能在大量语料上有着相同的上下文,因此,训练后embedding 也相近

w2c 提供了一种有效的文本数值化方法,为深度学习发展提供了标准范式

w2c 的本质是通过embedding 的方式,将原有的one-hot 矩阵通过大量的语料扩展出了dim 维度的特征信息。

就像我们给大众店家打分一样,本来店家可能只是 某地区、第几家 店铺。

通过5个维度,给店家打了一个评分,这个评分一定意义上就能代表这个店家。

3.2 Embedding Layer

由w2c 思想发展而来,后续NLP 任务都加入了Embedding Layer 作为标准的做法。

因为embedding 和 one-hot 相比能够通过预训练带来更多的一些特征信息。

但是,我们想象中的embedding 和实际中的embedding 是有所不同的

  • 以为的embedding:

同w2c一样是一个矩阵乘法的操作,从one-hot 到 embedding ,把 vocab 降维到 dim

  • 实际的embedding:

直接通过字典序,通过mod 、div 分块直接从参数矩阵中查出embedding 向量。

 

画重点!!!

embedding 在NLP 的过程中,实际是一个升维的操作。

从不带有任何信息的字典序 (1维)升维到 dim 维 : 1 * 1 ---> 1 * dim

 

而在推荐、广告领域,通过one-hot 乘以参数矩阵,才是降维操作!!!

1 * feature_dim ---> 1 * dim

 

3.3 Embedding 的本质

总结一下

训练embedding 的本质是: 通过一系列目标任务,训练出一个由目标文本转换到特定向量的模型。不同的目标任务会带来不同的词向量意义,这一系列目标任务被称为预训练任务

embedding 的本质就是: 通过训练的方式 ,将一些低维、离散、不带任何意义的序号升华成带有特定任务性质的高维特征。如:火锅店到底好不好吃、贵不贵

 

因此说万物皆可embedding 的原因就是:基本上的任务及模型都可以视为广义的embedding

BERT、GPT-3 、ELMO 、Word2vec 都是embedding ,只是任务、模型不同罢了

embedding 不止单指Embedding Layer

 

3.4 Embedding 的意义

我觉得embedding 最主要的意义就是构建了一套 离散数据转换为连续数据的范式。

通过映射的方式,用连续不同维度的特征数据来表示一个真实世界中的实体。

平时评分是embedding ,高考通过分数筛选何尝不是embedding

有了embedding 才有后续一系列数学手段完成的 NLP 深度学习任务

 

今天只是剖析了最简单基础的Embedding 任务,但是还有大量Embedding 的未来值得我们去思考

 

如: GPT-3 的确大力出奇迹,但是GPT-3 之中有很多任务是并无训练数据的,GPT-3 是如何捕捉到其中的关联关系的。这个就和人类如果思考真实世界中实体关系一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值