• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

Embedding向量化的一些理解

Alg admin 3个月前 (07-20) 450次浏览 0个评论 扫描二维码

:grin:有个同事某一天问我 embedding 向量化的过程,巴拉巴拉一堆,在日常写代码就两步

  1. 构建向量矩阵
  2. 查询

但是向量化的真正意图是什么?或者说为什么要进行向量化?

个人觉得应该先从 onehot 说起,在日常的工程中经常会遇到各种各样的 id 类特征,这些特征类别量很大,比如用户的 id 会有好多亿,如果你直接使用 onehot 那么你的特征在这一个上面就已经上亿了,可以想象百度凤巢说自己的特征都是几十亿,这些 id 类特征贡献了很多。

onehot 说起来很简单,在工程中如果你使用的是简单的模型如 LR,并且你有足够的数据量和计算能力,那么你直接使用 onehot 没啥毛病。

从 onehot 到 embedding 过程实际上很简单

上图就是一个 embedding 向量化的过程,本质上就是一个查表的过程,onehhot 中的第 i 位为 1 的值就相当于索引把对应的数据查询出来就是一个 embedding 向量化的过程。

那是不是输入需要输入这么长的 onehot?当然不需要啦,只要给出索引就可以了,查表,查表,查表

任何一个经过向量化处理之后就可以衍生一些有意思的事情,这个本质上应该是向量的特性,只不过在不同的业务场景上意义实质化了。

比如之前在做商品推荐,用户的点击序列就可以拿来做 word2vec,当然你也可以去做 graph embedding 处理,这里就不展开来讲了。item 经过处理之后就可以得到向量,此时我们可以计算向量之间的相似度,就可以得到商品的关联商品。

扯远一点,大规模向量化相似度计算可以使 fasis,之前组内同事还分享过,可以抽空自己总结一下。

知乎上有人总结了下面三点 embedding 的好处,我在补充一下第二点的说明。

  1. 在 embedding 空间中查找最近邻,这可以很好的用于根据用户的兴趣来进行推荐。
  2. 作为监督性学习任务的输入。
  3. 用于可视化不同离散变量之间的关系。

在深度神经网络中你如果直接接入 onehot,那么你需要训练的参数维度也是爆炸式增长的,这个在深度模型中是一个困扰。所以在保留相同信息的基础上使用 embedding 作为输入是一个可靠的选择。

尾部

还有没有其他可以补充的,欢迎回复

 


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Embedding 向量化的一些理解
喜欢 (0)
admin
关于作者:
互联网行业码农一枚/业余铲屎官/数码影音爱好者/二次元

您必须 登录 才能发表评论!