8.1 One-hot表示为什么不够
词表有10000个词时,One-hot为每个词创建10000维向量,只有对应位置为1,其余为0。它能唯一标识词,却不能自然表达"电梯"和"升降设备"的相近关系。词表越大,表示越稀疏。
Embedding把离散ID映射为较低维的稠密向量,向量值通过学习获得。每个坐标通常不能直接解释成"紧急程度"或"设备类型";语义分布在多维组合中,不是一本逐维写好含义的词典。
8.2 Word2Vec的核心直觉
如果两个词经常出现在类似上下文中,它们可能具有相似的用法。CBOW利用周围词预测中心词,Skip-gram利用中心词预测周围词。通过这类训练目标,模型学习到可用于相似度等任务的词表示。
静态词向量通常为一个词提供一份表示,所以"苹果"的水果义和品牌义会混在一起。上下文化模型则根据当前句子生成表示,让同一个Token在不同语境中得到不同向量。
8.3 神经网络怎样做文本分类
一种简单结构是:Token ID进入Embedding层,得到一串向量;对向量做平均池化,得到句子向量;经过线性层和Softmax,输出类别分布。训练时根据正确类别计算损失,让各层参数共同调整。
平均池化容易丢失顺序,例如"不是坏了"和"坏了"可能较难区分。更复杂模型的价值之一,就是更好地表示上下文、组合关系和位置,而不只是扩大向量维数。
8.4 CNN、RNN、LSTM和GRU
文本CNN用局部窗口捕捉短语模式,有点像自动学习的N-gram特征提取器。RNN按顺序读取Token,用隐藏状态传递历史信息;长序列中,训练可能受到梯度消失或爆炸等问题影响。
LSTM和GRU通过门控机制控制信息的保留、更新与遗忘,缓解普通RNN的长期依赖困难,但不能保证任意远距离的信息都被完好保留。序列步骤之间的依赖也会限制训练并行程度。
8.5 Seq2Seq与注意力的出现
Seq2Seq用编码器表示输入,再由解码器生成输出,例如把中文翻译成英文。早期结构若把整个输入压进单个固定向量,长句信息容易受限。注意力让解码器在生成不同位置时,能够重新访问输入的不同部分。
把注意力想成"每一步给相关内容不同权重"是一个有用起点,但不要把它等同于人类专注。权重是根据训练目标学出的数值,并不自动等于因果解释。
8.6 本章检查点
词向量与句向量有什么区别?前者表示词或Token,后者表示整段文本。不能随便把某个模型的第一个Token向量当作高质量检索向量;需要符合该模型的训练方式、池化方式及使用约定。