谷歌开源Embedding可视化工具

导读

目前,在深度学习中可以利用多种方法或工具将特征信息转换为低维稠密的向量表示(Embedding),且Embedding在自然语言处理、知识图谱、推荐搜索、机器翻译、智能问答等领域应用广泛。Embedding 中虽然包含了丰富的信息表达,但是肉眼看上去是数不胜数的数字,无法看出其内在的信息关联,因此,将Embedding的信息可视化到肉眼可见的空间是非常重要的工作。

本文主要介绍谷歌2016年开源的一款 Embedding 可视化工具及其使用方法,这款工具是一款用于交互式可视化和高维数据分析的网页工具 Embedding Projector

一、可视化工具介绍

Embedding Projector 是一款用于交互式可视化和高维数据分析的可视化工具,它是 TensorFlow 的一部分,但是谷歌开放了一个可以单独使用的版本,无需安装和运行 TensorFlow 便可以对 Embedding 进行可视化。

下图是 Embedding Projector 的页面,是不是有点酷炫的feel,分为左中右三部分:

  • 中间部分为可视化部分,可以3D显示立体空间,以及一些工具栏。

  • 左侧是一些高维数据的降维方法以及可以Embedding的文件,高维数据降维的方法包括UMAP、T-SNE、PCA、CUSTOM,工具提供了5种可尝试的Embedding,包括 Word2Vce All、Mnist with images、Word2Vec 10k、GNMT Interlingua、Iris,另外可以上传自己的 Embedding 文件,一会详细说明怎么使用。

  • 右侧是词的一些空间邻近词,有不同的计算方法得到的,包括 COSINE、EUCLIDEAN。

看一下PCA降维生成的酷炫图:

简述几种降维方法

  • PCA 可以探索 Embedding 的内在信息空间结构,探索不同的信息维度。

  • T-SNE 可用于探索局部近邻值(local neighborhoods)和聚类(cluster),比如相近的词语聚类到一起,或者图谱知识表示中的关系向量,正向与反向的关系向量聚成两个簇。

  • UMAP(Uniform Manifold Approximation and Projection) 是加拿大研究员18年提出的一种方法,是一种类似 T-SNE 的高维数据降维算法,UMAP 相对于 T-SNE 能反映全局结构且在计算大样本数据时,运行速度快,占用内存少。

  • CUSTOM 是自定义线性投影,可以帮助发现数据集中有意义的方向(direction),比如图谱中正向关系与反向关系、情感中喜欢与厌恶等。

可视化地址 :http://projector.tensorflow.org/

二、如何使用自己的文件

Embedding Projector 除了提供的5中尝试的文件,还可以使用自己的 Embedding 文件,但是需要转换成工具需要的 tsv 格式文件,下图是上传文件的步骤,点击 load 会出现右边的框,第一个文件是只有向量的文件,第二个 label 文件。

如何根据我们的 Embedding 文件获取工具所需的 tsv 文件,下面是一段转换代码。

输入文件格式如下

import os
import sys
import json
import numpy as np
import pandas as pddef get_tsv(path):""":param path::return:"""label_list = []vec_list = []with open(path, encoding="utf-8") as file:for line in file.readlines():line = line.strip()line = line.split()label_list.append(line[0])vec_list.append(list(map(float, line[1:])))label_array = np.array(label_list)vec_array = np.array(vec_list)label_df = pd.DataFrame(label_array)vec_df = pd.DataFrame(vec_array)label_path = "./label.tsv"if os.path.exists(label_path):os.remove(label_path)with open(label_path, 'w') as write_tsv:write_tsv.write(label_df.to_csv(sep='\t', index=False, header=False))vec_path = "./vector.tsv"if os.path.exists(vec_path):os.remove(vec_path)with open(vec_path, 'w') as write_tsv:write_tsv.write(vec_df.to_csv(sep='\t', index=False, header=False))print("Finished.")if __name__ == "__main__":path = "./glove_sentiment.txt"get_tsv(path)

最终得到两份文件 vector.tsv 和 label.tsv,逐个上传即可。

上传后效果图:

三、总结

本文主要介绍谷歌2016年开源的Embedding Projector, Embedding 可视化工具及其使用方法。

Embedding Projector工具地址 :http://projector.tensorflow.org/

参考文献

  1. Smilkov D, Thorat N, Nicholson C, et al. Embedding projector: Interactive visualization and interpretation of embeddings[J]. arXiv preprint arXiv:1611.05469, 2016.

  2. https://zhuanlan.zhihu.com/p/24252690

「 更多干货,更多收获 」基于用户的协同过滤来构建推荐系统(附代码)【推荐算法】基于用户和产品的协同过滤算法
Graph Embedding及其在知乎的实践.pdf2020年9月十大热门报告盘点【干货】如何从0到1构建用户画像系统?自然语言处理技术在推荐系统中的应用和发展推荐系统技术演进趋势:召回->排序->重排关注我们

智能推荐

个性化推荐技术与产品社区

长按并识别关注

一个「在看」,一段时光????

谷歌开源Embedding可视化工具相关推荐

  1. 谷歌开源机器学习可视化工具 Facets:从全新角度观察数据

    谷歌开源机器学习可视化工具 Facets:从全新角度观察数据 By 黄小天2017年7月18日 10:51 近日,出于支持 PAIR initiative的目的,谷歌发布了 Facets,一款开源的可 ...

  2. 开源性能可视化工具——FlameScope模式识别

    FlameScope是一个新的开源性能可视化工具,它使用次秒级偏移热图和火焰图来分析周期活动.方差.扰动.我们在Netflix TechBlog上面,发表了技术文章Netflix FlameScope ...

  3. 大数据可视化html模板开源_8个可靠好用的开源数据可视化工具推荐

    数据可视化在数据科学领域中发挥着重要的作用.在不清楚数据的情况下,要监视和调整数据以使其按照应有的方式执行并不容易.这就是数据可视化发挥作用的地方,它把收集到的数据放到一个可视的上下文中,使数据更容易 ...

  4. github可视化工具_Github标星2.6K!微软开源的可视化工具,未免太酷炫了吧

    开源最前线(ID:OpenSourceTop) 猿妹编译 链接:https://visualstudiomagazine.com/articles/2019/10/14/sanddance.aspx ...

  5. 谷歌开源漏洞跟踪工具 Monorail 存在跨站点搜索漏洞

    一名安全研究员表示,在谷歌开源漏洞跟踪工具 Monorail 中找到一个漏洞,可被用于执行跨站点搜索 (XS-Search) 攻击. Monorail 用于检查和 Chromium 相关项目中的问题, ...

  6. 20个免费和开源数据可视化工具

    20个免费和开源数据可视化工具   数据可视化正在帮助全球的公司识别模式,预测结果并提高业务回报.可视化是数据分析的一个重要方面.简而言之,数据可视化以可视格式传达表格或空间数据的结果.图像有能力清晰 ...

  7. 8个可靠的开源数据可视化工具-你的选择是?

    数据可视化在数据科学领域中发挥着重要的作用.在不清楚数据的情况下,要监视和调整数据以使其按照应有的方式执行并不容易.这就是数据可视化发挥作用的地方,它把收集到的数据放到一个可视的上下文中,使数据更容易 ...

  8. 谷歌开源集成学习工具AdaNet:2017年提出的算法终于实现了

    晓查 编译整理 量子位 报道 | 公众号 QbitAI 最近,谷歌在GitHub上发布了用TensorFlow实现的AutoML框架--AdaNet,它改进了集成学习的方法,能以最少的专家干预实现自动 ...

  9. 命令行参数怎么输入_太好用了!谷歌开源的命令行接口工具fire

    大家使用最多的命令行工具应该是pip了,pip提供了很多的命令行参数和选项,我们在终端使用pip install --help命令可以查看install子命令的帮助文档. 可以看到,除了最常用的pip ...

最新文章

  1. C#编程(十二)----------函数
  2. Linux(10)用户和组管理命令
  3. 如何实现良好的隔空操作体验
  4. 使用正则替换文件头注释
  5. 充电类型一二次检测过程及充电类型
  6. 累加出整个范围所有的数最少还需要几个数
  7. javascript库函数大全
  8. java使用websocket前后端通信实现
  9. 运维基础(13)日志切割工具 Logrotate
  10. 优化案例(part3)--Aberrance suppresse dspatio-temporal correlation filters for visual object tracking
  11. SAP UI5 初学者教程之四:XML 视图初探试读版
  12. lineNumber: 1; columnNumber: 1; 前言中不允许有内容
  13. php判断服务器操作系统的类型
  14. java自定义classloader_java自定义ClassLoader加载指定的class文件操作
  15. 初中英语多词性单词怎么办_初中英语词性的分类及用法
  16. csdn博客如何添加图片
  17. 进制转换应用场景_【Android】单位换算软件来袭,帮你解决生活中所有的进制换算问题,让你轻松秒变大神!...
  18. 元核云赋能银行业,智能双录产品助力银保业务合规高效响应
  19. XigmaNAS(原 NAS4Free) 发布 11.2.0.4.6625 版本
  20. 程序员应知必会的思维模型之 7 邓巴数字 (Dunbar‘s Number)

热门文章

  1. 基于以太坊的去中心化存储协议Swarm计划在2季度发布1.0版
  2. SAP License:MM常用事物码
  3. SAP License:孔乙己,一名ERP顾问
  4. 《如何搭建小微企业风控模型》第二节 建模所需知识
  5. 连接SQL Server数据库
  6. 2017-2018-1 20155308 《信息安全系统设计基础》课堂第六章测试(补做)
  7. IOS开发之实现App消息推送(最新)
  8. Linq学习之路(07) - 使用Linq进行参数化编程step by step
  9. JQuery Ajax 在asp.net中使用总结
  10. Silverlight 4.0 Accordion 解决ScrollViewer 的问题