coursera deeplearning
1、Word Embeddings 词嵌入
为什么用词嵌入?
one-hot向量无法表示各个词语之间的关系,因此将词语的one-hot向量映射到维度更低的word embedding词嵌入向量,关系相近的词,在词嵌入向量空间中的位置也相对接近,利用t-SNE算法可以将高维向量映射到2维空间,可以直观地看出各个词语之间的分布关系
可以通过大量的文本语料库学习到词嵌入,或者下载其他人训练好的词嵌入,将获得的词嵌入矩阵应用到自己的具体的训练任务当中,特别是自己的数据集比较少的时候(除非自己的数据集很大,否则一般不会微调词嵌入),这就是学习迁移
analogy reasoning 类比推理
可以利用词嵌入向量进行类比推理,常用的相似函数有余弦函数cos(x)
image.png
Embedding Matrix 词嵌入矩阵
image.png
E : 词嵌入矩阵
O : 词的one-hot编码
e : 词嵌入向量
2、Learning Word Embeddings 通过训练得到嵌入矩阵
一、普通方法
在一句话里面由前几个词经过嵌入矩阵和神经网络后预测输出下一个词进行训练
image.png
二、skip-gram 与 cbow
skip-gram
根据句子上下文 context 的一个词语预测目标 target
image.png
θt : 与词语t有关的需要优化的参数
Hierarchical Softmax 层次Softmax (理解不完全)
为了解决计算量大的问题,引入Hierarchical Softmax 层次softmax , 它将词语根据使用频率进行哈夫曼编码形成哈夫曼树,在哈夫曼树的节点中有参数θ,节点输出为sigmoid(θx),根据目标词语编码,找到目标词语的路径,每段路径概率相乘得到目标词语概率
Negative Sampling 负采样
为了解决softmax计算量大的问题,除了Hierarchical Softmax ,也可以使用Negative Sampling 负采样方法,根据上下文context词语选出需要预测的词语target,得到正采样,然后通过随机或者根据文本词语分布选出其他 k 个负采样,一共 k+1 个样本,即一个正样本, k 个负样本。然后根据公式
image.png
θt : 正负样本对应的参数
ec : 上下文对应的词嵌入
σ : sigmoid函数
只对 k+1 个正负样本进行训练
cbow与skip-gram
image.png
三、GloVe Word Vectors
image.png
Xij : 在单词 j 的周围出现单词 i 的频率
ej : 单词 j 的词嵌入向量
θi : 单词 i 的参数,作用和 ei 是对称的
b : 偏执
与skip-gram&Cbow不同的是GloVe中的词嵌入向量不具有可解释性
3、应用词嵌入
一、Sentiment Classification 情绪分类
image.png
二、Debiasing Word Embeddings 词嵌入偏见消除
找到偏差方向,中立化
网友评论