第14章 自然语言处理:把“语言”翻译成“向量”

人与人用语言交流,机器与向量交流。本章要把“语言”翻译成“向量”,再让向量学会“理解”语言。


14.1 词嵌入:把单词扔进向量空间

14.1.1 独热之痛

  • 维度爆炸:词典多大,向量多长。
  • 毫无语义:任何两个不同词的相似度永远是 0。
  • 无法泛化:没见过的新词直接“社死”。

14.1.2 自监督的 word2vec

核心公式
Skip-gram:最大化
  ∏ₜ ∏_{-m≤j≤m,j≠0} p(w_{t+j}|w_t)
CBOW:反过来,用上下文预测中心词。
一句话总结:让相邻词互相“猜”,猜对了就把它们放在向量空间里做邻居。

14.1.3 Skip-gram 与 14.1.4 CBOW

模型 输入 输出 训练速度 低频词友好度 常用场景
Skip-gram 中心词 上下文 小语料、低频词
CBOW 上下文 中心词 大语料、高频词

14.2 近似训练:让 softmax 不再爆炸

14.2.1 负采样

  • 把多分类变成 K+1 个二分类,K≈5。
  • 采样分布:P(w)∝U(w)^{3/4},3/4 次方是经验魔法。

14.2.2 层次 softmax

  • 把词典建成一棵 Huffman 树,复杂度从 O(|V|) 降到 O(log|V|)。
  • 高频词靠近根节点,路径更短。

14.3 数据集:从原始文本到训练样本

14.3.1 读入 PTB

sentences = read_ptb()        # 42069 行
vocab = Vocab(sentences, 10)  # 67
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值