写点什么

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:243422

评论

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

不愧是字节跳动技术官,算法精髓全写这本666页笔记里了

Java架构追梦

Java 程序员 数据结构与算法、

Stack 顿悟三部曲(1):从CPU的视角说起

蓬蒿

cpu 堆栈 计算机原理 stack

耗时三年终于整理出了SSM+微服务+Nginx+Redis+MySQL的PDF了!

Java架构追梦

Java 后端开发

4年JAVA外包终上岸,我只能说避雷这些公司

爱好编程进阶

Java 程序员 后端开发

网站开发进阶(二十五)JS实现将html表格导出为excel文件

No Silver Bullet

5月月更 表格导出

What?构造的查询语句会导致堆栈溢出

华为云开发者联盟

neo4j 图数据库 堆栈溢出 查询语句 查询语言

云图说 | 华为云医疗智能体EIHealth,AI赋能基因组研究

华为云开发者联盟

华为云 云图说 EIHealth 医疗智能体 基因组

维权思考

成周

跟我学Python图像处理丨获取图像属性、兴趣ROI区域及通道处理

华为云开发者联盟

Python OpenCV 图像处理 图像 ROI区域

云原生 on nLive:云上 Nebula Graph

NebulaGraph

数据库 图数据库 原生云

架构师成长路线

AI架构师汤师爷

软件架构 架构师 成长路线

区块链 重塑不良资产互信机制

CECBC

OpenHarmony 3.1 Beta版本关键特性解析——分布式DeviceProfile

OpenHarmony开发者

OpenHarmony OpenHarmony 3.1 Release DeviceProfile

微服务实战文档分享,阿里内部的Spring cloud微服务精髓都在里面

Java架构追梦

Java 微服务 阿里

2021全网最全Activiti7教程02(Activiti7入门使用-欢迎收藏)

爱好编程进阶

Java 程序员 后端开发

2021年4月23号,成功斩获阿里(Java岗

爱好编程进阶

Java 程序员 后端开发

13-注解增删改查

爱好编程进阶

Java 程序员 后端开发

终于有人把tomcat讲清楚了!阿里大牛推荐的tomcat架构解析文档

Java架构追梦

Java 后端开发 JVM’

大数据培训Flink怎样保证数据是一致性的

@零度

大数据 flink

《数字经济全景白皮书》Z世代用户洞察篇 完整版 发布

易观分析

Z世代

元宇宙核心技术--脑机接口

CECBC

15 个优秀开源的 Spring Boot 学习项目,一网打尽!

爱好编程进阶

Java 程序员 后端开发

[Day36]-[二叉树]-在每个树行中找最大值

方勇(gopher)

LeetCode 二叉树 数据结构算法

Apache ShardingSphere 企业行|走进汽车之家

SphereEx

数据库 企业 ShardingSphere SphereEx apache 社区

2021-11-9【数据结构平时实验】

爱好编程进阶

Java 程序员 后端开发

2年工作经验的Java程序员面试经历

爱好编程进阶

程序员 后端开发

(JavaSE)数据类型变量与运算符

爱好编程进阶

Java 程序员 后端开发

内存不超过5M,datop 在识别冷热内存及跨 numa 访存有多硬核?| 龙蜥技术

OpenAnolis小助手

cpu 内存 datop 轻量级 muma

动手实操丨RC522射频卡模块与IC卡完成充值消费查询的技术实现思路

华为云开发者联盟

stm32 RC522射频卡模块 IC卡 RC522

显卡只是为游戏而生吗?GPU服务器了解一下

Finovy Cloud

GPU服务器 GPU算力

让 Rust 的 CI 加速 2~3倍速度

非凸科技

rust 构建 cl cithub 缓存空间

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