目标实验目标
看清 Word2Vec 的引擎:cosine_similarity() 量两个词有多像,train_word2vec() 把出现在相似上下文里的词在空间中推近。修改参数、观察向量的真实坐标与相似度变化。
操作代码里黄色虚线的数字可直接点击修改,改完点「运行代码」。日志会打印每一轮训练后关键词对的余弦相似度。
代码可编辑源码
word2vec.js — 点击黄色数值修改
设置观察哪一对词
空间训练后的向量位置
监视变量监视
lr = -
window = -
epochs = -
最终收敛度 = -
日志训练日志
点击「运行代码」开始训练…
挑战实验课挑战
挑战 1 · 学习率的影响
把 lr = 0.05 改成 0.01 和 0.3,看日志里最终的余弦相似度。哪个学得充分?
把 lr = 0.05 改成 0.01 和 0.3,看日志里最终的余弦相似度。哪个学得充分?
挑战 2 · 窗口太小会怎样
把 window = 3 改成 1,同类词还聚得起来吗?为什么窗口决定了「谁算相似上下文」?
把 window = 3 改成 1,同类词还聚得起来吗?为什么窗口决定了「谁算相似上下文」?
挑战 3 · 轮数够不够
把 epochs = 40 改成 5,看「猫↔小狗」的相似度还差多远。
把 epochs = 40 改成 5,看「猫↔小狗」的相似度还差多远。
挑战 4 · 改掉相似度公式
把日志里 (1 - cos) 改成常数 1(即不管多像都继续推),同类词会变成什么样子?为什么不能用常数?
把日志里 (1 - cos) 改成常数 1(即不管多像都继续推),同类词会变成什么样子?为什么不能用常数?