网站制作合作,wordpress 加轮播图,上海网站制作网站制作公司,怎么把网站的标题做的炫酷PinSage是工业界应用图神经网络完成推荐任务的第一个成功案例#xff0c;其从用户数据中构造图#xff08;graph#xff09;的方法和应对大规模图而采取的实现技巧都值得我们学习。PinSage被应用在图片推荐类Pinterest上。在Pinterest中#xff0c;每个用户可以创建并命名图…PinSage是工业界应用图神经网络完成推荐任务的第一个成功案例其从用户数据中构造图graph的方法和应对大规模图而采取的实现技巧都值得我们学习。PinSage被应用在图片推荐类Pinterest上。在Pinterest中每个用户可以创建并命名图板board并将感兴趣的图片pins添加进图板。推荐系统的任务是为每个图片生成高质量的表示向量并据此为每位用户推荐其可能感兴趣的图片。
1.PinSage的模型设计和实现细节
PinSage的输入数据是一张根据用户行为和各类特征生成的大规模网络graph。网络的构造主要包含两个步骤第一步是网络结构方面如何定义边第二步是节点特征方面各种复杂的特征如何表示。
对于第一步Pinterest的应用场景很自然地对应一个二部图一部分节点是图片pins另一部分节点是用户定义的各种图板boards二部图的边对应着图片被添加进图板。通过这种方式全体用户的行为被一个巨大的二部图表示出来。对于第二步每个图片对应多种特征包括图片本身的视觉特征、与图片内容相关的文本标注信息、图片的流行度、图板的文本标注信息等。PinSage利用深度神经网络、预训练的词向量等技术将这些特征整合成节点表示向量。值得注意的是上述的特征提取器是所有图片共享的因此对于那些没有出现在训练过程中的“新图片”来说我们也可以利用训练好的特征提取模型来计算该图片的向量表示。换句话说PinSage不需要在这个巨大的二部图的全图上进行训练只需要在一个规模较小的子图上进行训练即可。 PinSage基本遵循GraphSAGE的框架但在以下三个地方有独特的设计
每个节点领域的定义。由于网络规模巨大如果按照GraphSAGE那样将每个节点的所有邻居节点特征进行融合则计算量太大。PinSage通过随机游走的方式从每个节点的K度邻居中抽取出T个重要的节点其中的“重要性”定义为从目标节点出发的随机游走访问到邻居节点的概率。aggregate操作的具体实现。具体来说以加权平均的方式来实现aggregate操作。这里每个邻居节点的“权重”即为其相对于目标节点的重要性。这一操作为模型效果带来了46%的提升。训练过程中负样本的选取。在训练过程中PinSage优化一个最大间隔函数max-margin loss尽可能地使正样本和负样本的差距大于预设的间距。出于效率的考虑PinSage为每个正样本抽取500个负样本。不过500个负样本对于庞大的图片集200万的规模来说太过渺小抽取出的负样本与正样本有很大概率完全不相关这使得学习的过程过于简单模型的训练效果不好。PinSage采用课程学习Curriculum Learning的方式进行训练在每轮训练中选取难以分辨的负样本。这一操作为模型效果带来了12%的提升。 基于图的机器学习任务主要有点分类、边预测和图分类3大类。记为节点 i 最终的融合特征下面分别是这三类任务具体形式化的例子。
点分类边预测图分类
除了PinSage模型图神经网络目前在工业界的应用还不多。不过学术界对图神经网络在多个领域中的应用已经做出了一些探索表3-2列出了一些代表性的应用论文供感兴趣的读者继续探索。
另一个与图神经网络技术十分相关的话题是网络表示学习Network Representation Learning也就是为图graph中每个节点生成一个固定维数的向量表示使得节点在图上的临近关系可以通过向量距离表现出来。感兴趣的读者可以进一步思考网络表示学习技术和图神经网络的关系。