赞
踩
分类目录:《深入理解深度学习》总目录
前面的文章介绍了由Word Embedding延伸出的Item Embedding等,这些延伸都建立在它们有序列特性的基础上。其实,可延伸的领域还有很多,有些初看起来与序列无关的领域,通过适当变化后,也同样适用。如下图所示,左边是人们在电商网站浏览物品的轨迹,这些轨迹呈图结构,通过一些算法计算后,可以把左图转换为右图这样具有序列样本特征的格式:
Graph Embedding与Word Embedding一样,目的是用低维、稠密、实值的向量表示网络中的节点。目前Graph Embedding在推荐系统、搜索排序、广告等领域非常流行,并且也取得了非常不错的实践效果。图(Graph)表示一种“二维”的关系,而序列(Sequence)表示一种“一维”的关系。因此,要将图转换为Graph Embedding,一般需要先通过一些算法把图变为序列;然后通过一些模型或算法把这些序列转换为Embedding。
DeepWalk方法首先以随机游走(Random Walk)的方式在网络中进行节点采样,生成序列,然后使用Skip-Gram模型将序列转换为Embedding。首先使用Random Walk的方式进行节点采样。Random Walk是一种可重复访问已访问节点的深度优先遍历算法。然后给定当前访问起始节点,从其邻居中随机选择一个节点作为下一个访问节点,重复此过程,直到访问序列长度满足预设条件。获取足够数量的节点访问序列后,使用Skip-Gram模型进行向量学习,最终获得每个节点的Embedding,如下图所示:
DeepWalk方法的优点首先是它可以按需生成,随机游走。由于Skip-Gram模型也针对每个样本进行了优化,因此随机游走和Skip-Gram的组合使DeepWalk成为在线算法。其次,DeepWalk是可扩展的,生成随机游走和优化Skip-Gram模型的过程都是高效且平凡的并行化。最重要的是,DeepWalk引入了深度学习图形的范例。用Skip-Gram方法对网络中节点进行训练。那么,根据Skip-Gram的实现原理,最重要的就是定义Context,也就是Neighborhood。在自然语言处理中,Neighborhood是当前Word周围的字,本文用随机游走得到Graph或者Network中节点的Neighborhood。
DeepWalk只适用无向、无权重的图。在2015年,微软亚洲研究院发布了LINE(Large-scale Information Network Embedding,大型信息网络嵌入)。LINE使用边采样方法克服了传统的随机梯度法容易出现的Node Embedding聚集问题,同时提高了最后结果的效率和效果,如下图所示:
上图将共同作者进行切入,用学习到的Embedding作为输入,使用t-SNE包,将作者映射到二维空间。节点的颜色表示作者所属的技术领域:红色为“数据挖掘”,蓝色为“机器学习”,绿色为“计算机视觉”。
从上图可以看出:
LINE方法可以应用于有向图、无向图以及边有权重的网络,并能够通过将一阶、二阶的邻近关系引入目标函数,使最终学习得到的Node Embedding的分布更为均衡、平滑。
在DeepWalk和LINE的基础之上,斯坦福大学在2016年发布了node2vec。该算法不但关注了同质性和结构性,更可以在两者之间进行权衡。下图展示了node2vec方法的两种搜索策略,其中,BFS表示广度优先,DFS表示深度优先。node2vec所体现的网络的同质性和结构性在推荐系统中也是可以被直观地解释的。同质性相同的物品很可能是同品类、同属性或者经常被一同购买的物品,而结构性相同的物品则是各品类的爆款、最佳凑单商品等拥有类似趋势或者结构性属性的物品。毫无疑问,同质性和结构性在推荐系统中都是非常重要的特征表达。由于node2vec的这种灵活性,以及发掘不同特征的能力,甚至可以把不同node2vec生成的Embedding融合输入后续深度学习网络,以保留物品的不同特征信息。
以淘宝为例,每天用户浏览商品时都会留下轨迹,如下图所示:
这些轨迹或图形中隐含着丰富的信息,如用户对物品(Item)的偏好、用户相似关系、各物品的优劣、物品广告的宣传效果、物品之间的依赖关系、物品与用户的关系等,如何通过这些信息对用户进行个性化推荐或优先排序就显得非常重要。阿里工程师把他们的经验汇集成论文《Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba》,在业界引起了很大反响。
阿里为此把整个过程分成上图所示的四个步骤:
在具体实施过程中,主要可能遇到如下几个技术问题:
针对这些问题,阿里淘宝团队提出了基于Graph Embedding的算法来解决:
将知识图谱作为辅助信息引入推荐系统中,可以有效解决传统推荐系统存在的稀疏性和冷启动问题,近几年有很多研究人员在做相关的工作。目前,将知识图谱特征学习应用到推荐系统中的方式主要有三种:依次学习(One-by-OneLearning)、联合学习(Joint Learning)以及交替学习(Alternate Learning)。
依次学习的具体学习方法是首先使用知识图谱特征学习得到实体向量和关系向量,然后将这些低维向量引入推荐系统,学习得到用户向量和物品向量。
联合学习是指将知识图谱特征学习与推荐算法的目标函数结合,使用端到端(end-to-end)的方法进行联合学习。
交替学习是指将知识图谱特征学习和推荐算法视为两个分离但又相关的任务,使用多任务学习(Multi-TaskLearning)的框架进行交替学习
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。