文字是人们在互联网上进行联系的一种主要方式。为了改善用户体验,了解用户对产品的想法,或检测出垃圾信息等不必要的内容,很多公司在研究对文字内容的自动化理解和分析方法。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 )关注我们。
评论