原文连接node
电商时代,消费者对推荐系统已经再也不陌生。“蓦然回首”,你发现喜欢的商品就在首页显眼处。算法
现在,不只仅是电商网站首页会给你贴心推荐。你逛进一家淘宝商家的店铺,也颇有可能享受到推荐算法的服务。网络
这是阿里商家事业部推出的智能店铺“千人千面”模块。数据结构
阿里商家事业部相关负责人介绍,单纯经过算法作出的商品推荐,未必符合商家利益。常有商家抱怨,自家想卖的商品得不到推荐,营销被算法牵着鼻子走。而“千人千面”,就是先让商家给出他们想要推送的商品集,算法再从指定候选集中为进入某家商铺的消费者作个性化推荐。如此一来,算法能够为商家的营销服务,为商家既定的 营销计划“锦上添花”。框架
不过要作到这一点并不简单。dom
业界推荐系统每每由Matching和Ranking两部分组成。Matching部分会根据全网用户的浏览、加购、收藏等行为数据,在一个庞大的商品池中找出较小的候选集。 Ranking则是利用综合用户Profile,偏好,以及商品特征等信息训练得出的一个打分排序模型。机器学习
可是,阿里电商目前拥有百万级别的活跃店铺,单个用户在单个特定店铺内的行为记录很是匮乏,很难按传统方法有效进行matching。ide
对此,阿里商家事业部提出一种高可扩展性的Graph Embedding(图嵌入)方法,并创新性地将它应用到商品的embedding中。它可以以很是小的存储空间来计算任意两个商品的类似度。就算你此前从未踏足这家店铺,算法也能根据你此前在别家的浏览记录,从店铺里挑出你可能喜欢的商品,摆在你面前。函数
模块投入使用后,商家的商品点击率提高了30%,成交量提高60%。学习
从学术层面来讲,该Graph Embedding方法可学习到可以描述图中节点间高阶的、非对称类似度的低维Embedding向量,而且能够在理论上解释这种基于机器学习的方法和基于预约义的传统节点间类似度的关系,相关论文已被人工智能领域的顶级会议AAAI'2017接收。
如下是论文的中文描述:
工业界的推荐系统一般由Matching和Ranking两个部分组成,Matching部分会根据全网用户的浏览、加购、收藏等行为数据,利用协同过滤一类的算法(例如基于商品的ItemCF)在一个庞大的商品池中找出一个足够小的候选集,以缩小后续算法须要评估的范围。Ranking则是利用综合用户Profile,偏好,以及商品特征等额外信息训练得出的一个打分排序模型。
咱们的推荐场景,即对于店铺私域内的千人千面推荐模块来讲,其与公网推荐的重要区别在于,推荐的目标仅限于很小的一部分商家指定的商品集。
传统的Matching这部分所遇到的难题在于,阿里电商目前拥有百万级别的活跃店铺,这使得单个用户在单个店铺内的行为记录很是稀疏。而在不少状况下,用户在近期首次进入某商铺主页时,因为缺少店内的行为信息(如足迹商品),很难有效利用店内ItemCF来进行推荐。
ItemCF的核心问题之一在于如何有效衡量与计算item与item之间的类似度\parencite{recsurvey05}。对于全网推荐的应用场景,因为商品数量太大,一般咱们会离线计算出每一个item前k个类似的item list\parencite{itemcftopk},来用于在线打分的推荐方案。
然而,若是咱们直接用全网topk item类似度的数据,对于每一个商品来讲,与他类似的商品数目其实可能不少,但因为topk的限制(一般小于200),只有极少数店铺的商品才可以被召回,即基于全网top-k的商品类似度在同店推荐中的召回能力比较有限。
固然,咱们可使用一样的方法,对于每一个店铺,仅计算店铺内部的i2i数据,来完成推荐。这样作的缺陷在于,彻底没法覆盖用户没有店内足迹的状况。
所以,为了提升类似商品的召回,以覆盖用户没有店内足迹的状况,咱们使用了图嵌入算法APP来基于用户浏览记录来作商品嵌入——试图将商品嵌入到一个低维空间中,同时保存一些商品之间的结构特征,即商品类似度。这样就能够用稳定、较小的代价在线算出任意两个商品之间的类似度了。
“旺铺智能版智能模块“是一款面向中小商家的、商家可运营的个性化商品装修模块。在商家侧算法提供面向场景的选品,同时容许商家对算法商品池进行调整,或者彻底手动创建商品池;在消费者端,个性化算法基于商家设置的商品池对访客进行实时投放。产品设计上必定程度上知足了商家肯定性需求,在此基础上经过个性化算法提高成交转化。
咱们研究Graph Embedding的初衷是为旺铺模块千人千面场景提供覆盖率高的Match支持。由于用户在店铺内部的行为稀疏,传统的基于I2I的 match覆盖率较低。而经过Embedding能够计算出任意两个商品之间的Match分数,极大改善覆盖率问题。
咱们提出一种高可扩展性的Graph Embedding方法,该方法可学习到可以可描述图中节点间高阶的、非对称类似度的低维Embedding向量。同时咱们提供理论上的解释,来阐述这种基于机器学习的方法和基于预约义的传统节点I2I类似度的关系。
1.背景介绍 & 相关工做
图是一种抽象程度高、表达能力强的数据结构,它经过对节点和边的定义来描述实体和实体之间的关联关系。经常使用的图有社交关系网络,通讯网络,商品网络,知识图谱等等。
而如何衡量图中节点之间的类似度,对于朋友推荐、商品推荐、以及常见的分类聚类问题来讲都是一个很重要的前置步骤。Graph Embedding能够理解成是一种降维技术,它能够将图中的节点映射到一个低维空间里,咱们只须要经过计算低维向量之间的关系,就能够获得原来节点之间的关联关系。
尽管传统Embedding技术被研究了好久,但他们的复杂度每每都在N^2级别以上,难以适应大规模数据。最近的一系列可扩展性较强的Graph Embedding工做主要是从DeepWalk【6】开始,后面有Line【7】,Node2vec【2】等等。DeepWalk在原图中作了一些路径采样,而后将路径看成一个句子,路径中的点看成单词,以后就采用word2vec中提出的Skip-Gram with Negative-Sampling【5】方式进行训练,获得每个节点的embedding向量。Line只针对边进行采样。Node2vec能够调节参数来进行BFS或者DFS的抽样。
然而图中的路径采样在几率上有着很是严重的非对称性,以前的这些方法并无注意到这件事,也没有从理论上来思考为何这么干不太科学。
例如在有向图(图1)中,对于A来讲,可能并不关心C,而对于C来讲,A极可能是他的兴趣点。即便在无向图中(图2),也有一样的现象。这样的节点非对称性关系是因为节点周围的图结构不一样形成的。而从C出发的路径C->B->A和从A出发的路径A->B->C有着彻底不相同的几率(0.5,0.08)。所以咱们不能认为C->B->A这条路径的产生会带来一个(A->C)的正样本。
图 1有向图中的非对称性
2.咱们的工做
咱们的工做所作的改进其实很是简单,首先为了有能力表达非对称性类似度,咱们为每一个节点引入了两种Embedding向量,分别是Source向量和Target向量,如图一所示。咱们将对于A来讲B的类似度记为 sim(A,B) ,并使用Source(A)与Target(B)的点积来表示,图一中咱们能够从Embedding中算出sim(A,C)
图 3节点的两种Embedding 身份
其次咱们遵循了一种标准的、用来估计Rooted PageRank【3】的蒙特卡洛随机游走的方法【1】【8】来进行正例的采样。
节点u对于节点v的Rooted PageRank(PPR)值表明了从v出发落在u点的几率。咱们认为以这种方式生成图中节点对的正样例是更加天然、合理、有说法的。
这类游走方法都是基于常见的Random Walk with Restart,即从一个点出发以(1-alpha)的几率选择邻居进行跳转,另外alpha的几率跳转回本身。那么现有的几种方法稍有一些区别:
例如Monte Carlo End Point只保留首次跳转以前的节点,Monte Carlo Full Path保留路径上的全部节点,将路径的后缀也看成有效的采样【1】。由于这两条路径对于起始点来讲能够看做是相互独立的。在最新的工做中也有对前缀路径进行重用的【8】,就再也不此展开。值得注意的是,后两种的采样效率相对于1来讲要更高,尽管这三种方法都在各自的文章中被证实是正确且有Bound的。
咱们遵循这类游走方法,企图给图中的节点对创造一些正样本。对于每个被标记为正例的样本(A, B)咱们会根据目标函数更新A的source向量和B的target向量。而且随机采样其余的节点做为负样本。
利用Skip-Gram with Negative-Sampling【5】,近似等价于优化
K是负采样数,P_D(n)在图中可用均匀分布替代。则总的目标函数以下:
下面咱们来解释一个有趣的现象,咱们非对称的点积最终会是以学习出两点之间的PPR的对数为目标。
这里,相似于Levy【4】的证实,当维数充分大时,可看做互相独立的变量。因而另下式为0:
因为|V|, k均为常数,咱们能够看出x只跟Rooted PageRank的模拟值Sim_u(v)呈对数关系。经过以上证实,论证了该方法能够保持非对称的、高阶类似度的说法,由于Rooted PageRank就是一种非对称的、高阶的类似度度量。
3.小数据集上的实验
Link Prediction Task(AUC):Embedding方法相对于传统Pre-defined i2i指标来讲,在AUC上很占便宜。由于传统指标大多基于2跳之内的关系,包括阿里内部使用的Swing。这样就有不少正例的结果是0——彻底没法和负例分开,AUC不高。能够看出咱们的方法(APP)在比现有的方法要好一些。
下表是为了体现非对称性的优点,而在负样本中加大了单向边的比例,即A->B有边,B->A无边。能够看出咱们与以前的方法在LinkPrediction任务上有显著提高。
值得注意的是,在寻找topk的这个问题当中,咱们发现以前的Embedding方法彷佛并无传统指标靠谱。但咱们的方法能够比较好的反应Topk的类似关系。
4.在模块千人千面中的实践
为了缓解用户在店铺内部行为的稀疏性,咱们将用户Session中的全网点商品击序列转化成一个全网商品点击转换图。以后应用咱们的Graph Embedding方法获得商品向量。该向量能够用来计算用户点击行为所产生的商品之间的类似度。下图是咱们与传统topk i2i方法在真实场景中的点击率比较。
咱们的这项工做目前还只是做为Match打分的基础算法,咱们正在尝试进一步融合一些外部信息,如商品文本属性、类目信息等,提升长尾商品的结构化Embedding质量。
5.参考文献
【1】 Fogaras, D.; R´acz, B.; Csalog´any, K.; and Sarl´os, T. 2005. Towards scaling fully personalized pagerank: Algorithms, lower bounds, and experiments. Internet Mathematics 2(3):333–358.
【2】 Grover, A., and Leskovec, J. 2016. node2vec: Scalable feature learning for networks. In International Conference on Knowledge Discovery and Data Mining. ACM.
【3】 Haveliwala, T. H. 2002. Topic-sensitive pagerank. In Proceedings of the 11th international conference on World Wide Web, 517–526. ACM.
【4】 Levy, O., and Goldberg, Y. 2014. Neural word embedding as implicit matrix factorization. In Advances in neural information processing systems, 2177–2185.
【5】 Mikolov, T.; Sutskever, I.; Chen, K.; Corrado, G. S.; and Dean, J. 2013. Distributed representations of words and phrases and their compositionality. In Advances in neural information processing systems, 3111–3119.
【6】 Perozzi, B.; Al-Rfou, R.; and Skiena, S. 2014. Deepwalk: Online learning of social representations. In Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining, 701–710. ACM.
【7】 Tang, J.; Qu, M.;Wang, M.; Zhang, M.; Yan, J.; and Mei, Q. 2015. Line: Large-scale information network embedding. In Proceedings of the 24th International Conference on World Wide Web, 1067–1077. ACM.
【8】 Liu, Q.; Li, Z.; Lui, J.; and Cheng, J. 2016. Powerwalk: Scalable personalized pagerank via random walks with vertex-centric decomposition. In Proceedings of the 25th ACM International on Conference on Information and Knowledge Management, 195–204. ACM.