万物皆Embedding,从经典的word2vec到深度学习基本操
前言
这里是 王喆的笔记(https://zhuanlan.zhihu.com/wangzhenotes) 的第四篇文章,之前我们一起讨论了阿里的DIN,YouTube的,本来今天想再分享另一篇科技巨头的业界前沿文章,Airbnb的Embedding方法 但因为文章中涉及word2vec的技术细节,为了保证一些初学者的知识是自洽的,我还是想在此之前详细介绍一下深度学习的基本操作Embedding以及从word2vec到item2vec的模型原理。
01、什么是embedding?为什么说embedding是深度学习的基本操作?
简单来说,embedding就是用一个低维的向量表示一个物体,可以是一个词,或是一个商品,或是一个电影等等。这个embedding向量的性质是能使距离相近的向量对应的物体有相近的含义,比如 Embedding(复仇者联盟)和Embedding(钢铁侠)之间的距离就会很接近,但 Embedding(复仇者联盟)和Embedding(乱世佳人)的距离就会远一些。
除此之外Embedding甚至还具有数学运算的关系,比如Embedding(马德里)-Embedding(西班牙)+Embedding(法国)≈Embedding(巴黎)
从另外一个空间表达物体,甚至揭示了物体间的潜在关系,上次体会这样神奇的操作还是在学习傅里叶变换的时候,从某种意义上来说,Embedding方法甚至具备了一些本体论的哲学意义。
言归正传,Embedding能够用低维向量对物体进行编码还能保留其含义的特点非常适合深度学习。在传统机器学习模型构建过程中,我们经常使用one hot encoding对离散特征,特别是id类特征进行编码,但由于one hot encoding的维度等于物体的总数,比如阿里的商品one hot encoding的维度就至少是千万量级的。这样的编码方式对于商品来说是极端稀疏的,甚至用multi hot encoding对用户浏览历史的编码也会是一个非常稀疏的向量。而深度学习的特点以及工程方面的原因使其不利于稀疏特征向量的处理(这里希望大家讨论一下为什么?)。因此如果能把物体编码为一个低维稠密向量再喂给DNN,自然是一个高效的基本操作。
02、使embedding空前流行的word2vec
对word的vector表达的研究早已有之,但让embedding方法空前流行,我们还是要归功于google的word2vec。我们简单讲一下word2vec的原理,这对我们之后理解AirBnB对loss function的改进至关重要。
那么为了产生模型的正样本,我们选一个长度为2c+1(目标词前后各选c个词)的滑动窗口,从句子左边滑倒右边,每滑一次,窗口中的词就形成了我们的一个正样本。
当然在训练word2vec的过程中还有很多工程技巧,比如用negative sampling或Hierarchical Softmax减少词汇空间过大带来的计算量,对高频词汇进行降采样避免对于这些低信息词汇的无谓计算等。我们在之前的专栏文章中有过讨论,在具体实现的时候较好参考Google的原文 Distributed Representations of Words and Phrases and their Compositionality
03、从word2vec到item2vec
在word2vec诞生之后,embedding的思想迅速从NLP领域扩散到几乎所有机器学习的领域,我们既然可以对一个序列中的词进行embedding,那自然可以对用户购买序列中的一个商品,用户观看序列中的一个电影进行embedding。而广告、推荐、搜索等领域用户数据的稀疏性几乎必然要求在构建DNN之前对user和item进行embedding后才能进行有效的训练。
具体来讲,如果item存在于一个序列中,item2vec的方法与word2vec没有任何区别。而如果我们摒弃序列中item的空间关系,在原来的目标函数基础上,自然是不存在时间窗口的概念了,取而代之的是item set中两两之间的条件概率。
具体可以参考item2vec的原文 Item2Vec:Neural Item Embedding for Collaborative Filtering
但embedding的应用又远不止于此,事实上,由于我们也可以把输出矩阵的列向量当作item embedding,这大大解放了我们可以用复杂网络生成embedding的能力。读过我专栏上一篇文章 YouTube深度学习推荐系统的十大工程问题 的同学肯定知道,YouTube在serve其candidate generation model的时候,只将最后softmax层的输出矩阵的列向量当作item embedding vector,而将softmax之前一层的值当作user embedding vector。在线上serving时不用部署整个模型,而是只存储user vector和item vector,再用最近邻索引进行快速搜索,这无疑是非常实用的embedding工程经验,也证明了我们可以用复杂网络生成user和item的embedding。
KDD 2018 best paper Real-time Personalization using Embeddings for Search Ranking at Airbnb 也介绍了Airbnb的embedding较佳实践,下周我们再详细介绍Airbnb如何将业务场景与embedding方法结合起来。
03、参考资料
1.Recommender System Paper List
(https://github.com/wzhe06/Reco-papers)
2.Real-time Personalization using Embeddings for Search Ranking at Airbnb
(https://astro.temple.edu/~tua95067/kdd2018.pdf)
3.Item2Vec:Neural Item Embedding for Collaborative Filtering
(https://github.com/wzhe06/Reco-papers/blob/master/Recommendation/Item2Vec%20-%20Neural%20Item%20Embedding%20for%20Collaborative%20Filtering.pdf)
4.Distributed Representations of Words and Phrases and their Compositionality
(https://github.com/wzhe06/Reco-papers/tree/master/Famous%20Machine%20Learning%20Papers)
5.YouTube深度学习推荐系统的十大工程问题(https://zhuanlan.zhihu.com/p/52504407)
6.重读Youtube深度学习推荐系统论文,字字珠玑,惊为神文
(https://zhuanlan.zhihu.com/p/52169807)
声明:文章收集于网络,版权归原作者所有,为传播信息而发,如有侵权,请联系小编删除,谢谢!
时间:2020-06-21 16:55 来源: 转发量:次
声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
相关文章:
- [机器学习]万物皆可Graph | 当推荐系统遇上图神经网络
- [机器学习]深度学习推荐系统中各类流行的Embedding方法(下
- [机器学习]深度学习推荐系统中各类流行的Embedding方法(上
- [机器学习]Embedding 在深度推荐系统中的 3 大应用方向
- [机器学习]Embedding 技术在民宿推荐中的应用
- [机器学习]从 Word Embedding 到 Bert 模型—自然语言处理中的预
- [机器学习]推荐系统工程师必看:Embedding 技术在深度学习
- [机器学习]深度学习中不得不学的 Graph Embedding 方法
- [机器学习]Embedding 从入门到专家必读的十篇论文
- [机器学习]详解 Embeddings at Alibaba(KDD 2018)
相关推荐:
网友评论:
最新文章
热门文章