词汇表征
- vocabulary + one-hot representation
- 词汇表:V = [a, an, …, zulu,
] - 表征:“an” = [0, 1, …, 0, 0]
- 词汇表:V = [a, an, …, zulu,
- featureized representation: word embedding
- 表征:[feature1, feature2, …]对应一个词(好处是可以计算各个词之间的距离,识别相似的词)(如何将词映射为一个特征向量?:是学来的)
- word embedding含义是,将各个词embed嵌入到n维特征空间中去
- 有点类似人类识别中,将图像encoding
- cosine similarity $sim(u,v) = \frac{u^{T}v}{| u |_{2} | v |_{2}}$
word embedding 学习
word2vec: skip gram
构造一个预测(或者映射)模型,输入一个词context(one-hot),预测对应到另一个词target(one-hot)
- 输入context、输出target的配对关系(间隔),是在一个句子中,在一定正负范围内,随机取的
- 而context的选择,则需要特别设计,避免频繁sample无意义的词
目标是通过训练这个映射关系,学习到embedding matrix $E = [e_{1}, e_{2}, e_{3}, …]$
- $o_{context}$是context的one-hot表示
- $E$的各列,为词汇表中各个词的embedding;各行则为embedding的各个特征维度
- $Eo_{content}$相当于从$E$中提取content的embedding
词汇表较大时,skip gram中的softmax,分母求和,会有计算的大的问题
negative sampling
构造一个预测(或者映射)模型,输入一个词context(one-hot),预测对于一个词target是否存在对应(每个target一个二分类问题)
- 输入context、判断目标target的配对关系(间隔),是在一个句子中,在一定正负范围内,随机取的
- 而context、target的选择,则需要特别设计,避免频繁sample无意义的词
- 使用vocabulary_size个二分类器,代替softmax,提升计算性能
- 训练数据每次构造,从句子中抽取一对context、target(positive sampling),在从词汇表中随机为context抽取k个target(negative sampling)
- 训练时,上述构造的k+1对context、target,训练k+1个分类器