2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

LinkedIn 是如何用图神经网络扩充会员知识图谱的?

  • 2022-01-21
  • 本文字数:2778 字

    阅读完需:约 9 分钟

LinkedIn是如何用图神经网络扩充会员知识图谱的?

LinkedIn 的会员可以在自己的档案中填充个人信息,例如工作经历、教育经历、技能专长等等。从会员的输入中,我们利用人工智能模型来抽取他们的档案属性或档案实体。这个过程被称为标准化和知识图谱的构建,并生成与会员有关的实体的知识图谱。


这是了解会员档案的重要一环,以便我们能在这个平台上为会员提供更多的相关工作、新闻报道、联系和广告。作为这一过程的一部分,我们也试图对“缺失”的档案实体进行推理,这些实体在现有知识图谱中并没有抽取。比如,一个会员掌握机器学习的技能,在谷歌工作,我们就推断出,这名会员精通 TensorFlow,尽管他们目前的档案中并没有这么说。


有一些原因可以解释为何总有一些缺失的实体。首先,大部分实体抽取技术都是依赖于文本信息。如果在文本中没有特别提及某个实体,则这些模型很有可能错过这个实体。第二,会员不一定会提供全部信息。比如,会员可以不把自己掌握的全部技能都列出来,而是把自己的一些技能放在自己的档案里。通过对缺失的实体进行推理,我们可以在 LinkedIn 的产品中为会员提供更好的推荐。比如,我们可以展示更多的相关工作、新闻报道和他们可能认识的人。


推理缺失的实体具有挑战性,因为它需要对会员的档案有一个整体的理解。当前的实体抽取技术是以文本为主要输入,不能对文本中没有明确提及的实体进行推理。


本文的目的是通过从会员输入的实体,对缺失的实体进行推理。比如,我们想要利用实体“机器学习”和“谷歌”来推理“TensorFlow”。这里的困难在于将多个实体之间的交互考虑在内。有几种简单的统计方式可以从单一的实体中寻找相关的实体,例如,点互信息(pointwise mutual information,PMI)。但是,如果我们仅从“谷歌”中选择相关技能,那么我们就有很大的机会最终得到其他推理的技能,比如“MapReduce”或者“Android”,但与“TensorFlow”相比,它们在这个例子中的相关性并没有那么高。


在这篇博文中,我们将会探讨如何建立一种新的模型,利用图神经网络来解决这一问题。

我们的方法


我们将实体推理表述为图上的推理问题。图 1 是我们对表述的一个可视化。实线是给定会员的现有实体邻居,虚线是潜在的新邻居,在档案中没有明确提及。我们的目标是在给定现有邻居的情况下预测新的邻居,这可以理解为图设置中的标准链接预测问题。


图 1. 会员-实体知识图谱。连接到具有实线(以 ID 作为后缀)的会员的实体是其档案上的现有实体。连接到具有虚线(以“unk”为后缀)的会员是“未知”实体,它是由我们的模型推理而来。


本文采用图神经网络来解决连接预测问题。图神经网络(Graph Neural Network,GNN)是一种用于从图中抽取信息的神经网络,给定一个输入图,图神经网络为每个节点学习一个潜在的表征,这样一个节点的表征就是其邻居的表征集合。


通过这一过程,由图神经网络所学到的表征,可以在输入图中捕捉到连接的结构。在我们的设置中(如图 1 所示),我们的图神经网络将使用其邻居(会员及其实体)学习“company_unk”的表示,然后我们将使用该表示来预测这将是哪家公司;也就是说,我们通过聚合来自现有实体的信息,从而推理缺失的实体。


值得注意的是,由于现有的图神经网络采用了简单的聚合方法,例如平均法或者加权平均法,因此它们在聚合邻居(会员实体)方面存在差距。若现有实体之间存在复杂的交互,那么这种简单的聚合方法将会失效。


本文针对这个问题,提出了一种新型的图神经网络模型,我们称之为 Entity-BERT。这个模型采用了一个多层双向 Transformer 来进行聚合。给定一组现有的实体,我们采用了一个叫做 Transformer 的神经网络,通过计算每一对实体之间的交互(注意力)来更新一个节点的表示。为了捕获实体之间越来越复杂的交互,它会重复这一操作 6~24 次。


在自然语言处理的句子理解方面,多层双向 Transformer 具有卓越的表现,其目的在于理解给定句子中单词之间的交互。尤其是 BERT(Bidirectional Encoder Representation with Transformers,带 Transformer 的双向编码器表示),在各种自然语言处理任务中的性能,超过了其他非 Transformer 神经网络。我们相信,BERT 同样能够提高实体推理的性能。我们的类 BERT 聚合器的结构如图 2 所示。


图 2. Transformer 聚合器。输入是一个给定会员的邻居实体。输出 E[CLS] 嵌入对应于该会员。

训练和推理


该模型通过自我监督进行训练。给定一个会员档案,我们从他们的档案中屏蔽或隐藏一些属性,并学习如何预测被屏蔽的属性。我们用 [MASK] 替换每个会员档案中 10% 的实体,并按其类型(技能、职称、公司、学校等)进行分组。


图 3 展示了一个例子,其中公司和技能被屏蔽了。受自然语言处理中 BERT 的启发,我们也将实体类型作为一个额外的输入,并且给它们分配了类型 ID。例如,公司→1,行业→2,技能→3,职称→4。


图 3. 自我监督的训练


在评分/推理过程中,我们将某些屏蔽的实体添加到会员的档案中,并且指定每个屏蔽的类型。一个例子如图 4 所示。在这里,会员已经拥有了诸如 itle_9、Company_1337、Industry_6、Skill_198 和 Skill_176 等标准化的实体。我们希望为这个会员预测隐藏的技能。因此,我们将一个 [MASK] 实体附加到技能类型上。模型随后会在与 [MASK] 相同的位置输出技能。


图 4. 推理管道

成果

应用 1:技能推荐


我们的技能推荐系统推荐会员可能具备的技能,但这些技能在他们的档案中并没有提及。当会员点击档案的“技能认可”中的“添加技能”(Add a new skill)时,它就会被触发(如图 5 所示)。在新会员创建新的档案时,它也会向他们展示(如图 6 所示)。


图 5. 当会员在其档案上点击“添加技能”按钮时,展示的推荐技能。


图 6. 推荐技能的指导性编辑。


我们利用 Entity-BERT 来推理和推荐未在会员档案上提及的技能。通过将 Entity-BERT 与之前使用会员当前实体并进行简单汇总的方法进行比较,我们观察到,利用基于 Entity-BERT 的方法,可以让会员接受更多推荐。我们还观察到,这些额外的技能使得更多的会员参与,比如更多的会议。

应用 2:广告受众拓展


LinkedIn 的广告商通过会员档案属性指定他们的目标受众,比如向人工智能工程师展示广告。另外,他们中有些人还会选择受众拓展,将受众拓展到拥有类似实体的其他会员,比如向人工智能工程师和人工智能研究人员展示广告。


我们利用 Entity-BERT 对会员的档案实体(公司、技能和职称)进行扩展,并利用这些扩展的实体来拓展受众。在线上 A/B 测试中,与之前没有 Entity-BERT 的扩展模式相比,通过 Entity-BERT 进行的受众拓展,其带来的广告收入在统计学上显示出了重大影响,而不会影响到用户体验(如广告点击)。

结语


在这篇文章中,我们介绍了 Entity-BERT,它是一种新型的图神经网络,可以从现有的会员知识图谱中推理出缺失的会员实体。Entity-BERT 的创新之处在于,它使用了多层双向 Transformer 来捕捉现有实体之间的交互。Entity-BERT 已经表明,它能够有效地对缺失的实体进行推理,从而对产品产生重要的影响。


作者介绍:


Jaewon Yang,LinkedIn 高级软件工程师,韩国人。

Jiatong Chen,LinkedIn 高级软件工程师,中国人,毕业于中国科技大学,耶鲁大学研究生。

Yanen Li,LinkedIn 机器学习工程主管,中国人,毕业于华中科技大学,伊利诺伊大学香槟分校博士生。


原文链接:


https://engineering.linkedin.com/blog/2021/completing-a-member-knowledge-graph-with-graph-neural-networks

2022-01-21 10:244092

评论

发布
暂无评论
发现更多内容

亿级大表分库分表实战总结(万字干货,实战复盘)

比伯

Java 编程 程序员 架构 计算机

React Fiber 是什么?

局外人

react.js 大前端 React

完美!阿里P8仅用242页笔记,就由浅入深讲解了SQL概念

Java~~~

Java sql 阿里巴巴 SQL语法 sql查询

关于linux操作系统中的buff/cache

程序员架构进阶

Linux cache buffer

SQL数据库:子查询和关联子查询

正向成长

SQL子查询 SQL关联查询

【乘风破浪的开发者】丁一超:从AI实战营出发探索未知的AI世界

华为云开发者联盟

华为 AI modelarts

影响王兴的一本书

池建强

读书笔记 无限游戏 王兴

成年人的世界都不容易-看看做到年薪50万的程序员,到底有多累?

Java架构师迁哥

Spring Boot 监听 Redis Key 失效事件实现定时任务

Bruce Duan

Redis监听 监听过期键

排名前 16 的 Java 工具类

Bruce Duan

java工具类

五面进军饿了么!复盘总结11月上半月大厂面试真题,押题命中率高达95%以上

Java架构追梦

Java 阿里巴巴 架构 面试

从红黑树的本质出发,彻底理解红黑树!

996小迁

Java 架构 面试 程序人生

普渡科技荣登甲子光年“2020中国最具商业潜力的20家机器人Cool Vendor”

DT极客

背后技术:双11还能创造什么?

人工智能 数据挖掘 大数据 科技

下笔如有神:这是一个基于营销行业的 AI 技术实践

京东科技开发者

人工智能 自然语言处理 nlp

【涂鸦物联网足迹】涂鸦云平台标准指令集说明

IoT云工坊

人工智能 cpu 物联网 智能家居 指令集

快速理解二十三种设计模式(速记)

simon

设计模式 23种设计模式 Java设计模式

在Android中使用DataBinding(Kotlin)

simon

android Android进阶 JetPack DataBinding 数据绑定

拒招中国程序员后,开源平台 GitLab 又开始大规模封杀开发者账户

Java架构师迁哥

HTTP2服务器推送的第一次尝试

Gopher指北

HTTP2.0 Go 语言

从“小众”到“首选”,推动云原生产业落地华为云作用几何?

华为云开发者联盟

云计算 架构 容器

python+requests对app和微信小程序进行接口测试

测试人生路

Python 接口测试

权威报告发布:京东智联云首次参评即跻身机器学习卓越表现者阵营

京东科技开发者

人工智能 云计算 供应链

anyRTC AI降噪|让声音更清晰

anyRTC开发者

人工智能 AI 音视频 WebRTC RTC

MySQL全面瓦解—子查询和组合查询

比伯

Java 编程 程序员 架构 计算机

你还在使用迭代器删除集合数据,out了,Java 中函数removeIf 不香么

Geek_6f0746

Java JAVA集合 Java迭代器

Spring / Spring boot 异步任务编程 WebAsyncTask

Bruce Duan

异步任务编程 WebAsyncTask

刷Github时发现了一本阿里大神的算法笔记!标星70.5K

Java架构师迁哥

遥感影像处理有高招,“专治”各类花式并发的述求!

华为云开发者联盟

容器 k8s 遥感

多线程问的太深入不知道怎么回答,从volatile开始给你讲清楚

小Q

Java 学习 面试 volatile 多线程

你以为只是简单的排序?(二)

书旅

数据结构与算法 Go 语言

LinkedIn是如何用图神经网络扩充会员知识图谱的?_文化 & 方法_Jaewon Yang_InfoQ精选文章