推荐系统实践 0x12 什么是Embedding
做过深度学习的小伙伴,大家应该多多少少都听说过Embedding,这么火的Embedding到底是什么呢?这篇文章就用来介绍Embedding。另外,基于深度学习的推荐系统方法或者论文还没有结束,我打算穿插进行讲解,毕竟,深度学习出来的推荐框架的算法实在是太相像了,很难有大的不同。所以,这一篇就聊聊Embedding。
初识Embedding
Embedding又被成为向量化,或者向量的映射。Embedding(嵌入)也是拓扑学里面的词,在深度学习领域经常和Manifold(流形)搭配使用。在之前的Embedding的操作,往往都是将稀疏的向量转换成稠密的向量,以便于交给后面的神经网络处理。其实,Embedding还有更多应用场景,以及更多的实现方法,后面会慢慢谈到这些方法。Embedding可以看做是用低维稠密向量表示一个对象,可以是单词,可以是用户,可以是电影,可以是音乐,可以是商品等等。只要这个向量能够包含,或者表达所表示对象的特征,同时能够通过向量之间的距离反应对象之间的关系或者相似性,那么Embedding的作用就体现出来了。
Example
如下图所示,就是Embedding在自然语言处理当中,对单词Embedding的一种刻画:
上图中从king到queen,与从man到woman的距离向来那个几乎相同,说明Embedding之间的向量运算能够包含词之间的语义关系信息,同理,图中的词性例子当中,从进行时态到过去时态也是相同的距离。Embedding可以在大量预料的输入前提下,发掘出一些通用的常识,比如首都-国家之间的关系。
通过这个例子,我们可以了解到,在词向量空间当中,即使是完全不知道一个词向量的含义下,仅依靠语义关系加词向量运算就可以推断出这个词的词向量。Embedding就这样从一个空间表达对象,同时还可以表示对象之间的关系。
应用
除了在自然语言处理中对单词进行Embedding之外,我们可以对物品进行Embedding。比如在影视作品推荐当中,“神探夏洛克”与“华生”在Embedding向量空间当中会比较近,“神探夏洛克”与“海绵宝宝”在向量空间中会比较远。另外,如果在电商推荐领域,“桌子”和“桌布”在向量空间中会比较紧,“桌子”和“滑雪板”在向量空间中会比较远。
不同领域在使用这些语义资料进行训练的时候也会有不同,比如电影推荐会将用户观看的电影进行Embedding,而电商会对用户购买历史进行Embedding。
深度学习推荐系统中的Embedding
一般来说,推荐系统当中会大量使用Embedding操作:
- 使用one-hot对类别,id等类型进行编码会导致特征向量极其稀疏,使用Embedding可以将高维稀疏的特征向量转化为低维稠密的特征向量。
- Embedding具有很强的表达能力,在Graph Embedding提出之后,Embedding可以引入任何信息进行编码,包含大量有价值的信息。
- Embedding可以表达对象之间的关系,可以对物品、用户的相似度进行计算,在推荐系统的召回层经常使用,尤其是在局部敏感哈希(Locality-Sensitive Hashing)等快速最近邻搜索提出之后,Embedding被用来对物品进行快速筛选,到几百或几千的量级之后再进行神经网络的精排。
常见方法
- Word2Vec
- Item2Vec
- Node2Vec
等等方法,以及文中提到的局部敏感哈希,也会在后续的系列文章逐步更新介绍。
参考
深度学习推荐系统 王喆编著
怎么形象理解embedding这个概念? - 刘斯坦的回答 - 知乎
最新文章
- 【原】SDWebImage源码阅读(五)
- [Linux]Linux系统调用列表
- JavaScript数独求解器
- java web 学习 --第三天(Java三级考试)
- .net学习笔记---xml基础知识
- 我的Linux对拍脚本
- 两个正在运行的activity之间的通信
- hdu 4539(状态压缩dp)
- 从零开始学ios开发(十九):Application Settings and User Defaults(上)
- highcharts 多数据+切换
- 8 Pratical Examples of Linux “Touch” Command--reference
- $.cookie is not a function
- hdu 1150 Machine Schedule(最小顶点覆盖)
- OC纯代码全手工打造ScroolView实现翻页
- MYSQL性能优化--分库分表
- ajax核心技术1---XMLHttpRequset对象的使用
- Immutable(不可变)集合
- 小T牛 绿色版 18.08.0100
- 如何简单实现接口自动化测试(基于 python) 原博主地址https://blog.csdn.net/gitchat/article/details/77849725
- SQL2005中的事务与锁定(九)-(1)- 转载