推荐系统之Embedding
- 一、什么是embedding?
- 1. 让embedding空前流行的word2vec:
- 2. 从word2vec到item2vec
- 二、Graph Embedding
- 1. 经典的Graph Embedding方法 — DeepWalk
- 2. DeepWalk改进 — Node2vec
- 3. 阿里的Graph Embedding方法EGES
- 三、深度学习推荐系统中,Embedding的应用
- 1. 深度学习网络中的Embedding层
- 2. Embedding的预训练方法
- 3. Embedding作为推荐系统或计算广告系统的召回层
- 学习参考文章:
一、什么是embedding?
Embedding:用一个低维的向量来表示一个物体
,可以是一个词,或是一个商品,一个用户。这个embedding向量的性质是能使距离相近的向量对应的物体又相近的含义。
1. 让embedding空前流行的word2vec:
2. 从word2vec到item2vec
二、Graph Embedding
1. 经典的Graph Embedding方法 — DeepWalk
主要思想:由用户点击序列构建物品图,在图结构上进行随机游走,产生大量的物品序列,然后将这些物品序列作为训练样本输入到word2vec进行训练,得到物品的embedding。
Random work 采样概率:
Mij是节点vi到节点vj边的权重
2. DeepWalk改进 — Node2vec
斯坦福大学在DeepWalk的基础上更进一步,通过调整随机游走权重
的方法使graph embedding的结果在网络的同质性(homophily)和结构性(structural equivalence)中进行权衡权衡。
同质性:距离相近的节点的embedding应该尽量近似。如u与s1、s2、s3、s4。
结构性:结构相似的节点的embedding应该尽量相似。如u与s6
直观解释:同质性的物品可能是同品类、同属性、或常被同一用户购买;结构像是的物品则是各品类的爆款、个品类的最佳臭蛋商品等拥有类似趋势的商品。
Node2vec 中从节点 t 跳转到节点 v 后,下一步从节点 v 跳转到周围各点的跳转概率:
节点v跳转到下一节点x的概率:
w是边vx的权重
dtx是节点t到x的距离
参数p和q共同控制着随机游走的倾向性。
Node2vec灵活的表达了同质性和结构性的特点:图1可以看到距离相近的节点颜色相近。图2可以看到结构相似的节点颜色更为相近。
3. 阿里的Graph Embedding方法EGES
EGES(Enhanced Graph Embedding with Side Information)
基本思想:在DeepWalk生成的graph embedding基础上引入补充信息
。
DeepWalk缺点:单纯使用用户行为生成的物品相关图,可以生成物品Embedding。但是遇到新加入的物品,或者没有过多交互信息的长尾物品,推荐系统将会出现严重的冷启动
问题。
EGES:通过引入更多补充信息来丰富Embedding信息的来源,从而使没有历史行为记录的商品获得Embedding。具体来讲,在构建物品关系图的时候,不仅考虑了用户行为序列生成的物品关系,也考虑了物品相同的属性、类别等信息(这就是side information
),这种图一般也叫知识图谱(Knowledge Graph)。
如图:SI0、SI1…、SIn是一个物品的多个embedding向量,用胡同权重a0、a1…、an进行加权平均得到该物品的hidden representation、最后通过softmax层进行分类。
三、深度学习推荐系统中,Embedding的应用
1. 深度学习网络中的Embedding层
在深度学习网络中作为Embedding层,完成从高维稀疏特征向量到低维稠密特征向量的转换
。
本质:求解一个m(输入高维稀疏向量的维度) X n(输出稠密向量的维度)维的权重矩阵的过程。(embedding层的权重占据了整个网络权重的绝大部分。那么训练过程大部分的训练时间和计算开销都被Embedding层所占据。所以,Embedding层往往采用预训练的方式完成。)
2. Embedding的预训练方法
作为预训练的Embedding特征向量,与其他特征向量连接后一同输入深度学习网络进行训练。
典型的采用Embedding预训练方法的模型是FNN
FNN:利用了FM训练得到的物品向量,作为Embedding层的初始化权重,从而加快了整个网络的收敛速度。在实际工程中,直接采用FM的物品向量作为Embedding特征向量输入到后续深度学习网络也是可行的办法。
Embedding的本质是建立高维向量到低维向量的映射,而“映射”的方法并不局限于神经网络,实质上可以是任何异构模型,这也是Embedding预训练的另一大优势,就是可以采用任何传统降维方法,机器学习模型,深度学习网络完成embedding的生成。
典型的例子是2013年Facebook提出的著名的GBDT+LR的模型,其中GBDT的部分本质上也是完成了一次特征转换,可以看作是利用GBDT模型完成Embedding预训练之后,将Embedding输入单层神经网络进行CTR预估的过程。
3. Embedding作为推荐系统或计算广告系统的召回层
通过计算用户和物品的Embedding相似度,Embedding可以直接作为推荐系统或计算广告系统的召回层
或者召回方法之一。
其中Youtube推荐系统召回层的解决方案是典型的做法:
Youtube利用深度学习网络生成Video Embedding和User Embedding的方法:Softmax前一层的输出就是User Embedding,Softmax后一层的输出的列向量就是Item Embedding。(在模型部署过程中,没有必要部署整个深度学习网络来完成从原始特征向量到最终输出的预测过程,只需要将User Embedding和Item Embedding存储到线上内存数据库,通过内积运算再排序的方法就可以得到item的排名。这大大加快了召回层的召回效率。
)
学习参考文章:
万物皆Embedding,从经典的word2vec到深度学习基本操作item2vec
深度学习中不得不学的Graph Embedding方法
Embedding在深度推荐系统中的3大应用方向