自然语言处理与词嵌入

词汇表特征

有一个词典,里面有10000个单词。使用one-hot的表示方法,每个单词的表示向量有10000个元素,单词对应的位置为1,其他位置为0。比如,单词”Man”在词典的5391位,那么”Man”的表示向量为 010 [ 0 ⋮ 1 ⋮ 0 ] ,”1”在第5391位。

这样表示单词有一个缺点,就是去掉了单词之间的相关性。假设模型学会了”I want a glass of orange (juice)”,但是却不会填”I want a glass of apple (?)”,因为模型不知道”orange”和”apple”是同一类的单词。

词嵌入法使用特征化表示向量,称为嵌入向量,比如

- Man Woman King Queen Apple Orange
Gender -1 1 -0.95 0.97 0.00 0.01
Royal 0.01 0.02 0.93 0.95 -0.01 0.00
Age 0.03 0.02 0.7 0.69 0.03 -0.02
Food 0.04 0.01 0.02 0.01 0.95 0.97

纵轴表示单词的某种特征性质。比如”Man”和”Woman”有性别特征,第一栏的数值的绝对值比较大。”King”和”Queen”有性别与高贵的特征和年龄,对应的数值的绝对值接近1。”Apple”和”Orange”是食物,食物一栏的数值绝对值接近1。其他与单词不相关的特征对应的数值都比较小,接近0。通过特征化,每个单词都使用特征向量来表示。

假设单词的特征向量高达3000维,使用映射算法把3000维的向量映射为2D的向量,把单词的特征向量可视化,如下图:
单词特征向量可视化
可以看到,词性相近的单词都靠得比较近,比如”man”和”woman”靠在一起,水果”apple”,”grape”和”orange”靠得比较近。

这种方法叫做词嵌入法,因为相当于把单词嵌入到n维的坐标系中(n是特征向量的长度)。

使用词嵌入

使用词嵌入模型需要非常大的数据集(1B-100B个单词)。可以使用迁移学习来训练得到词嵌入模型。第一步,从一个非常大的语料库中学习词嵌入模型,可以从网上找已经训练好的词嵌入模型,或者从网上下载免费的语料库,自己训练词嵌入模型。第二步,把词嵌入模型迁移到自己的任务中,比如词嵌入模型使用的特征向量长10000个单词,自己的训练数据使用的特征向量长300个单词,需要做一些转换。第三步,根据自己的训练集的大小决定是否对词嵌入模型进行微调。

词嵌入特性

Man Woman King Queen Apple Orange
Gender -1 1 -0.95 0.97 0.00
Royal 0.01 0.02 0.93 0.95 -0.01
Age 0.03 0.02 0.7 0.69 0.03
Food 0.04 0.01 0.02 0.01 0.95

观察上面的单词特征,使用 eman e man 表示”Man”的特征向量,使用 ewoman e woman 表示”Woman”的特征向量,使用 eking e king 表示”King”的特征向量,使用 equeen e queen 表示”Queen”的特征向量。如果”Man”对应”Woman”,那么”King”对应什么呢?即 emanewomanekinge? e man − e woman ≈ e king − e ?

emanewoman2000 e man − e woman ≈ [ − 2 0 0 0 ] ekingequeen2000

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值