Embedding,中文直译为“嵌入”,常被翻译为“向量化”或者“向量映射”。在整个深度学习框架中都是十分重要的“基本操作”,不论是NLP(Natural Language Processing,自然语言处理)、搜索排序,还是推荐系统,或是CTR(Click-Through-Rate)模型,Embedding都扮演着重要的角色。
这里单独把基于负采样的Skip-gram模型再详细描述一次,是因为这个模型太重要了,稍后讲解的Item2Vec模型和Airbnb论文《Real-time Personalization using Embeddings for Search Ranking at Airbnb 》提出的模型都借鉴了基于负采样的Skip-gram模型的思想。所以,我们务必要把基于负采样的Skip-gram模型理解透彻。
是噪声分布 ( noise distribution )。即训练目标是使用Logistic regression区分出目标词和噪音词。另外,由于自然语言中很多高频词出现频率极高,但包含的信息量非常小(如'is' 'a' 'the')。为了平衡低频词和高频词,利用简单的概率丢弃词 :
其中是 的词频,的确定比较trick,启发式获得。实际中大约在 附近。
推荐阅读Airbnb论文:
【1】Grbovic M, Cheng H. Real-time personalization using embeddings for search ranking at airbnb[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2018: 311-320.
最后,我们来聊一聊Word2Vec对Embedding技术的奠基性意义。Word2Vec是由谷歌于2013年正式提出的,其实它并不完全由谷歌原创,对词向量的研究可以追溯到2003年论文《a neural probabilistic language model》,甚至更早。但正是谷歌对Word2Vec的成功应用,让词向量的技术得以在业界迅速推广,使Embedding这一研究话题成为热点。毫不夸张地说,Word2Vec对深度学习时代Embedding方向的研究具有奠基性的意义。 从另一个角度看,在Word2Vec的研究中提出的模型结构、目标函数、负采样方法及负采样中的目标函数,在后续的研究中被重复使用并被屡次优化。掌握Word2Vec中的每一个细节成了研究Embedding的基础。从这个意义上讲,熟练掌握本节内容非常重要。
3. Item2Vec-Word2Vec在推荐领域的推广
在Word2Vec诞生之后,Embedding的思想迅速从自然语言处理领域扩散到几乎所有机器学习领域,推荐系统也不例外。既然Word2Vec可以对词“序列”中的词进行Embedding,那么对于用户购买“序列”中的一个商品,用户观看“序列”中的一个电影,也应该存在相应的Embedding方法,这就是Item2Vec方法的基本思想。 推荐阅读Item2Vec论文:【1】Barkan O , Koenigstein N . Item2Vec: Neural Item Embedding for Collaborative Filtering[J]. 2016.
3.1 Item2Vec的基本原理
由于Word2Vec的流行,越来越多的Embedding方法可以被直接用于物品Embedding向量的生成,而用户Embedding向量则更多通过行为历史中的物品Embedding平均或者聚类得到。利用用户向量和物品向量的相似性,可以直接在推荐系统的召回层快速得到候选集合,或在排序层直接用于最终推荐列表的排序。正是基于这样的技术背景,微软于2016年提出了计算物品Embedding向量的方法Item2Vec。 微软将Skip-gram with negative sampling(SGNS)应用在用户与物品的交互数据中,因此将该方法命名为Item2Vec。 相比Word2Vec利用“词序列”生成词Embedding。Item2Vec利用的“物品集合”是由特定用户的浏览、购买等行为产生的历史行为记录序列变成物品集合。通过从物品序列移动到集合,丢失了空间/时间信息,还无法对用户行为程度建模(喜欢和购买是不同程度的强行为)。好处是可以忽略用户和物品关系,即便获得的订单不包含用户信息,也可以生成物品集合。而论文的结论证明,在一些场景下序列信息的丢失是可忍受的。
可以看到DSSM的核心思想就是将不同对象映射到统一的语义空间中,利用该空间中对象的距离计算相似度。这一思路被广泛应用到了广告、搜索以及推荐的召回和排序等各种工程实践中。 推荐阅读DSSM论文:【1】Huang P S, He X, Gao J, et al. Learning deep structured semantic models for web search using clickthrough data[C]// ACM International Conference on Conference on Information & Knowledge Management. ACM, 2013:2333-2338.
3.2.2 双塔系列模型总结
事实上,Embedding对物品进行向量化的方法远不止Item2Vec。广义上讲,任何能够生成物品向量的方法都可以被称为Item2Vec。典型的例子是曾在百度、Facebook等公司成功应用的双塔模型,如下图所示。 图:百度的“双塔”模型(来源于参考文献11) 百度的双塔模型分别用复杂网络对“用户特征”和“广告特征”进行了Embedding化,在最后的交叉层之前,用户特征和广告特征之间没有任何交互,这就形成了两个独立的“塔”,因此称为双塔模型。 在完成双塔模型的训练后,可以把最终的用户Embedding和广告Embedding存入内存数据库。而在线上inference时,也不用复现复杂网络,只需要实现最后一层的逻辑(即线上实现LR或浅层NN等轻量级模型拟合优化目标),再从内存数据库中取出用户Embedding和广告Embedding之后,通过简单计算即可得到最终的预估结果。 总之,在广告场景下的双塔模型中,广告侧的模型结构实现的其实就是对物品进行Embedding的过程。该模型被称为“双塔模型”,因此以下将广告侧的模型结构称为“物品塔”。那么,“物品塔”起到的作用本质上是接收物品相关的特征向量,经过“物品塔”内的多层神经网络结构,最终生成一个多维的稠密向量。从Embedding的角度看,这个稠密向量其实就是物品的Embedding向量,只不过Embedding模型从Word2Vec变成了更为复杂灵活的“物品塔”模型,输入特征由用户行为序列生成的One-hot特征向量,变成了可包含更多信息的、全面的物品特征向量。二者的最终目的都是把物品的原始特征转变为稠密的物品Embedding向量表达,因此不管其中的模型结构如何,都可以把这类模型称为“广义”上的Item2Vec类模型。 Word2Vec和其衍生出的Item2Vec类模型是Embedding技术的基础性方法,但二者都是建立在“序列”样本(比如句子、用户行为序列)的基础上的。在互联网场景下,数据对象之间更多呈现的是图结构,所以Item2Vec在处理大量的网络化数据时往往显得捉襟见肘,这就是Graph Embedding技术出现的动因。 篇幅有限,我们会在下一篇文章中接着给大家详细介绍Graph Embedding的相关内容,请大家持续关注~ 双塔模型推荐阅读论文:【1】Yi X, Yang J, Hong L, et al. Sampling-bias-corrected neural modeling for large corpus item recommendations[C]//Proceedings of the 13th ACM Conference on Recommender Systems. 2019: 269-277.