GloVe 的快速实现——Mittens

该软件包包含 GloVe 和 Mittens 的快速 TensorFlow 和 NumPy 实现。

通过矢量化 GloVe 目标函数,我们提供了超过其他 Python 实现的大量速度增益(CPU 上为 10 倍,GPU 上为 60 倍)。 请参阅下面的速度部分。

需要注意的是,我们的实现仅适用于适度的词汇表(最多约 20k tokens 应该没问题),因为共生矩阵必须保存在内存中。

对目标进行矢量化也表明它适用于改进术语,鼓励表示保持接近预训练的嵌入。 这对于需要专门表示但缺乏足够数据从头开始训练的域非常有用。Mittens 从通用预训练表示开始,并将它们调整到专门的域。

Github 链接:

https://github.com/roamanalytics/mittens

安装

依赖

Mittens 只需要 numpy。不过,如果已经安装好了 TensorFlow,那么 Mittens 就会用 TensorFlow 替代 numpy。两者使用同样的优化器和成本函数,唯一的区别是,使用 TensorFlow 时会显示更小的 CPU 速率和更大的 GPU 速率。

用户安装

安装 Mittens 最简单的方式是用 pip:

pipinstall-U mittens

你也可以通过复制该库并将其添加到 Python 路径来安装它,在这之前请安装numpy。

请注意,这两种方法都不会自动安装 TensorFlow,请参阅其说明:

https://www.tensorflow.org/install/

速率

我们使用大约 90% 稀疏的随机生成的共现矩阵来比较各种词汇每个时期速度(以秒为单位)。正如我们在这里看到的,在 GPU上 运行时,其性能与官方用 C 语言实现的版本(https://github.com/stanfordnlp/GloVe)相比具有竞争力。

对于更密集的共生矩阵,Mittens 将具比官方 C 实现版本更具优势,因为它的速度不依赖于稀疏性。

号外号外~

一个专注于

AI技术发展和AI工程师成长的求知求职社区

诞生啦!

欢迎大家扫码体验

AI研习社

Word2Vec —— 深度学习的一小步,自然语言处理的一大步

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180721A0C3TW00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券