李宏毅2020机器学习 【学习笔记】 P23 Unsupervised Learning:Word Embedding

目录

Word Embedding

How to exploit context? 如何利用上下文

Count based 基于数量的

Prediction based 基于预测的

为什么可以这样做呢?

为什么要共享参数?

Train


感谢B站up主搬运的课程:

【李宏毅2020机器学习深度学习(完整版)国语】 https://www.bilibili.com/video/BV1JE411g7XF/?share_source=copy_web&vd_source=262e561fe1b31fc2fea4d09d310b466d


Word Embedding

  • 一开始我们用语义向量来表示单词,每一维表示一个单词,但这样无法知道各个词之间的关系,此即 1-of-N Encoding ,各个单词之间是独立的~
  • 我们可以用 Word Class 对各个单词进行分类,但类与类之间仍有一些联系(比如动物与植物都是生物,动作不是;类一与类二都与动物有关,植物与动物没有关系)无法体现~
  • 那么我们就应该将他们 project 映射到一个高维空间中,就如图中右上角的二维空间(横轴将行为与生物区分开;纵轴则将与动物有关与无关的词分开),此即 Word Embedding 

机器学习 Word Embedding 的过程就是一个 Unsupervised Learning 的过程,因为我们手上仅有一大堆的文本作为输入,我们并没有提供真正的 Word Embedding 应该长什么样。

机器需要通过阅读大量的文本,通过 context 上下文来学出 Word Embedding ~

How to exploit context? 如何利用上下文

Count based 基于数量的

如果单词 w_i 和 w_j 常常一起出现,那么在多维空间中的这两个单词的向量就会靠的更近。

Prediction based 基于预测的

要做的就是预测下一个词

把单词 w_{i-1} 用 1-of-n 编码表示,并作为输入放到 NN 中,让输出是下一个位置 w_i 出现每一个单词的几率,把 first hidden layer 取出,我们便可将 z_1 、 z_2 ……作为维度称为我们要的 Word Embedding~

为什么可以这样做呢?

因为在这个 prediction model 中,我们预测的是下一个单词出现的概率,那么在 hidden layer 中学出来的就是各个 word 的特征,那这样放到多维空间中准没错。

我们可以对上面这样的方法进行拓展,将前面的多个词一同作为输入,当然,连接到同一个 z_i 上的参数必须是共享的

为什么要共享参数?

一个很直觉、很合理的解释:

来自2个位置前的 "apple" 和来自1个位置前的 "apple" ,如果不共享参数的话,这显然是不同的输入,会导致 train 出的神经元不同(或是权重, 1\times w = z ),这自然是不合理的,一个单词不应该映射出不一样的多维空间向量。

实操中做参数更新时,将两参数初始化为相同的值,在 Gradient Descent 时将所有梯度一并减去即可。

Train

左边是我们收集到的数据,就让机器去最小化预测模型的交叉熵即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值