写点什么

浅析 Facebook 文字理解引擎 DeepText

  • 2016-07-06
  • 本文字数:2124 字

    阅读完需:约 7 分钟

文字是人们在互联网上进行联系的一种主要方式。为了改善用户体验,了解用户对产品的想法,或检测出垃圾信息等不必要的内容,很多公司在研究对文字内容的自动化理解和分析方法。Facebook 开发的 DeepText 就是这样一种基于深度学习技术的文字理解引擎,可以非常精确地理解文字的上下文情境,目前可支持超过 20 种语言。

DeepText 中包含多种深度神经网络体系结构,可实现文字级别和字符级别的学习。在模型的训练方面,该技术使用了 FbLearner Flow 和 Torch,训练好的模型可通过 FBLearner Predictor 平台运行,这是一种可扩展,高可靠的分布式基础结构。

为何使用深度学习技术

文字的理解设计多种任务,首先需要通过常规分类确定每段文字的主题(例如是在谈论一场足球赛),随后需要识别出文字所涉及的实体(例如球员姓名、比赛结果等信息)。但为了实现更近似于人类的理解程度,还需要让计算机懂得不同的俚语、语境,以及多义词,例如,假设有人说“我喜欢黑莓”,他指的到底是“黑莓”这种水果还是“黑莓”手机?

对于 Facebook 这种规模的公司,文字的理解还需要考虑到对于扩展性和多语言的支持。借助深度学习技术可以更好地了解不同语言的文字,并能更高效地使用标签化的数据。

更快速理解多种语言

作为一家全球化公司,Facebook 需要能够理解尽可能多的语言。更麻烦的是,很多语言存在不同的变体,例如各种俚语或者双关语,甚至同一个词汇在表达不同含义时会使用不同的拼写方法。
借助深度学习技术,这套系统可以在只需要很少预处理,甚至完全无需预处理,就能在不具备有关特定语言相关知识的情况下理解文字的含义。这样即可在将开发工作量降至最低的同时更快速地理解各种语言。

深度学习促进更深入的理解

传统的自然语言处理技术需要将文字转换为计算机算法可以学习的格式。举例来说,“兄弟”这个词可能会被分配一个整数 ID,例如 4598,而“老兄”这个词可能会分配另一个整数,例如 986665。这种方法使得系统只能将拼写方式完全一致的词语当作同一个含义来理解。

通过使用深度学习技术,可以借助“文字嵌入”这种数学概念保留不同词语之间的语义关系。经过恰当的计算,就可以让计算机知道“兄弟”和“老兄”在语义上是相近的,借此可以更深入地了解不同词语的语义。

借助这种文字嵌入技术,还可以更好地理解多种语言中不同呈现方式所表达的相同含义。例如在英语和西班牙语中,“happy birthday”和“feliz cumpleaños”就包含了非常相近的含义,通过将不同的单词和短语映射到同一个通用的嵌入式语义空间,DeepText 将能建立与语言无关的模型。

DeepText 的实践运用

DeepText 已经用在了 Facebook 的一些服务中,例如在 Messenger 中,Facebook 的 AML 对话理解团队会通过 DeepText 更好地理解某人在什么时候可能想去什么地方。随后即可将这些信息用于决策工作,例如当有人说“我刚下出租车”,可以知道此人并不需要搭乘出租车,而如果有人说“我要出发了”,可能意味着此人也许需要打车。

Facebook 还在尝试通过高精确度的多语言 DeepText 模型帮助用户找到满足特定目的所需的恰当工具。举例来说,有人发布了这样一条信息:“我想把我的旧自行车以 200 块钱卖掉,有人感兴趣吗?”随后 DeepText 可以检测到这个用户希望卖掉某样东西,并从发布的内容中提取有价值的信息,例如具体要卖什么东西,价格多少,随后就可以建议此人使用 Facebook 提供的不同服务顺利完成交易。

通过更好地理解用户发布的信息,从中提取用户意图、情绪和实体(例如人员、地点、活动),DeepText 还可以进一步改善 Facebook 的用户体验。现在有很多名人和公众人物会使用 Facebook 与大家进行交流,这些交流通常可能获得数百条,甚至上千条评论。在多种语言发布的内容中找出最相关的评论,同时确保评论始终维持较高质量,这一点实现起来非常难。此时就可以借助 DeepText 找出相关性或质量最高的评论。

更好地理解用户兴趣

为了向用户提供个性化体验,Facebook 会推荐与用户兴趣有关的内容。为此必须首先能够将特定文字与特定话题关联在一起,这一过程需要处理海量标签化的数据。

这类标签化的数据集很难手工生成,而 Facebook 目前正在测试通过半人工方式的标签技术针对公共页面生成所需数据。这些公共页面上发布的内容通常都是针对特定话题的,例如“匹兹堡钢人”的公共页面上通常会发布有关橄榄球队的信息。通过这些内容,Facebook 训练了一个名为 PageSpace 的通用兴趣分类程序,该程序就用到了 DeepText 技术。

对文字和可视内容的联合理解

有时人们会在发布照片或视频的同时通过相关文字描述自己所发布的内容。很多情况下,若要理解用户意图,必须同时理解这些文字和可视内容。例如,某个用户可能发布一张新生儿照片并使用“第 25 天”作为文字描述。通过照片和文字的结合,很容易可以知道该用户的意图是分享自己家里的最新近况。Facebook 内部不同团队正在合作构建新的深度学习体系结构,以便可以将文字和其他可视内容结合在一起理解。

查看英文原文 Introducing DeepText: Facebook’s text understanding engine


感谢陈兴璐对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-07-06 19:004804
用户头像

发布了 283 篇内容, 共 110.7 次阅读, 收获喜欢 62 次。

关注

评论

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

保10万涨薪、保Offer、保大厂,1V1私教服务上线啦!

测吧(北京)科技有限公司

测试

2022年10月中国数据库排行榜:达梦冲刺IPO热度不减,PolarDB立足创新夺锦才

墨天轮

数据库 opengauss tdsql TiDB 国产数据库

如何将 SAP Business Application Studio 里开发的 Java 应用部署到 SAP BTP 上

汪子熙

云原生 Cloud 云平台 SAP 10月月更

STM32 HAL库串口同时收发,接收卡死?

矜辰所致

串口 STM32L051 10月月更

人人能读懂redux原理剖析

夏天的味道123

React

Kafka消费者客户端心跳请求

石臻臻的杂货铺

Kafk 10月月更

长安链源码分析之网络模块 net-liquid(3)

哪些数据类岗位不容易失业?

雨果

开发数据 数据科学 数据工程师

欧美开源法案频出,你准备好了吗?

安势信息

出海 #开源 SBOM 软件供应链安全 开源合规

【LeetCode】可能的二分法Java题解

Albert

算法 LeetCode 10月月更

redis实现分布式锁(一)

zarmnosaj

10月月更

5个技巧让CIO最大化提升IT项目投资回报率

雨果

CIO ROI

【荣耀云调试FAQ】一个帐号可以同时使用多部手机吗?

荣耀开发者服务平台

开发者 手机 安卓 荣耀 honor

利器| Cypress 强大全新的 Web UI 测试框架应用尝鲜

霍格沃兹测试开发学社

推荐|海泰信创浏览器安全解决方案 全面适配安全可靠

电子信息发烧客

推荐|海泰政务移动办公系统密码应用解决方案 打造移动办公安全

电子信息发烧客

解React框架核心原理

夏天的味道123

React

Gartner 权威解读: SBOM 采用率将于2025年达到60%

SEAL安全

DevSecOps Gartner SBOM 软件供应链安全

前端必会手写题总结

helloworld1024fd

JavaScript

保10万涨薪、保Offer、保大厂,1V1私教服务上线啦!

霍格沃兹测试开发学社

安势清源SCA助力超大规模高科技企业加速开源风险治理

安势信息

开源 腾讯 SCA SBOM 软件供应链安全

浙江特殊教育职业学院用上了福昕无障碍技术

科技热闻

Kafka消费组/者协调器的介绍

石臻臻的杂货铺

Kafk 10月月更

JS继承有哪些,你能否手写其中一两种呢?

helloworld1024fd

JavaScript

redis实现分布式锁(二)

zarmnosaj

10月月更

年度大促将至,企业如何进行性能压测

阿里巴巴云原生

阿里云 云原生 性能压测 PTS

js函数柯里化-面试手写版

helloworld1024fd

JavaScript

如何掌握“看见数据”的魔力?

博文视点Broadview

CentOS下搭建Gitea-自己的git服务器

麦洛

git Gitea

企业云安全的6个最佳实践

HummerCloud

10月月更

自定义注解判断参数为空

派大星

浅析Facebook文字理解引擎DeepText_语言 & 开发_Ahmad Abdulkader_InfoQ精选文章