写点什么

领英 PYMK 推荐系统优化:为用户带来更平等的人脉

  • 2021-10-09
  • 本文字数:4841 字

    阅读完需:约 16 分钟

领英PYMK推荐系统优化:为用户带来更平等的人脉

作者 | Qiannan Yin

共同作者 | Qiannan Yin、Yan Wang、Divya Venugopalan、Cyrus Diciccio、Heloise Logan、Preetam Nandy、Kinjal Basu、Albert Cui

编译 | 王强

编辑 | 刘燕


最近十年来,个性化推荐技术可能是互联网世界中发展最快、影响最深远的技术种类之一。从流媒体视频到电商购物,从新闻浏览到私房音乐,个性化推荐已经深入到了社会生活的诸多领域,极大改变了人们的生活方式与行为习惯。


但飞速扩散的推荐技术也带来了很多负面效应,引发了多种层面的担忧和反对声。相关问题包括个性化推荐强化的“信息茧房”效应、推荐系统有意无意融入的社会性偏见、推荐系统造成的话语权不公等等。


有些问题的根源并非是技术层面的,但无论是批评家还是技术社区都希望这些问题能通过技术自身的进步来解决 — 就像是人类工业革命以来曾经解决的无数问题一样。


可喜的是,已经有越来越多的企业,包括很多大量应用推荐系统的头部 IT 企业意识到了上述问题,并开始在这一主题中投入资源,全球知名的职场社交平台领英就是其中的一个代表。


领英使用一套推荐系统为用户推送适合他们的岗位与社交信息,而最近这家公司的工程团队对推荐系统做了诸多改进来改善系统的公平性。


2021 年 8 月,领英在工程博客上发表了一篇文章,介绍了相关工作的细节。InfoQ 获得了领英工程团队的许可翻译这篇文章,并就一些问题采访了团队,得到了颇具价值的答复。下面将译文全文与采访内容登出,希望能为国内同仁提供有价值的参考。


领英专注于营造更加公平的环境,为全球劳动力的每一位创造经济机会。为了达成这一目标,一项关键环节是让平台用户能够互相沟通,在线上建立起自己职业的人脉关系网。


我们很清楚人脉的重要性,因为它们可以转化为有形而高质量的职业机会。考虑到人脉在领英用户生活中所发挥的重要作用,我们一直在寻找可以帮助改善所有用户的人脉体验的方法,例如我们在努力缩小人脉鸿沟,还在分享很多有数据支持的建议,帮助大家扩张自己的人脉。


而我们最近的一项工作重心是优化用户体验、创造更多平等的联系机会,这项工作涉及人们在领英上建立人脉时用到的基础功能之一:我们的“猜您认识”(People You May Know,PYMK)推荐系统。

什么是“猜您认识”系统


在领英上建立人脉时,用户会用到的一项基本功能是一个名为“猜您认识”(PYMK)的推荐系统。


PYMK 是领英平台的一项老功能,由我们最早开发的一些机器学习(ML)算法提供支持。PYMK 的目标是帮助用户与可能加强他们职业人脉网络的其他用户建立联系。


领英用户可能出于多种原因希望与平台上的其他用户成为好友,例如联络过去的同学或同事,或从好友那里获得工作机会或职业建议。你可以在领英的“人脉”选项卡上看到这个模块。


PYMK 主要使用经济图谱(Economic Graph)和平台交互等数据来挖掘特征,并使用 ML 算法提出相关建议。


具体来说,它使用线性和非线性模型的组合来估计两个用户之间加为好友的倾向。这个概率产生一个 P(connect)分数,PYMK 随后参考该分数向用户推荐新的潜在人脉。


然而,与其他所有人工智能系统一样,影响这套系统准确性的一大要素是外部社会因素,例如用户在平台外的知名度或特定技术的采用趋势。这可能会导致 AI 驱动的产品反映出某些偏见,让系统更偏好推荐一些人群,忽视另一些人群。


去年,我们对 PYMK 底层算法做出了多项更改,以改善所有用户的 PYMK 体验。这些更改让 PYMK 成为了一项更公平的功能:无论用户已有的人脉有多强、平台使用率多高,系统都会对他们更加一视同仁, 而不是让平台的少数“高级用户”获得更大比例的资源。


此外,尽管我们预计 PYMK 的一些传统关键参与指标(例如发送的邀请)会因这些更改而减少,但我们实际上看到净参与度因此有所提升了。


我们之前改进领英 Feed 得到的经验也是类似的,当时我们优化了创作者,而不仅仅是受众的体验:我们更新 Feeds 时不再只看重病毒式传播潜力排名,结果平台的参与度由此提升了。


过去一年来,随着越来越多的岗位转向了远程状态,我们认为在互联网上建立人脉和职业社交圈的能力将越来越成为人们的必要技能。如果像 PYMK 这样的 AI 驱动系统能够满足大众的普遍需求,那么它们一定会体现出非凡的价值。


在这篇文章中我们将介绍其中的两项更改,看看我们需要解决哪些问题、我们如何实施解决方案,以及迄今为止我们从工作中看到的成果。

发送方-接收方 PYMK 体验整体优化


当一位领英用户想与平台上的某人加好友时,她(发送方)需要向对方(接收方)发送邀请。只有在对方接受邀请后才会建立好友关系。换句话说,除非接收者/被邀请者有机会查看邀请并想要接受它,否则好友是加不成的。


为了在领英上创造更好的用户体验和更健康的人脉生态系统,我们需要确保好友关系双方都从关系中受益。


最近,增长数据科学(Growth Data Science)团队试图解决一个初看上去与增进公平性无关的问题:PYMK 为极受欢迎的领英用户提供的体验并不理想。

通过降低曝光提升用户体验


领英上有一部分用户收到了大量的好友请求,例如行业中的名人、知名的高级管理人员或大公司的招聘人员等。宏观来看,得到不成比例的好友请求似乎与我们既定的缩小人脉差距的目标背道而驰。


然而,它也可能导致用户的人脉被看似随机,或与他们自己的职业没多大关系的用户的 Feed 更新和通知所淹没。被邀请淹没的用户也可能错过很多有价值的社交机会。这种负面体验既体现在了这些用户使用 PYMK 的相关数据中,也体现在了直接用户反馈意见里面。



为了解决这个问题,我们在 P(connect)分数的基础上添加了一个重新排序器,对收到邀请数量过多的接收方的分数做打折/衰减。换句话说,接收方收到的邀请越多,他要显示在 PYMK 结果中所需要的原始分数就越高。



举一个简单的例子来帮助大家理解这一系统的工作原理。在上图中我们有一个排序好的推荐列表,右上角的数字显示了用户已经收到的邀请数量。在我们衰减分数之前,候选人 A 排名第一。


为了重新排序用户,我们计算 newScore = score * df,其中 score 是 pConnect,df 是[0,1]中的衰减因子。假设我们希望降低在过去一周内收到超过 10 个邀请的接收方的优先级。衰减后,A 的新分数变小,因此 A 的排名低于 B、C 和 D。在实际应用中,我们使用分段线性函数来计算给定收到邀请数量时对应的衰减因子。

使用 A/B 测试评估我们的方法


在领英,我们广泛使用 A/B 测试来评估我们大多数产品和 AI 模型的表现。这种方法也用来测试我们的 PYMK 模型,其中用户被随机分配到不同的对照组,分别会看到来自不同模型的建议。


如果一个模型有更好的推荐效果,用户就会发送更多的邀请。这是对发送方的影响,可以直接从 A/B 测试结果中读出。


然而,PYMK 模型的影响不仅限于发送方。用户收到邀请后,会来到领英查看并接受邀请。这是对接收方的影响,但不太容易衡量,因为某些接收方可以收到多个发送方的邀请,因此很难将影响归因于特定的发送方。



为了克服这一挑战,我们开发了一个归因框架来将接收方的会话归因于正确的发送方。例如,如果接收方收到通知说发送方 A 想要连接,然后来领英接受邀请,则会话将归因于发送方 A。如果接收方主动上领英但直接接受来自发送方 B 的邀请,则会话将归因于发送方 B。


实验结果


加入 PYMK 衰减机制后,我们希望用户体验得到改善,因为我们已经让用户不会收到太多邀请了。另一方面,我们也预计用户参与度会略有下降,因为发送的邀请会相应减少。


我们假设如果发送的邀请变少,用户的活跃度就会降低。然而,为了获得更好的用户体验,我们仍然愿意推进这一更改。


更改实现后,我们观察到用户痛点的缓解符合预期。根据我们的调查结果,我们将平台上过载的接收方(过去一周收到过多邀请的用户)数量减少了 50%,并注意到发送和接收好友请求的用户体验有所改善。


另一方面,与预期相反,我们实际上提升了用户参与度,这是违反直觉的。虽然发送的好友请求确实减少了 1%,但我们观察到来自接收方的会话增加了 1%。这是因为原本收到邀请较少的用户收到了更多的邀请,对他们来说,邀请在提升参与度方面的效果更明显。来自发送方的会话影响是中性的。因此总体而言,会话提升了 1%。


从这些实验和对 PYMK 的更改来看,很明显推荐的分布(而不仅仅是推荐带来的人脉结构)对整体平台的健康状况非常重要。

协助参与度较低用户的干预措施


领英考虑的另一关键领域是为处于职业生涯不同阶段,或可能还不熟悉领英(或一般性的在线社交网络)的某些功能的用户提供良好的体验。


对于这些用户来说,PYMK 一直以来都被证明是一项潜能巨大的功能:用户可以更快地找到同事和同龄人,并找到可能成为朋友、潜在导师或未来合作者的他人。


直观地说,与拥有数百个甚至数千个好友的用户相比,好友数很少的用户可能会因多添加一个好友而获得更大的增量效用。


像许多 AI 算法一样,支持我们 PYMK 推荐系统的算法会从导向成功匹配的推荐中学习经验。常驻用户(FM,在领英上参与度更高的用户)在用于训练这些算法的数据中往往比不那么活跃的用户,也就是非常驻用户(IM)具有更大的代表性。


在 ML 应用程序中,由于训练数据中的表征不能均匀分布,算法可能会对某些群体产生偏见。在 PYMK 的情况下,我们观察到常驻用户(由于他们在网站上的较高活动水平而在训练数据中有更大代表性)被推荐给其他用户的几率往往更大。随后,这些用户可以添加更多好友,让他们在训练数据中的权重得到进一步提升。


那么我们如何确保 PYMK 公平地代表两个群体的用户,并避免强化网络行为中的现有偏见呢?


正如我们之前将领英 Fairness Toolkit(LiFT)用于 PYMK 公平用例的博客文章中所讨论的那样,我们已经开发并测试了根据机会均等和均等概率重新排序好友推荐的方法。


这里我们应用到了推荐系统中,给常驻与非常驻用户设定同样的代表性水平以解决这个 PYMK 问题。由此以来,我们看到发送给 IM 的邀请增加了 5.44%,IM 建立的好友关系增加了 4.8%,同时 FM 的相应指标维持不变。


这很有趣,因为通常,当邀请从 FM 组转移到 IM 组时,我们预计后者的指标会增加,而前者的指标会减少。然而,我们观察到 FM 的指标维持不变,IM 的指标增长,这表明推荐质量总体上有所提高。

总结


如前所述,我们负责任的 AI 和设计工作的一个目标是缩小经济机会差距,不因用户在何处长大、在哪里上学或工作而对他们抱有偏见。


另一个目标是识别和减轻我们产品中的系统性不平等和不公平的偏见,反映我们身为全球平台的责任心。


鉴于对常驻和非常驻用户的调整已经取得了成果,我们团队还在做短期和长期测试,以了解调整 PYMK 推荐结果中的曝光度能否提升机会平等性。例如,我们未来的工作将使用受保护的属性(如性别)来对比不同群体。

问答


InfoQ:对接受过多邀请的会员减少曝光率是很好的想法,但是如何应对潜在的恶意利用行为呢?例如,有些人可能通过大量垃圾邀请来误导算法减少对特定成员的曝光率。


Kinjal Basu,机器学习高级软件工程师: 我们邀请系统从设计上就基本杜绝了垃圾邀请轰炸的可能性。比如说一位发送方只能给一位接收方发一次邀请。另外我们有一套机制来让用户控制谁能给自己发邀请,并对他们收到的邀请提出反馈意见,我们还有反垃圾 AI 模型来预防这种行为。


InfoQ:有些会员可能并不在意自己的邀请过载,他们能否选择继续利用之前的算法,继续收到更多邀请呢?


HeloiseLogan,机器学习软件工程师: 用户当然能继续通过 PYMK 以外的渠道收到邀请。例如,他们可以主动搜索别人来发出邀请。PYMK 推荐系统希望能鼓励大家建立对彼此有用的人脉。我们的目标更看重质量而非数量。


InfoQ:领英是如何区分会员不同行为对活跃度的影响呢?(例如,搜索一项职位、发起一次邀请、发表一段评论等行为的活跃度打分是否有很大不同?如果有不同,如何确保这种权重差异的公平性)


Qinnan Yin,数据科学家: 我们会进行各种分析,以了解不同用户行为在不同情况下的影响。发送和接受邀请只是其中一个场景。我们全面评估了不同用户行为的公平性(针对不同产品,如工作推荐、新闻 Feed 排名、PYMK 等)。由于这些产品的性质非常不同,用户行为可能会有显著差异。我们在开放能够缩小可能存在的代表性差距的技术时考虑了这些差异。


原文链接:


https://engineering.linkedin.com/blog/2021/optimizing-pymk-for-equity-in-network-creation

2021-10-09 15:413471
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 531.9 次阅读, 收获喜欢 1975 次。

关注

评论

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

一文了解 Go time 包的时间常用操作

陈明勇

Go golang time

简单聊聊Redis中的几种Java客户端,以及它们的优缺点!

程序员小毕

数据库 redis 程序员 面试 后端

EMQX企业版正式入驻华为云云商城,成为华为云联营联运合作伙伴

EMQ映云科技

物联网 IoT 华为云 云端 企业号 1 月 PK 榜

使用服务网格提升应用和网络安全

HummerCloud

服务网格 云原生安全

【Redis 技术探索】「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移 Redis 数据实战指南(scan模式迁移)

洛神灬殇

redis 数据同步 1月日更 RedisShake

基于单机最高能效270亿参数GPT模型的文本生成与理解

阿里云大数据AI技术

自然语言处理 机器学习 GPT 企业号 1 月 PK 榜

如何实现发送评论时总数自动加一?

Towify

Excelize 2.7.0 发布, 2023 年首个更新

xuri

golang GitHub 开源 编程 Excelize

实录 | MegEngine 大 Kernel 卷积工程优化实践

MegEngineBot

深度学习 开源 卷积 MegEngine 大 Kernel

Hive查询语句

mm

构建并运行 Databend

Databend

databend

让开源和标准成为云原生的确定性力量

阿里巴巴云原生

阿里云 开源 云原生

如何使用API Hub 实现一个图片列表

Towify

《隐私计算白皮书(2022年)》概览

京东科技开发者

技术 安全 隐私保护 白皮书 企业号 1 月 PK 榜

EMQX+阿里云飞天洛神云网络NLB:MQTT消息亿级并发、千万级吞吐性能达成

EMQ映云科技

阿里云 物联网 IoT mqtt 企业号 1 月 PK 榜

Kstry流程编排框架

lykan

软件架构 模块化 流程编排 高并发编程 业务可视化

桌面云是什么?有什么优势?桌面云是云桌面吗?

行云管家

云计算 桌面云 云桌面

KubeVela 获得 2022 “开源新锐”和“开发者最喜爱”双料年度项目

阿里巴巴云原生

阿里云 开源 云原生

送给SQL开发者的一份新年礼物!一款100%自主研发的纯Web化SQL开发工具——SQL Studio 1.0正式发布

雨果

sql 数据库管理工具 SQL开发工具

阿里云开源大数据平台EMR全面升级 性能最高可提升6倍

阿里云大数据AI技术

大数据 云原生 大数据 开源

解决Redis缓存穿透/击穿/雪崩以及数据一致性的方案

风铃架构日知录

Java redis 缓存穿透 缓存雪崩 数据一致性

Java高手速成 | Java集合类泛类型

TiAmo

Java 泛型 编程语言、

全景剖析阿里云容器网络数据链路(一):Flannel

阿里巴巴云原生

阿里云 容器 云原生

从一个Demo说起Dubbo3

宋小生

dubbo RPC Dubbo3

使用无代码构建移动应用程序

间隔

Spring项目中用了这种解耦模式,经理对我刮目相看

JAVA旭阳

Java spring

Rewrite sqllogictest framework in rust

Databend

ThreadLocal源码解析及实战应用

京东科技开发者

Java 源码 技术 后端 企业号 1 月 PK 榜

软件测试/测试开发 | 跨平台设备管理方案 Selenium Grid

测试人

软件测试 自动化测试 测试开发 selenium Grid

市面上数一数二的双机热备系统当属Skybility HA!

行云管家

高可用 厂商 双机热备 双机热备系统

程序员该如何用“高科技”智能地教狗狗上厕所

风铃架构日知录

人工智能 深度学习 程序人生 后端 系统架构

领英PYMK推荐系统优化:为用户带来更平等的人脉_语言 & 开发_Qiannan Yin_InfoQ精选文章