表示学习导论

表示学习已成为一种从无标签数据中提取特征的方法,通过在辅助的监督学习任务上训练神经网络。
329 位读者喜欢这个。
How to do open research: 5 basic principles

Opensource.com

尽管如今许多公司拥有大量数据,但绝大多数数据通常是非结构化和未标记的。实际上,针对特定业务需求而适当标记的数据量通常非常小(甚至可能为零),并且获取新标签通常是一个缓慢而昂贵的过程。因此,能够从无标签数据中提取特征以提高数据受限任务性能的算法非常有价值。

大多数机器学习从业者最初通过无监督学习接触特征提取技术。在无监督学习中,算法尝试在某些(显式或隐式)假设下发现描述数据集“结构”的潜在特征。例如,低秩奇异值分解(其中主成分分析是特定示例)将数据矩阵分解为三个简化的矩阵,以最小化重构数据矩阵的平方误差。

表示学习

尽管传统的无监督学习技术将始终是机器学习流程的主要组成部分,但随着深度学习的持续成功,表示学习已成为特征提取的另一种方法。在表示学习中,通过在辅助的监督学习任务上训练神经网络,从无标签数据中提取特征。

由于其普及性,word2vec 已成为表示学习的事实标准 “Hello, world!” 应用。当将深度学习应用于自然语言处理 (NLP) 任务时,模型必须同时学习几个语言概念

  1. 词语的含义
  2. 词语如何组合形成概念(即,语法)
  3. 概念如何与手头的任务相关

例如,您可能听说过生成颜色名称的神经网络。本质上,该模型经过训练,可以使用色板数据从 RGB 值生成颜色名称。虽然这个概念非常巧妙,但结果相当令人失望;该模型似乎产生了无意义的颜色名称,并将名称与颜色随机配对。鉴于数据的匮乏,尝试执行的任务对于模型来说太难学习了。

Word2vec 通过为学习算法提供预训练的词嵌入,从而使解决此类 NLP 问题变得更加容易,有效地从训练中消除了词义子任务。word2vec 模型受到分布式假设的启发,该假设表明在相似上下文中找到的词语通常具有相似的含义。具体来说,该模型经过训练,可以在给定大小窗口中根据中心词的周围词语来预测中心词。例如,对于句子 “Natural language processing can be difficult” 和窗口大小为 3,神经网络的输入/目标组合将是

["natural", "processing"] → "language"
["language", "can"] → "processing"
["processing", "be"] → "can"
["can", "difficult"] → "be"

当使用足够的数据进行训练时,词嵌入倾向于很好地捕获词义,甚至能够执行类比,例如,“巴黎”的向量减去“法国”的向量加上“意大利”的向量非常接近“罗马”的向量。实际上,通过将 word2vec 向量合并到颜色名称模型中,我获得了更令人信服的结果

Customer2vec

红帽与许多企业对企业 (B2B) 公司一样,经常面临与企业对消费者 (B2C) 公司不同的数据挑战。通常,B2B 公司处理的“客户”数量比 B2C 公司少几个数量级。此外,由于多年合同的性质,B2B 公司的反馈周期通常要长得多。然而,与 B2C 公司一样,许多 B2B 公司拥有大量的行为数据。表示学习算法使像红帽这样的 B2B 公司能够通过从无标签数据中提取有意义的信息,从而在历史背景有限的情况下更好地优化业务策略。

在许多方面,Web 活动数据类似于 NLP 任务中发现的数据。有术语(= 特定 URL)、句子(= 活动天数)和文档(= 单个客户)。在这种情况下,Web 活动数据是 doc2vec 的完美候选者。Doc2vec 是 word2vec 的泛化,除了考虑上下文词语外,还在预测目标词语时考虑特定文档。这种架构允许算法学习文档的有意义的表示,在这种情况下,文档对应于客户。

例如,在图 1 中可以看到红帽数据,其中每行代表不同的客户,每个数字代表不同的 URL,特殊的 [START] 和 [STOP] 标记表示一天活动的开始和结束。一旦数据采用这种格式,使用 gensim(图 2)训练模型就像两行代码一样简单。然后,这些客户表示可以用于为销售活动和产品推荐形成更好的细分。

Sample web activity data used to discover Red Hat customer vectors with doc2vec

opensource.com

Training doc2vec on web activity data with gensim (top) and a function for fetching customer vectors (bottom)

opensource.com

但是表示学习模型可以比 word2vec 和 doc2vec 更加灵活。例如,我发现预测美国职业棒球大联盟击球手/投手对的击球结果可以生成高度直观的球员嵌入。

重复检测

红帽还在探索表示学习在检测重复支持内容方面的适用性。在这里,“重复”并不意味着“完全复制”,而是指概念上冗余的内容。重复内容可能会导致信息检索问题,并在识别支持趋势时带来挑战,因此能够有效地检测和删除重复内容非常重要。

重复检测的一种策略是寻找相似的潜在语义分析 (LSA) 向量,但 LSA 中存在一些假设和设计元素限制了其有效性。具体来说,该模型

  1. 忽略词序
  2. 通过最小化重构矩阵的平方误差,隐式地假设术语值的 Gaussian 分布
  3. 假设术语值是从潜在文档向量和术语向量的线性组合生成的

神经网络放宽了这些假设,这使其成为学习文档语义表示的良好候选者。

但问题仍然是如何在没有任何标记数据的情况下使用神经网络进行重复检测。为此,我们改编了微软研究院为该任务开发的深度语义相似性模型 (DSSM)(可以在我的 GitHub 上找到该模型的 Keras 实现)。DSSM 的最初动机是通过将文档和查询映射到潜在语义空间,并将这些向量的余弦相似度用作相关性的代理来提高搜索结果的相关性。本质上,该模型将文档和查询压缩到其基本概念。为了使模型适应重复检测,我们简单地使用文档标题代替查询,并训练了几乎相同的架构(尽管我们确实使用了内部训练的 word2vec 嵌入而不是单词的字母语法表示)。然后,语义文档向量用于查找概念上相似的内容。

了解更多关于表示学习的信息

这仅仅是表示学习的皮毛,表示学习是机器学习研究的一个活跃领域(以及密切相关的迁移学习领域)。对于表示学习的广泛技术介绍,我强烈推荐 Goodfellow、Bengio 和 Courville 的新《深度学习》教科书中的“表示学习”章节。有关 word2vec 的更多信息,我建议查看 DeepLearning4J 团队的这篇精彩的介绍

文章经 MLConf.com 许可转载。使用促销代码 “Redhat18” 可在 9 月 15 日在亚特兰大举行的 2017 年机器学习会议的注册时享受 18% 的折扣。

User profile image.
Michael 目前是美国农业部农业研究服务中心的人工智能卓越中心研究员。此前,Michael 获得了奥本大学机器学习博士学位,并且曾经是红帽公司的机器学习工程师。您可以在他的网站上了解更多关于他的信息。

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。

找到完美的开源工具

项目管理、商业智能、报告等。查看这些流行的项目。

© . All rights reserved.