社交软件上“你可能认识的人”到底是怎么找到你的?

摘要:你老死不相往来的EX,早已记不起相貌的初中同学、前同事、甚至你最不想见到的人——你的BOSS,这些人是怎么出现在你社交软件推荐用户的名单里的呢?这其中关键技术便是:知识库的链接预测,又称为知识图谱补全。
image.png

众里寻他千百度,蓦然回首,那人却在推荐名单处。

社交软件最牛的地方之一,一定是用户关系的深度挖掘。明明你已经拉黑了某些人的电话、微信、以及所有社交账号,但TA还是毫不例外地出现在页面上“你可能认识的人”里。这些人包括你老死不相往来的EX,早已记不起相貌的初中同学、前同事、甚至你最不想见到的人——你的BOSS。
image.png

▲抖音-发现朋友

那么,这些人是怎么出现在你的名单里的呢?

这其中关键技术便是:知识库的链接预测,又称为知识图谱补全。

一图理解什么是知识图谱?

知识图谱是一种将知识写成结构化三元组的多关系图,包含了实体、概念和关系。

实体指的是现实世界中的事物比如人名、地名、机构等。概念指的是具有同种特性的实体构成的集合,如下图中的“运动员”、“金球奖”等。关系则用来表达不同实体之间的某种联系。

知识图谱用实体和关系组成图谱,为真实世界的各个场景直观建模。构建知识图谱的过程本质是建立认知、理解世界的过程。
image.png

如何进行知识图谱补全

以小明为例,小明就职于位于五道口的新浪,系统可以推测出小明在北京工作。并将同样在北京新浪工作的小王推荐给了他。在下图中,蓝色的箭头表示表示已存在的关系,红色箭头为知识图谱补全后的关系。
image.png

知识图谱与知识表示学习的关系

知识图谱是由实体和关系组成,通常采用三元组的形式表示——head(头实体),relation(实体的关系),tail(尾实体),简写为(h,r,t)。知识表示学习任务就是学习h,r,t的分布式表示(也被叫做知识图谱的嵌入表示(embedding))。可以这么说,有了知识图谱的Embedding,AI式的知识图谱应用才成为可能。

如何理解嵌入表示Embedding?

简单来说,embedding是对一个对象(词、字、句子、文章…)在多个维度上的描述,相当于通过数据建模的方法来描述一个对象。

举个例子,我们经常用到的Photoshop里关于颜色的RGB表示法就属于一种非典型的embedding。在这里颜色被拆成三个特征纬度,R(红色强度,取值范围0-255),G(绿色强度,取值范围0-255),B(蓝色强度,取值范围0-255)。RGB(0,0,0)就是黑色。RGB(41,36,33)就是象牙黑。通过这样的方法,我们可以通过数字来描述颜色。
image.png

知识表示学习都有哪些方法

知识表示学习的关键是设计合理的得分函数,在给定事实三元组为真的情况下我们希望最大化得分函数。它从实现形式上可分为以下两类:

基于结构的方法

该类模型的基本思想是从三元组的结构出发学习知识图谱的实体和联系的表示,其中最为经典的算法是TransE模型。该方法的基本想法是头向量表示h与关系向量表示r之和与尾向量表示t越接近越好,即h+r≈t。这里的“接近”可以使用L1或L2范数进行衡量。原理图如下:
image.png

该类知识表示学习模型还有:TransH, TransR, TransD,TransA等。

基于语义的方法

这类模型是从文本语义角度出发学习KG的实体和关系的表示。这类表示方法主要有LFM, DistMult, ComplEx, ANALOGY, ConvE等。

知识表示学习的应用

由于基于表示学习,可以将知识图谱的实体和关系进行向量化表示,方便后续下游任务的计算,典型应用有以下几种:

1)相似度计算:利用实体的分布式表示,我们可以快速计算实体间的语义相似度,这对于自然语言处理和信息检索的很多任务具有重要意义。

如何进行相似度计算呢?举个例子。

假设"李白"这个词的embedding一共是5维,其值为[0.3, 0.5, 0.7, 0.03, 0.02],其中每个维度代表和某个事物的相关性,这五个数值分别代表[诗人,作家, 文学家,自由职业者,侠士]的含义。

而"王维"=[0.3, 0.55, 0.7, 0.03, 0.02],"牛顿"=[0.01, 0.02, 0.06, 0.4, 0.01],我们可以用余弦距离(几何中,夹角余弦可用来衡量两个向量方向的差异;机器学习中,借用这一概念来衡量样本向量之间的差异。)来计算这几个词的距离,显而易见李白和王维的距离更近,和牛顿的距离更远。 由此可以判断“李白” 和“王维”更为相似。

2)知识图谱补全。构建大规模知识图谱,需要不断补充实体间的关系。利用知识表示学习模型,可以预测2个实体的关系,这一般称为知识库的链接预测,又称为知识图谱补全。上文中“五道口小明”的例子可以很好的解释。

3)其他应用。知识表示学习已被广泛用于关系抽取、自动问答、实体链接等任务,展现出巨大的应用潜力。

自动问答是与知识表示学习深度结合的一大应用。对于智能问答产品来说,后台设计时,一般分为3层,输入层、表示层、输出层。输入层简而言之就是问题库,这里集合了所有用户可能会问到的问题。再经过表示层的知识抽取,最终返回结果。
image.png

典型的智能问答产品有苹果Siri、微软小冰、百度、阿里小蜜等。这些问答产品的一大特色是,可以使搜索结果更精准,而不是返回一堆相似的页面让你自己去筛选,达到“所答即所问”。比如,搜索“王思聪的身价多少”,返回来的结果就是具体的数字。
image.png

总结

简而言之,社交产品基于知识图谱知识补全技术,通过实体和关系的表示对缺失三元组进行预测,在已知头实体以及头实体间的关系,预测其尾实体。也就是说,它们是根据用户画像来进行朋友推荐的,如果你不想那些“老熟人”出现在你的推荐名单里,最好的方法是,关掉社交产品上的地理定位、尽可能少地透露个人信息。

参考资料

1、刘知远,孙茂松,林衍凯,谢若冰《知识表示学习研究进展》

点击关注,第一时间了解华为云新鲜技术~


开发者之家
华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态...

生于云,长于云,让开发者成为决定性力量

1.3k 声望
1.7k 粉丝
0 条评论
推荐阅读
【贺】来自开发者的点赞,华为云开发者联盟入选 2022 中国技术品牌影响力企业榜
2023 年 1 月 4 日,中国技术先锋年度评选 | 2022 中国技术品牌影响力企业榜单正式发布。作为中国领先的新一代开发者社区,SegmentFault 思否依托数百万开发者用户数据分析,各科技企业在国内技术领域的行为及影...

华为云开发者联盟阅读 487

花了几个月时间把 MySQL 重新巩固了一遍,梳理了一篇几万字 “超硬核” 的保姆式学习教程!(持续更新中~)
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

民工哥11阅读 1.1k

封面图
一次偶然机会发现的MySQL“负优化”
今天要讲的这件事和上述的两个sql有关,是数年前遇到的一个关于MySQL查询性能的问题。主要是最近刷到了一些关于MySQL查询性能的文章,大部分文章中讲到的都只是一些常见的索引失效场合,于是我回想起了当初被那个...

骑牛上青山8阅读 2.3k评论 2

程序员英语学习指南
动机为什么程序员要学习英语?工作:我们每天接触的代码都是英文的、包括很多技术文档也是英文的学习:最新最前沿的技术最开始都是只有English版本就业:学好英语让你的就业范围扩大到全球,而不只限于国内目标读...

九旬6阅读 656

又一款内存数据库横空出世,比 Redis 更强,性能直接飙升一倍!杀疯了
KeyDB是Redis的高性能分支,专注于多线程,内存效率和高吞吐量。除了多线程之外,KeyDB还具有仅在Redis Enterprise中可用的功能,例如Active Replication,FLASH存储支持以及一些根本不可用的功能,例如直接备份...

民工哥4阅读 838评论 1

封面图
2023最新MySQL高频面试题汇总
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~

程序员大彬3阅读 994

Mysql索引覆盖
通常情况下,我们创建索引的时候只关注where条件,不过这只是索引优化的一个方向。优秀的索引设计应该纵观整个查询,而不仅仅是where条件部分,还应该关注查询所包含的列。索引确实是一种高效的查找数据方式,但...

京东云开发者2阅读 951

封面图

生于云,长于云,让开发者成为决定性力量

1.3k 声望
1.7k 粉丝
宣传栏