深度 | 万物向量化:用协作学习的方法生成更广泛的实体向量

选自blog.insightdatascience

作者:Javed Qadrud-Din

机器之心编译

参与:Edison Ke、刘晓坤

来自 Insight 的 Javed Qadrud-Din 开源了一种通用的实体嵌入算法,相比谷歌的 word2vec 模型能实现更广泛实体(包括名人、商家、用户等)的嵌入、更高的准确率以及少 4 个数量级的数据需求量。

GitHub 链接:https://github.com/javedqadruddin/person2vec

Javed Qadrud-Din 先前曾在 IBM 公司的 Watson 团队担任业务架构师。他在 Insight 开发了一种新方法,使得企业能够将用户、客户和其他实体有效地表示,以便更好地理解、预测和服务他们。

企业通常需要了解、组织和预测他们的用户和合作伙伴。例如,预测哪些用户将离开平台(流失预警),或者识别不同类型的广告伙伴(集群)。这一任务的挑战性在于要用一种简洁而有意义的方式来表现这些实体,然后要将它们输入一个机器学习分类器,或者用其他方法进行分析。

灵感来自 NLP

最近,自然语言处理(NLP)领域最重要的进展之一是来自谷歌的一组研究人员(Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, Jeffrey Dean)创建了 word2vec,这是一种将单词表示为连续向量的技术,这种连续向量称为「嵌入」(embeddings)。

他们在 1000 亿个单词(已开源)上训练出的嵌入,成功地捕捉到了它们所代表的单词的大部分语义含义。例如,你可以将「国王」的嵌入,减去「男人」的嵌入,再加上「女人」的嵌入,这些操作的结果会很接近「女王」的嵌入——这个结果说明谷歌团队设法编码人类文字含义的能力已经到了几乎令人毛骨悚然的程度。

一些词嵌入的例子(Mikolov et. al.)

从那以后,word2vec 一直是自然语言处理的基本组成,为许多基于文本的应用程序(如分类、集群和翻译)提供了一个简单而高效的基础模块。我在 Insight 的时候有一个疑问是,类似于词汇内嵌的技术如何应用于其他类型的数据,比如人或企业。

关于嵌入

让我们首先来想想「嵌入」究竟是什么。在物理上,一个嵌入只是表示某个实体的数字列表(即一个向量)。对 word2vec 来说,这些实体就是英文单词。每一个单词拥有一个自己的数字列表。

通过训练任务过程中的梯度下降进行不断调整,这些数字列表被优化为它们所代表的实体的有用表示。如果训练任务要求记住有关对应实体的一般信息,那么嵌入将会最终吸收这些一般信息。

单词的嵌入

以 word2vec 为例,训练任务涉及提取一个单词(称为单词 A),并在一个巨大的文本语料库(来自谷歌新闻中的一千亿单词)中预测另一个单词(单词 B)出现在单词 A 的前后 10 个单词范围的窗口中的概率。

每一个单词在训练过程中都需要重复成千上万次预测,对应的单词 B 既包括通常一同出现的那些,也包括从不会出现在相同的语境中的那些(这叫做负采样技术)。

这个任务要求每个单词的嵌入编码与这个单词共同出现的其他单词的信息。与类似的单词一起出现的单词最终会有类似的嵌入。例如,「聪明(smart)」这个词和「有智慧(intelligent)」这个词经常可以互换使用,所以通常在一个大型语料库中,与这两个单词一起出现的那些单词集合是非常相似的。因此,「聪明」和「有智慧」的嵌入会非常相似。

用这个任务创建的嵌入被强制编码了很多关于这个单词的一般信息,所以在不相关的任务中,它们仍然可以用来代表对应的单词。谷歌 word2vec 嵌入广泛用于自然语言处理的各种应用程序,如情绪分析和文本分类。

还有其他团队使用不同的训练策略设计的单词嵌入。其中最流行的是 CloVe 和 CoVe。

任何东西的嵌入

单词向量是多种 NLP 任务的必要工具。但是,对于企业通常最关心的实体类型来说,预先训练的词向量并不存在。对于像「红色」和「香蕉」这样的单词,Google 已经为我们提供了预训练好的 word2vec 嵌入,但是并没有为我们提供诸如一个社交网络、本地企业或是其他没在 Google 新闻语料库中频繁出现的实体的嵌入。因为 word2vec 是基于 Google 新闻语料库进行训练的。

企业关心的是他们的客户、他们的雇员、他们的供应商,以及其他没有预先训练的嵌入的实体。一旦经过训练,实体的矢量化表示就可以用以输入大量机器学习模型。例如,他们可以用在预测用户可能会点击哪些广告的模型上,可以用在预测哪些大学申请者很可能以优异的成绩毕业的模型上,或者用在预测哪个政客有可能赢得选举的模型上。

实体嵌入使我们能够利用与这些实体相关联的自然语言文本来完成这些类型的任务,而这类文本往往是企业手中一直保存着的。例如,我们可以通过一个用户写的帖子,一个大学申请人写的个人陈述,或者人们关于一个政治家的推特和博客帖子来生成实体嵌入。

任何有对应文本的实体的公司都可以利用实体嵌入,当你考虑这个问题的时候,大多数企业都以不同方式拥有这样的实体及对应文本:Facebook 拥有用户和他们发布或标记的文本;LinkedIn 拥有用户和他们简介的文本;Yelp 拥有用户和他们写的评论,以及商家和关于商家的评论;Airbnb 拥有住的地方和关于这些地方的描述与评论;大学拥有申请者和他们写的申请论文。这样的例子不胜枚举。事实上,Facebook 最近发表了一篇论文,详细介绍了实体嵌入技术。(论文链接:https://arxiv.org/abs/1709.03856)

我的 entity2vec 项目的目标是找到一种方法,使用与实体关联的文本来创建能够代表这些实体的通用嵌入。为了做到这一点,我使用了一种类似于 word2vec 的负采样的技术,将已知与某个实体关联的大量文本中的信息提取到实体嵌入中。

实例 1:名人

为了开发和测试这种技术,我尝试了训练嵌入来代表杰出人物(例如:巴拉克·奥巴马、Lady Gaga、安吉丽娜·朱莉、比尔·盖茨)。杰出人物是一个很好的起点,因为,对于这些非常有名的人的名字,在预先训练的 Google word2vec 嵌入是存在的,而且可以免费使用,所以我可以将我的嵌入和这些人的名字的 word2vec 嵌入的进行比较。

和 word2vec 一样,我需要一项训练任务,它将迫使实体嵌入来学习它们所代表的实体的一般信息。我决定训练一个分类器,它可以从一个人的维基百科文章中获取一个文本片段,然后学习猜测这个片段是关于谁的。

训练任务将以几个实体嵌入作为输入,并输出文本片段所涉及的真实实体嵌入。在下面的例子中,分类器将会看到一个关于奥巴马的文本片段,以及奥巴马和另外三个随机选择的人物的嵌入。分类器将输出一个数字表示哪一个输入是奥巴马的嵌入。

所有的嵌入都将在每个步骤中被训练,所以不仅正确的人物嵌入将学习对应人物有什么相关信息,其他不正确的嵌入也会了解它们所代表的人物不相关的信息有哪些。

这种技术在直觉上似乎是合理的,但是为了验证我的结果,我需要尝试将这些训练好的嵌入应用到一些其他任务上,看看它们是否真的了解了它们的对应实体的一般信息。

为此,我在其他一些任务上训练简单的分类器,将实体嵌入作为输入,然后输出一些分类,诸如实体的性别或职业。以下是这些分类器的架构:

这是得到的结果,以及与单纯猜测和用 word2vec 得到的嵌入做相同任务的对比。

我的嵌入与 word2vec 嵌入表现非常接近,尽管我的嵌入所用的训练文本更少——大约 3000 万字 vs. 1000 亿字。文本要求少了 4 个数量级!

实例 2:Yelp 商家

接下来,我想看看这项技术是否可以推广。它是只能在维基百科上管用,还是更通用。我尝试应用同样的技术,以 Yelp 数据集来训练商家的嵌入。

Yelp 在网上提供了其数据集的一部分,包含商家以及关于这些商家的所有建议和评论。我用与训练维基百科人物的嵌入相同的技术来训练嵌入,除了这次的文本是 Yelp 里对商家的评论,而实体是这些商家。这个任务可以表示成下图:

经过训练后,我在一项新任务上测试了这些嵌入——弄清楚某一商家属于哪种类型的业务,例如:CVS 药店属于「健康」类,而麦当劳则属于「餐厅」类。一共有十种类别,而一个商家可能属于多个类别——因此这是一个多达十种标签的多标签分类任务,很有挑战性。与经过培训后的猜测结果相比较如下:

考虑到这一任务的难度,这是一个很好的结果!

总之,这是一个成功的实验。我训练了获取自然语言文本中的信息的嵌入,然后通过在其他任务上验证这些信息,我就能从他们那里得到有用的信息。任何有配对文本的业务都可以使用这种技术,能够在他们的数据上运行预测任务。

下一步和代码

虽然这些结果看起来已经很有潜力,但还可以通过将结构化的数据和文本结合一起用来训练嵌入,从而进一步提升结果,我将在未来探索这个思路。

原文链接:https://blog.insightdatascience.com/entity2vec-dad368c5b830

本文为机器之心编译,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2017-12-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法与Python学习

除了深度学习,你还应该关注这 6 大 AI 领域

AI的这6个领域对未来的数字化产品和服务有着巨大影响。 ? 编者按:因为深度学习最近在语音识别、图像识别等领域取得的突破,很多人都把人工智能与深度学习混为一谈。...

3754
来自专栏量子位

牛津大学最新研究:给我一张照片,就能让你开口讲话

若朴 发自 凹非寺 量子位 报道 | 公众号 QbitAI 这句话你说过没有?不承认?我给你看证据! 于是你就看到一段视频,画面中的你开口说了一段你不曾讲过的话...

4277
来自专栏CSDN技术头条

在人工智能和大数据产品的开发中,有哪些需要特别注意的点?

人工智能是近年来科技发展的重要方向,大数据的采集、挖掘、应用的技术越来越受到瞩目。在人工智能和大数据产品的开发过程中,有哪些特别需要注意的要点?人工智能领域的算...

1937
来自专栏Albert陈凯

普通程序员如何转向AI方向

原文地址:http://www.cnblogs.com/subconscious/p/6240151.html 眼下,人工智能已经成为越来越火的一个方向。普通程...

4655
来自专栏AI科技评论

重磅丨谷歌是在炒作么?大牛详解神经网络算法为什么不适合自然语言处理

谷歌在2016年发布了全新的神经机器翻译系统(GNMT),并表示由于神经网络算法的介入,该系统相比传统机器翻译降低了80%的错误率,已接近人工翻译的水平。 但对...

3587
来自专栏人工智能头条

面试了8家公司,他们问了我这些机器学习题目......

2616
来自专栏新智元

【Science】DeepMind关系推理ANN,在图像理解中击败人类

【新智元导读】人类通常相当擅长关系推理,但对 AI 来说是难点。谷歌 DeepMind 研究人员提出了用于关系推理的人工神经网络。它拥有处理图像、分析语言甚至学...

54217
来自专栏AI科技大本营的专栏

AI 每周必读:The Ones

【AI100 导读】学术界和工业界的距离到底有多远?Chatbot 很火,但到底应该如何定位产品,如何定位技术和产品之间的关系? 1. One Paper H...

31712
来自专栏小小挖掘机

推荐系统遇上深度学习(二十五)--当知识图谱遇上个性化推荐

之前在美团听过关于知识图谱和个性化推荐的一个讲座,接下来的几篇,我们将围绕讲座中提到的知识点,来介绍下知识图谱是如何同个性化推荐相结合的!本篇算是一个开篇吧,希...

2351
来自专栏PPV课数据科学社区

人工智能与大数据开发的12个注意点

人工智能是近年来科技发展的重要方向,在大数据时代,对数据采集、挖掘、应用的技术越来越受到瞩目。在人工智能和大数据的开发过程中,有哪些特别需要注意的要点人工智能领...

3464

扫码关注云+社区

领取腾讯云代金券