特征工程Embedding技术

Embedding概念

  • 什么是embedding?
    Embedding 就是用一个数值向量“表示”一个对象(Object)的方法,我这里说的对象可以是一个词、一件物品、一部电影等等。
    一件物品能被向量表示,是因为这个向量跟其他物品向量之间的距离反映了这些物品的相似性。更进一步来说,两个向量之间的距离向量甚至能够反映它们之间的关系。
  • Embedding 技术对深度学习推荐系统的重要性
    1. 推荐系统中物品、ID特别多,如果一致使用one-hot独热编码,会造成特征向量矩阵稀疏,同样而深度学习的结构特点又不利于稀疏特征向量的处理,这时候我们就需要使用embedding技术。当今几乎所有深度学习推荐模型都会由 Embedding 层负责将稀疏高维特征向量转换成稠密低维特征向量。所以说各类 Embedding 技术是构建深度学习推荐模型的基础性操作。
    2. Embedding 可以融合大量有价值信息,本身就是极其重要的特征向量。相比于直接由原始信息得到的特征向量。embedding表达能力更强,通过预训练得到的embedding向量其本身就是非常重要的特征向量。
  • 总结:Embedding方法它不仅是一种处理稀疏特征的方法,也是融合大量基本特征,生成高阶特征向量的有效手段。

经典Embedding方法Word2Vec

Word2Vec介绍

  • Word2vec 是“word to vector”的简称,顾名思义,它是一个生成对“词”的向量表达的模型。
  • 想要训练 Word2vec 模型,我们需要准备由一组句子组成的语料库。假设其中一个长度为 T 的句子包含 w1,w2……wt个词,并且我们假定每个词都跟其相邻词的关系最密切。
  • Word2Vec有两种模型一种是CBOW模型还有一种是Skip-gram模型。CBOW 模型假设句子中每个词的选取都由相邻的词决定。输入为wt-1,wt+1…,输出是wt;Skip-gram模型则正好相反,它假设句子中的每个词都决定了相邻词的选取。输入为wt,输出为为wt-1,wt+1…。两者比较而言Skip-gram效果更好。
    在这里插入图片描述

Word2Vec如何生成样本

  • 以Skip–gram模型为例,我们从语料库中随机抽取一个句子,选取一个长度为 2n+1(目标词前后各选n个词)的滑动窗口,将滑动窗口从左往右依次滑动,每移动一次,窗口中的词组就形成了一个训练样本。根据 Skip-gram 模型的理念,中心词决定了它的相邻词,我们就可以根据这个训练样本定义出 Word2vec 模型的输入和输出,输入是样本的中心词,输出是所有的相邻词。

Word2Vec 模型的结构

Word2Vec的结构本质上就是一个三层的神经网络,如下图:
在这里插入图片描述

  • 输入层和输出层的维度都是V,这个V其实就是语料库词典的大小。根据生成的训练样本,这里的输入向量就是由输入词转换而来的One-hot编码向量,输出向量则是由多个输出词转换而来的Multi-hot编码向量,Skip-gram模型解决的是一个多分类问题。
  • 隐层的维度是N,N的选择则需要一定的调参能力,我们需要对模型的效果和模型的复杂度进行权衡,来决定N的取值,并且最终每个词的 Embedding向量维度也由N来决定。
  • 最后是激活函数的问题,需要注意的是隐层神经元是没有激活函数的,或者说是采用了输入即输出的恒等函数作为激活函数,而输出层神经元采用了Softmax作为激活函数。
  • 下图为输入向量到输出向量的这样的一个条件概率关系公式:
    输入WI和预测输出WO的条件概率,其实就是Word2Vec神经网络要表达的东西。我们通过MLE最大化这个条件概率,就能够让相似的词的内积距离更接近,这就是我们希望Word2Vec神经网络学到的。
    在这里插入图片描述
  • 如果当词非常大的情况下,训练时间会非常的长,为了节约时间,我们可以采用负采样和分层Softmax的方法进行训练。

Word2Vec如何提取词向量

  • 输入向量矩阵 WVxN 的每一个行向量对应的就是我们要找的“词向量”。比如我们要找词典里第i个词对应的Embedding,因为输入向量是采用One-hot编码的,所以输入向量的第i维就应该是 1,那么输入向量矩阵 WVxN 中第i行的行向量就是该词的Embedding。如下图:

在这里插入图片描述

  • 在实际过程中,我们往往会把输入向量矩阵转换成词向量查找表。例如,输入向量是 10000 个词组成的 One-hot 向量,隐层维度是 300 维,那么输入层到隐层的权重矩阵为 10000x300 维。在转换为词向量 查找表后,每行的权重即成了对应词的 Embedding 向量。如果我们把这个查找表存储到线上的数据库中,就可以轻松地在推荐物品的过程中使用 Embedding 去计算相似性等重要的特征了。

Item2Vec

  • Item2Vec方法是由微软于 2015 年提出的,它是对Word2Vec方法的推广,使Embedding方法适用于几乎所有的序列数据。Item2Vec模型的技术细节几乎和Word2Vec完全一致,只要能够用序列数据的形式把我们要表达的对象表示出来,再把序列数据传到Word2vec模型上,就可以得到任意物品的Embedding了。
  • 对于推荐系统而言,Item2Vec可以利用物品的Embedding直接求得它们的相似性,或者作为重要的特征输入推荐模型进行训练,这些都有助于提升推荐系统的效果。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值