写点什么

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

评论

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

如何基于 OAM 编写一个扩展 Trait?

钱王骞

云原生 k8s OAM

iPad配置OpenVPN客户端

wong

ipad OpenVPN

如何让程序员变得没朋友

四猿外

程序员 个人感悟 技术人生 经验分享

原创下载 | TDD工具集原创开源代码免费下载!

编程道与术

Java 开源 TDD 下载 代码

知乎Matisse图片库在Android10上拍照,预览问题

三爻

android

游戏夜读 | 如何制作游戏?

game1night

面向对象的三个基本特征(要素)

彭阿三

三要素 三个基本特征 封装、继承、多态

Zookeeper 序列化

CoderLi

Java zookeeper 源码分析 后端

下周要开始“卖桃者说”代班计划了

霍太稳@极客邦科技

日常

中电标协提出并归口:《政务APP评价指标》团体标准开启制订工作

博睿数据

App 标准化 中电标协 政务信息化 博睿宏远

架构师训练营学习总结——框架设计【第二周】

王海

极客大学架构师训练营

JAVA 中的 CAS

犀利豆

Java 并发 CAS

Java | 原来 serialVersionUID 的用处在这里

YoungZY

Java

自由是不是随心所欲?

Neco.W

个人成长 自由 控制

ZooKeeper 数据模型:节点的特性与应用

CoderLi

zookeeper 源码分析 数据模型 节点

情绪管理 - ABC理论

石云升

情绪控制 ABC理论 费斯汀格法则

机器学习算法评估指标—2D语义分割

做技术BP的文案Gou

学习 2D 评估标准 语义分割

Java 序列化

CoderLi

Java 程序员 后端 序列化

重学 Java 设计模式:实战外观模式「基于SpringBoot开发门面模式中间件,统一控制接口白名单场景」

小傅哥

设计模式 小傅哥 重构 代码质量 代码坏味道

钩陈/ 好中文作业:巴别塔

ZoomQuiet大妈

写作 大妈 是也乎 IMHO 蟒营®

副业月赚 10 万的程序员是如何做销售的?

非著名程序员

程序员 独立开发者 程序人生 提升认知

月薪 3W 的 Apple 微信编辑是这么发文章的 |如何发类似 Apple 微信公众号的文章效果

陈东泽 EuryChen

CSS 微信 大前端 apple 微信公众号

Zookeeper Watcher 流程分析(结合源码)

CoderLi

Java zookeeper 源码分析 后端 Watcher

kubernetes简单入门(多图少字版)

绿星雪碧

Kubernetes 入门

华硕灵珑II笔记本电脑——自由work不设限

最新动态

常用运筹学软件整理

张利东

2w字长文!手撸一套 Java 基础面试题

苹果看辽宁体育

Java 后端 Java25周年

Zookeeper-Access Control List(ACL)

CoderLi

Java zookeeper 源码分析 后端

原创 | TDD工具集:JUnit、AssertJ和Mockito (二十一)编写测试-测试模板

编程道与术

Java 编程 TDD 单元测试 JUNI

架构师训练营作业(第二周)

王海

极客大学架构师训练营

2020年5月云主机性能评测报告

博睿数据

云计算 服务器 公有云 机房 云主机

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