自然语言处理(NLP)基础知识——Embedding(Word2Vec、C-BOW、Skip-gram、Item2Vec)

Embedding

Embedding

Word2Vec

Paper : Efficient Estimation of Word Representations in Vector Space - ICLR 2013

Efficient Estimation of Word Representations in Vector Space

  • Word2IdDict:将单词转成ID索引。例如,“Apple”编码成“1”、“I”编码成“2”。先统计每个词的词频并将其从高到低排列,然后从高频到低频词依次编码。

  • One-hot Encoding:将ID索引转换为One-hot向量。例如,“Apple”编码为[1, 0]。这一步并不是由开发者完成的,因为GPU不擅长进行Lookup操作,所以在内部实现上设计了One-hot Encoding这一环节来辅助Embedding Matrix的Lookup操作,实际上开发者不用进行这一步的处理。

  • Embedding Matrix:将每个单词编码为高维向量。例如,“Apple”编码为[0.4, 0.4, 0.5, -0.6, 1.1, 0.03]。在开发者的视角来看,单词的高维Embedding形式是直接由索引ID值编码得到的,并未进行One-hot Encoding。实际上在框架的内部实现上,每个单词的高维向量是由其对应的One-hot编码与Embedding Matrix矩阵相乘得到的。(Embedding Matrix一行表示一个单词,列数代表单词编码的维度)

C-BOW

上下文->核心词

  • 核心思路:遍历整个语料,将每个词作为核心词,该词左右窗口期内的其余词作为上下文词,以此构建训练数据。将上下文中的每个词进行One-hot Encoding 作为模型的输入,然后与Embedding Matrix相乘获得每个上下文词的Embedding,简单的其相加后,乘上一个权重矩阵并经过Softmax输出一个概率向量。将该向量最大值处值设为1,其余为0,即对应核心词的One-hot向量。

  • 实际实现:与下差不多。

Skip-gram

核心词->上下文

  • 核心思路:遍历整个语料,将每个词作为核心词,该词左右窗口期内的其余词作为上下文词,以此构建训练数据。将核心词进行One-hot Encoding 作为模型的输入,然后与Embedding Matrix相乘获得核心词的Embedding。将Embedding向量乘以不同的权重矩阵后,得到多个1维向量,将其分别经过Softmax,即可获得上下文词的One-hot编码。

  • 实际实现:实际实现中,常把Skip-gram当作一个二分类问题。对于一个样本,训练数据为核心词与一个上下文词,训练标签代表该词是否为核心词的上下文词,即1与0。可通过负采样采取非上下文词。可通过二次采样去除高频词。前向传播过程为
    中心词和目标词(包括上下文词与无关词)分别经过两个不同的Embedding Matrix,将输出点乘并经过Sigmoid函数量化一个概率值,而后与标签计算Cross Entropy开启端到端训练。

在这里插入图片描述

  • C-BOW和Skip-gram是Word2Vec的两种实现方式,它可以根据文本序列训练出Embedding Matrix。但在实际的NLP任务中,Embedding Matrix是随机初始化的,并不会进行C-BOW或Skip-gram的训练

Item2Vec

Paper : ITEM2VEC: NEURAL ITEM EMBEDDING FOR COLLABORATIVE FILTERING

Item2Vec

  • 基本原理与Word2Vec类似

广义Item2Vec

Paper : Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations

一个例子:双塔模型

  • 只要能生成相应物品或用户的稠密向量的方法都能叫做“Embedding”

  • 双塔模型结构

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值