写点什么

LinkedIn 的智能消息回复

  • 2017-11-09
  • 本文字数:1002 字

    阅读完需:约 3 分钟

LinkedIn 发布了一款新的自然语言处理(NLP)推荐引擎,该引擎用于向成员提供智能回复的推荐。工程团队在近期的一篇博客文章中详细地记录了该模型以及基础架构的开发过程

传统的生成消息回复的方法是一个 sequence-to-sequence 模型(在该方法中,回复是逐词计算出来的),但是 LinkedIn 的方法是从有限的库中选择出一个回复。他们的工程师解释说,这样做可以将问题视为多项分类而不是文本生成,从而带来以下优势:

  • 易于训练
  • 更快的进行训练,这是他们能够立即提出回复建议的关键所在
  • 降低不恰当回复的风险

为了创建一组候选回复,LinkedIn 首先将一组对话匿名化,用占位符替代合适的部分。例如,在私人信息中姓名这样的词汇会被替换成“RECIPIENT_FIRST_NAME”。他们还将消息进行标准化处理,该过程会把具有相同含义的消息进行处理成为等同意义的消息(例如“Yup”、“ok!!!”、“Yes, ok!”这样的词汇),并且将这些词汇的含义归为一组。

为了建立多项分类模型,LinkedIn 使用了他们自己的机器学习框架 Dagli。它应用了 Java API,使用有向无循环图来表示机器学习流程,并且该框架将来很可能会开源。

智能回复的一个要求是,仅用一种方式来表示相同意义的建议。例如,“yes”,“yep” 和“yeah”表示的意思全都是“yes”,因此提出这三个相同的回复建议是毫无意义的。工程师们通过只从相同语义组返回一条消息就解决了这个问题。例如,所有的类似“yes”的回复都属于肯定类型的回复组,因此其中只有一条回复会被推荐。

使用语义组来分类存储消息的另一个优点是易于评估。LinkedIn 只需要在预测和实际的回复组之间做一个对比,就可以了解它们的准确程度,其中关注的是含义,而不是具体的文本。

LinkedIn 还指出,由于用户在系统内发送消息的数量巨大,因此在迅速生成智能回复方面存在巨大的规模性挑战。LinkedIn 团队解决这个问题的方法是提前计算回复 (当它们被发送时),并将它们存储到 Expresso 中,Expresso 是 LinkedIn 内部的 NoSQL 数据库。这就避免了昂贵的即时计算,并且这使得在一瞬间就能够提供或多或少的智能回复。

LinkedIn 还建立了一套机制,以确保其成员的信息保持私密。首先,通过对消息进行匿名化,在训练数据中使用信息之前,任何用户的个人信息都应该被匿名化。其次,会有一个选择退出的选项,选择了该选项就意味着用户消息数据不会被系统所使用。

点击这里查看完整的架构的在线文档

查看英文原文: Smart Replies For Member Messages at LinkedIn

2017-11-09 18:001791

评论

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

复古冰雪传奇H5游戏详细图文架设教程

echeverra

游戏开发 游戏

ChaosCraft:和女朋友一起来 Hackathon 表演绝活丨滑滑蛋团队访谈

PingCAP

[架构实战营]-架构实训一

邹玉麒

「架构实战营」

华为云FusionInsight连续三次获得第一,加速释放数据要素价值

华为云开发者联盟

大数据 数据湖 云原生 FusionInsight 华为云

一起玩转LiteOS组件:TinyFrame

华为云开发者联盟

LiteOS 串口 LiteOS组件 TinyFrame

获奖作品公布,快来看看有没有你!

InfoQ写作社区官方

新春征文 热门活动

数据治理平台化的通用框架设计

小鲸数据

架构训练营模块一作业

苍狼

Centos7下Nginx编译安装与脚本安装的记录

edd

架构实战营5期模块1作业

lovles

「架构实战营」

架构图 - 微信 & 学生管理系统

Ntropy

架构实战营

微信朋友圈架构设计

刘洋

#架构实战营

JavaScript 之 Proxy

编程三昧

JavaScript 前端 Proxy 1月月更

高效管理邮件的方式

NinetyH

工具软件 办公效率 邮件管理

模块六

Only

架构师实战营 「架构实战营」

模块六作业

novoer

「架构实战营」

LabVIEW仪表盘识别(实战篇—6)

不脱发的程序猿

机器视觉 图像处理 LabVIEW 仪表盘识别

小程序电商业务微服务拆分及基础设施选型

swallowluo

架构实战营 #架构实战营 「架构实战营」

华山论“件”:Kafka、RabbitMQ、RocketMQ技能大比拼

华为云开发者联盟

kafka RocketMQ RabbitMQ 华为云 消息中间件

LabVIEW实现PCB电路板元器件匹配定位(实战篇—7)

不脱发的程序猿

计算机视觉 图像处理 LabVIEW PCB电路板元器件匹配定位

什么时候该减少质量投入?

QualityFocus

质量管理 软件测试 测试思维

我的架构学习之始

浪飞

Android Studio开发flutter快捷键及文本显示技巧。

坚果

flutter 1月月更

git 使用总结

麦可

git 开发工具

音视频技术如何为元宇宙提供全真稳的全新体验之漫话腾讯云音视频 | 社区征文

liuzhen007

音视频 1月月更 新春征文

微信业务架构 & 学生管理系统架构

凌波微步

「架构实战营」

写了这么多年后端,你知道事务脚本模式吗?

蜜糖的代码注释

Java 互联网 后端

ReactNative进阶(三十六):ES8 中 async 与 await 使用方法详解

No Silver Bullet

Async React Native await 1月月更

WorkPlus赋能数字政府迈入发展新阶段

BeeWorks

模块一作业--

Leo

「架构实战营」

「架构实战营」模块一作业

hxb

「架构实战营」

LinkedIn的智能消息回复_AI&大模型_Andrew Morgan_InfoQ精选文章