1、Word2Vec
1.1 one-hot encoding的缺陷
- 1)稀疏的表示方法,维度太高
- 2)无法表达词的相似性
- 3)表达能力弱(泛化能力)
通过余弦相似度可以表达句子之间的相关性
1.2 词向量
分布式的表示法:维度远小于one-hot encoding
在semantic space希望把语义相近的词聚在一起
3、Global generation of distributed representation
泛化
语义相关
capacity
Dense 稠密
在一个文章里,离得越近的词相似度越高
4、Skip-Gram model
4.1 Introduction
- CBOW,根据两边的单词预测中间的
- Skip-gram:根据一个单词预测两边的单词
4.2 Formulation
- 给定working的情况下,出现前后四个单词的条件概率相乘越大越好
2) 进行两次循环,第一次遍历text中所有的词,第二次遍历以词为中心周围的几个词,使得几个词在给定中心词的条件下,条件概率的最大化。
5、语料库
定义两个词向量矩阵分别储存中心词和上下文的词
如何表达条件概率 P ( c ∣ w i , θ ) P(c|w_i,\theta) P(c∣wi,θ)
内积表示两个单词的相似度
C prime:代表的是整个词库
扫描二维码关注公众号,回复: 12566755 查看本文章
简化后的的formulation:
词库的词可能会有很多,为了简化这个流程,提出了两个方法:
- 1、negative sampling:只考虑其中的一部分
- 2、hierarchical softmax
6、回顾Skip-Gram训练的过程
7、Skip-Gram另一种目标函数的建立
- 为了减少对于计算语料库中每个词与中心词内积相似度的时间复杂度,将问题变成二分类问题
- 如果w1和w3,出现在上下文中,记做class 1,如果没有出现在上下文中,记做class 0 。 通过优化使得模型分类能力变强。对于概率可以使用sigmoid函数和logistic回归
8、Negative Sampling
为了减小负样本计算的复杂度,只去采样一部分负样本
SG with Negative Sampling
9、评估词向量
Method 1: 可视化
Method 2: compute similarity
计算两个词的相似度再与人工标记的相似度做对比来评估好坏。
Method 3: Analogy 类比
10、词向量在推荐系统中的应用
离着比较近的单词有更强的相关性
假设:用户短时间内看的产品是类似的产品, 把用户看到的一系列产品当作文本的上下文进行训练
- 协同过滤
- 基于内容的推荐:把产品量化为向量,描述产品的各个特性(特征工程)
不做特征工程,直接做embedding。
第一个修改:
- 将用户连续看到的一些房屋信息作为相关信息,作为“中心词”的房屋较远的房屋信息作为不相关的。不断优化skip-gram模型。
- 与传统模型不同的是,对于被用户购买的房屋信息使它作为global context,把它作为其他房屋信息的上下文
第二个修改:
正样本基本类型相同,负样本的类型会有很大的不同。
目标:要求负样本之间也有一定的相关性:
skip-gram 的缺点
- 1、没有上下文的考虑:在不同语境下都是相同的词向量
- 2、窗口长度有限
- 3、无法考虑全局
- 4、无法有效学习低频词的向量
- 5、未登录值:在测试集中出现,没有在训练集出现 OOV
- 6、可解释性不够
- 7、针对一个单词学习到一个fixed vector,不具备uncertain/probabilistic,最好每个单词在不同文章中的意义是存在概率分布的
11、Fast text/ Subword embedding
11.1 如何训练
如果看到了新出现的词汇可以忽略掉
或者使用subword information
把单词切分成更小的模块
character N-gram
11.2 适用场景
- 某些语言具有形态特征 ing,es,ed,英文,意大利语,德语
- n可以取3-6,可以同时考虑n=3,n=4,n=5,将多种情况的embedding累加
12、ELMO
12.1 Introduction
12.2 Elmo at Glance
- multiple layers
- language model
对于自然语言:
在训练过程中学习到每个单词的embedding
在已知模型参数时,
红色的部分是关于每次输入的动态的对于back的词性和词意的embedding叠加
13、词的表示总结—— Category of Word Representation