从Pinterest到阿里,再谈产业界的引荐零碎_欧博娱乐

从Pinterest到阿里,再谈产业界的引荐零碎

本文受权转载自大众号:硅谷顺序汪

作者:王栋

不久前我曾写过一篇文章,“Pinterest引荐零碎四年退化之路”,这些日子又看了另外引荐零碎文章,特地听了Related Pins团队马教师的讲座,对这个题目有了新的看法和各人分享。

这篇文章和技能相干,不免有了解不到位乃至错误的中央,还望列位冤家包涵而且指正。

在最上面我还提到了一篇阿里系的文章,对该文章有不少理论上的猜测和疑问,盼望和理解的人多多交换。

Representation Learning

在讨论对Pinterest引荐零碎新看法之前,我们先来看一个老题目Representation Learning on Network(网络表现学习)。

在图上有许多经典题目和使用,比如说在预测一个节点的种别,在人际干系网络中预测你的兴味喜好,另有一类使用便是link prediction,可以经过link prediction对网络中的节点做引荐。

这时网络表现学习就派上用场了,人们经过剖析网络节点,边,或许子图,对节点停止向量化,可以使庞大的网络信息酿成构造化的多维特性,从而应用呆板学习办法完成下面提到的一些使用。

2014年的时分遭到Word2Vec解法Skip-gram的启示,人们开端把网络构造当做一个文档的聚集,节点当做单词,然后从网络中经过随机游走发生句子,经过Word2Vec对节点向量化。这一思绪先后在两篇文章中被细致引见,DeepWalk和Node2Vec。此中Node2Vec的作者之一Jure Leskovec如今也是Pinterest的首席迷信家。

Node2Vec的优化目的是关于恣意图中节点,最大化它的邻人观察到的概率:

1

他接纳的做法是对DeepWalk更狭义水平上的笼统:biased-random walks。这个bias用来调理每次random walk是更像一个广度优先搜刮(BFS),照旧深度优先搜刮(DFS)。关于极度状况,接纳BFS的时分,每一个节点的观察被限定在度为1的邻人上,也便是下图的节点1,2,3。这种观察有助于提取网络structural的信息,两个拥有异样邻人的节点在向量化后间隔很近。接纳DFS的时分,我们不时走向其他节点,如下图的4,5,9。这种状况有助于提取网络homophily的信息,也就说两个互相衔接通路较多的节点在向量化后间隔很近。

2

Node2Vec经过两个参数来bias random walk是更像BFS照旧DFS。一个参数叫做return parameter(p),当p越高,我们越不去对之前两步走过的节点停止取样,如许我们就可以对更多的节点停止采样。另一个参数叫做in-out parameter(q),用来控制我们向外走照旧向内走,当q越大,我们越情愿拜访离以后节点较远的节点。

以下是他们算法的伪代码:

3

Deep Learning to Related Pins

回归到Pinterest的使用场景,在我的文章“Pinterest引荐零碎四年退化之路”里有引见一局部Pinterest Related Pins来自于Session Co-occurence。其次要缘由是只基于Pin和Board的联系关系图停止引荐的算法固然有着很好的recall,但是他们不克不及区分Pin外面纤细的主题,不克不及够依据用户在将Pin参加到一个Board时的上下文停止引荐,于此同时Board也容易随着用户的兴味转移而变更主题。

就比如上面这张公狮子和母狮子的图,只基于Board Co-occurence失掉的引荐如下:

4

但这一题目可以经过发掘偶然效性的用户举动失掉处理,也便是Pin2Vec。该办法把用户Pin工具的举动当做文章,Pin当做单词,异样接纳Skip-gram的办法对Pin停止向量化,一个笼统的图如下,详细操纵可以参考Pinterest的工程师文章“Applying deep learning to Related Pins”:

5

接纳剖析用户Session的办法,我们对下面的Pin失掉的Related Pins如下:

6

在上周听了马教师引见Related Pins的时分,我忽然发明实在这和Node2Vec也是雷同的,异样基于Skip-gram模子,假如换一种角度来看实在Pinterest的做法也算是学习网络表现。

我们可以把Pinterest上每一个Pin当做一个节点,每当有效户保管了一个Pin A和另一个Pin B之后,就在Pin A和Pin B之间树立了一条边。关于如许一个有许多许多Pin和用户举动构成的网络,我们可以接纳Node2Vec中提到的biased random walk办法对Pin停止向量化,从而优化相干Pin之间的间隔。Pinterest之前的做法接纳用户每一个Session中保管的Pin sequence当做句子停止向量化,实在等价于一个发生异样序列的random walk。

以下是我和Pinterest引荐团队交换后本人猜测的一些优优势。

基于random walk将网络节点向量化实在可以更好地使用到更大的网络构造当中去,由于随机游走的办法针对度大的和度小的节点都可以发生充足多的序列,失掉掩盖面比拟高的向量。相比而言,Pinterest只依据用户举动发生序列则只能对度大的节点发生充足多的序列,停止向量化,掩盖面不高,最初只使用到比拟盛行的Pin上。

但是random walk的办法总的来说随机性比拟大,Pinterest如今的解法,每走一步都能包管这一步前后的两个Pin在某种意义上是相互联系关系的,但是当随机游走屡次之后,走过的边能够是差别用户在差别上下文发生的,以是序列首尾的联系关系性能够无法包管。假如我们只依据用户举动发生序列停止取样则可以极大水平上包管联系关系性。

以是,我们是不是可以联合biased random walk和如今Pinterest基于用户举动的取样在一同,在每次第列取样的时分,只管即便倾向某一个用户的举动发生的边,如许可以在联系关系性和节点掩盖面上到达一个更好的均衡。不外Pinterest差别的Pin图像有上十亿种,以是掩盖不了一切的节点也是正常的。

我曾经不在Pinterest任务了,但是感兴味的小同伴无妨尝尝。

Asymmetric Proximity

最初我想扼要提一下非对称类似度的题目,在往年AAAI 2017的集会上,一群来自北大和阿里的牛人宣布了这么一篇文章“Scalable Graph Embedding for Asymmetric Proximity”。他们的观念十分有原理,比如在下图中,传统的作法最初后果不论在无向图照旧有向图中,节点的向量类似性是对称的,Sim(A,C) = Sim(C,A)。但是在实践使用进程中,可以分明看出由A到C和由C到A的联系关系性是很纷歧样的,举一个电商的例子,买跑步机的人很容易想到买一个垫子维护地板,但买垫子的人纷歧定会去买一个跑步机。

7

在使用网络表现向量化的后果处理实践题目的时分,我们经常可以接纳一些节点特有的特性来停止优化,比如节点的度,其他标签等信息,但是北大和阿里的这帮人想让向量本人处理这一题目。

他们的做法实在并不庞大,便是将传统的一个节点向质变成了一个节点发生两个向量s与t,然后优化肇始点为u到目的点v之间的联系关系度:

8

间接看他们的伪代码,针对每一个节点停止了多少次取样,每次取样失掉一个节点u,而且优化v到u的联系关系性,然后随机取样k个节点,低落他们的联系关系性。他们在完成的时分接纳了path sharing的做法,无效的低落了取样的次数。

9

假如只是到这里,他们的论文还只是普通吸引我,但是我看到他们说实行时分接纳了淘宝的数据,约莫有290 million的产物和18 billion条边,如许范围的产业界数据和实行后果黑白常有压服力的,而且我以为可以使用到Wish的产物引荐当中。

他们详细测试办法是用向量化的特性来选择每个店肆的每个分类Top 6展现产物,网络构造是像Pinterest上文中提到的Session Sequence那样天生的,终极他们的新办法有10%到15%的在线CTR提拔,让人面前目今一亮。

10

序幕…

单单看Node2Vec只是理解一个思绪,但是联合Pinterest的Engineer Blog和阿里这篇Graph Embedding一同则令我收获颇丰。上文只是我团体怎样看基于用户举动引荐和网络表现学习之间的类似性,这里每一篇论文都不难,但是小本领可以给差别的使用带来很大的提拔。

还像往常一样,我在这里只是抛砖引玉,盼望列位长辈多多辅导交换。假如我的大众号里有更理解阿里淘宝那篇论文的同窗,欢送与我联络,关于这篇文章我另有许多迷惑,盼望失掉更多交换。

最初,在我把这篇文章给冤家阅读的时分,他们通知我近来Jure又在Pinterest实验新的办法,基于GraphSage,有谁晓得结果怎样欢送留言给我。

本文受权转载自大众号:硅谷顺序汪,作者:王栋

很负疚,依据相干执法法例,本站临时封闭批评,欢送移步至欧博娱乐App宣布您的批评
更多风趣好玩的内容 尽在欧博娱乐微信大众号
brand

PingWest欧博娱乐挪动客户端