美文网首页
关于Embedding 操作的理解

关于Embedding 操作的理解

作者: 小新_XX | 来源:发表于2019-11-17 12:53 被阅读0次

1. 什么是embedding

embedding的本质是用一个较低维度的向量来代替较高维度的原始特征。在推荐系统中,原始向量往往会用超高维的稀疏one-hot向量来表示,使用embedding可以用较低的维度(即embedding size)来表示高维稀疏的特征,方便进行后续的模型训练。

2. 如何实现

embedding.jpg

如图所示,embedding的操作可以视为一个全连接层,​\boldsymbol u是embedding之前的序列,​\boldsymbol v是embedding之后的序列。FC层的权重为​\boldsymbol W \in R^{6\rm{x}3},与​\boldsymbol u点乘之后得到embedding后的序列​.

另外在实际的NLP或者广告推荐场景中,向量 往往是经过one-hot处理的高维稀疏向量,只有一个或几个值为1,其他均为0. 由此可见向量和相乘,相当于将的某一行或某几行之和的向量取出来作为 embedding的结果。因此embedding可以看做成一个查表(look up)的操作,即用sparse id(即原向量​\boldsymbol u )来查找embedding weight(即​ ​\boldsymbol W)中特定的行。事实上,tensorflow中的embedding操作就是由tf.nn.embedding_lookuptf.nn.embedding_lookup_sparse两个函数来实现的。

关于TF中的embedding操作的详细过程图解,推荐一篇文章:Tensorflow中的Embedding操作详解 ,讲的十分清晰,这里就不再重复了。有疑问建议去看tf源码。

相关文章

网友评论

      本文标题:关于Embedding 操作的理解

      本文链接:https://www.haomeiwen.com/subject/nfspictx.html