如何表示词?
- one-hot 编码
- 优点:编码简单
- 缺点:编码太长,信息量低,无法体现词之间的相似性 使用稠密向量:
- 目标:相近的词具有相似的语义
一种直接的做法是,根据前 个词,预测第 个词的概率分布。
- 首先查表获得词向量,然后 concat 成一个长度为 的向量
- 拼接后送入 MLP,输出层大小等于词表大小
- 最后经过 softmax 层转换成概率分布
word2vec
CBOW
通过上下文预测中间词。将上下文词对应的词向量直接相加求平均。输出层替换成 Huffman 数构建的路由:
- 叶子节点为词
- 内部节点为神经元,含一个权重向量 ,输出词向量为 时,选择左子树的概率为 , 为 sigmoid
- 损失函数为选择到正确词的概率的负对数
- 越常用的词计算量越小
跳词模型
根据中心词预测上下文。输入中心词,查表得到词向量,然后和一个输出矩阵相乘,最后 softmax 2C 次得到输出。
二者都不关心顺序。
TextCNN
文本情感分类。
- 将文本映射为词向量
- 用多个不同大小的卷积核,宽度和词向量维度一致
- 然后再过一个池化层,取最大值,concat(这一步解决了变长问题)
- 最后过 MLP,映射到两个(或多个)输出