machine-learning-notes
  • 封面
  • 目录
  • 前言
  • 个人前言
  • 机器学习前言
    • 什么是机器学习和模式识别
    • 机器学习的应用
    • 机器学习的流程
    • 不同的机器学习算法对相同数据预测效果不同
    • 快速入门机器学习
    • 机器学习需要参考哪些书
    • 机器学习的学习路径
    • 深度学习的学习路径
    • 互联网机器学习特定岗位所需技能
  • 机器学习面试
  • 数学基础
  • 微积分
    • 泰勒展开
    • e的直观认识
    • 傅里叶变换
    • 希尔伯特空间
  • 线性代数
    • 范数
    • 矩阵求导
    • 特征值
    • 奇异值分解
  • 概率与信息论
    • 综述概率论基本定义
    • 概率论与贝叶斯先验
    • 正态分布
    • 贝叶斯概率
    • 概率符号说明
    • 共轭先验
    • 信息论
  • 数值计算与优化
    • 最小二乘法
    • 等式约束的拉格朗日乘子法
    • 凸优化
      • 凸集和凸函数
      • 凸优化问题
  • 梯度下降算法
    • 随机梯度下降SGD
    • 动量法Momentum
    • 牛顿动量Nesterov
    • AdaGrad
    • RMSprop
    • Adadelta
    • Adam
    • Nadam
    • AMSGrad
    • AdasMax
  • 概率图模型
    • 概率图模型概论
    • 概率图简介
  • 编程基础
  • linux
    • linux常用命令
    • shell
      • 输入输出重定向
  • python
    • python简介
    • python语法
      • 基础语法
      • 数据结构
      • 过程控制
      • 函数
      • 类和对象
      • 文件操作
      • 正则表达式
    • python库
      • numpy
      • pandas
      • scipy
      • matplotlib
      • scikit-learn
    • python应用
      • 排序算法
  • 数据结构与算法
    • 数据结构
    • 算法思想
      • 排序
        • 堆排序
        • 归并排序
        • 快速排序
      • 递归
    • 剑指offer
      • 链表
      • 二叉树
      • 数组
      • 字符串
      • 栈和队列
      • 递归
      • 动态规划
      • 其他
    • leetcode
    • 编程语言
      • c++
  • Hadoop
    • Hadoop简介
    • MapReduce
  • Hive
  • Spark
  • TensorFlow
    • TensorFlow1.0
      • TensorFlow基础
      • TensorFlow基础概念解析
      • TensorFlow机器学习基础
      • Tensorflow分布式架构
    • TensorFlow2.0
  • PyTorch
  • 机器学习
  • 机器学习概论
  • 特征工程
  • 感知机
  • k近邻
  • 朴素贝叶斯
  • 线性模型
    • 最大熵模型
    • 指数族分布与广义线性模型
    • 线性回归
      • Ridge回归(岭回归)
      • Lasso回归
    • Logistic回归-对数几率回归
  • 决策树
  • 支持向量机
    • 线性可分支持向量机与硬间隔最大化
    • 线性支持向量机与软间隔最大化
    • 非线性支持向量机与核函数
    • 序列最小最优化算法SMO
    • SVM总结
  • 集成学习
    • Bagging
      • 随机森林
    • Boosting
      • AdaBoost
      • GradientBoosting
        • GBDT
        • XGBoost
          • XGBoost理论
          • XGBoost实践
    • Stacking
  • 降维
    • PCA主成分分析
    • 流形学习
  • EM算法
  • HMM隐马尔科夫模型
  • CRF条件随机场
  • 聚类
    • k均值聚类
    • 高斯混合模型
  • 主题模型
    • LDA隐狄利克雷分布
  • 知识点
    • 损失函数
    • 负采样
  • 机器学习算法总结
  • 深度学习
  • 深度学习概论
  • ANN人工神经网络
  • 知识点
    • Batch Normalization
  • CNN卷积神经网络
  • 深度学习优化算法
  • RNN循环神经网络
  • LSTM长短期记忆网络
  • GRU门控循环单元
  • GNN图神经网络
    • GNN图神经网络综述
    • GCN图卷积网络
      • GCN图卷积网络初步理解
      • GCN图卷积网络的numpy简单实现
      • GCN图卷积网络本质理解
      • GCN图卷积网络全面理解
      • SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS ICLR2017
  • 神经网络架构搜索
    • Weight-Agnostic-Neural-Networks Google2019
  • 强化学习
  • 强化学习概论
  • 马尔科夫决策过程
  • 动态规划
  • 无模型方法一:蒙特卡洛
  • 无模型方法二:时间差分
  • 无模型方法三:多步自举
  • 函数近似和深度网络
  • 策略梯度算法
  • 深度强化学习
  • 基于模型的强化学习
  • 强化学习前景
  • 自然语言处理
  • 自然语言处理概论
  • 自然语言
  • 语言模型和中文分词
  • word2vec
    • word2vec概述
    • word2vec算法原理
    • word2vec源码分析
    • word2vec实践
  • Seq2Seq模型和Attention机制
  • Self-Attention和Transformer
  • 知识图谱
  • 推荐系统
  • 推荐系统概论
  • 基础知识
  • 进阶知识
    • 机器学习
      • Factorization Machines ICDM2010
    • embedding
      • Network Embedding
        • LINE: Large-scale Information Network Embedding
    • 深度学习
      • DeepFM: A Factorization-Machine based Neural Network for CTR Prediction 2017
      • DSSM: Learning Deep Structured Semantic Models for Web Search using Clickthrough Data CIKM2013
    • 图卷积网络
      • Graph Convolutional Neural Networks for Web-Scale Recommender Systems KDD2018
    • 强化学习
      • DRN基于深度强化学习的新闻推荐模型
  • 业界应用
    • YouTube
      • Deep Neural Networks for YouTube Recommendations RecSys2016
    • Alibaba
      • Learning Tree-based Deep Model for Recommender Systems KDD2018
      • Deep Interest Network for Click-Through Rate Prediction KDD2018
      • DSIN:Deep Session Interest Network for Click-Through Rate Prediction IJCAI2019
Powered by GitBook
On this page
  • word2vector实践
  • 原版word2vec实践
  • 下载源码
  • 下载训练数据
  • 开始训练模型
  • 得到结果文件
  • 查看TopN相似度
  • embedding的可视化
  • TSNE降维
  • TensorFlow-projector
  • google-tensorboard
  • word2vec的参数选择
  • 参考资料

Was this helpful?

  1. word2vec

word2vec实践

Previousword2vec源码分析NextSeq2Seq模型和Attention机制

Last updated 5 years ago

Was this helpful?

word2vector实践

原版word2vec实践

官方使用说明:,这个并没有实践过,只是放在这里,下面是经过实践检验的:

下面的介绍仅仅适用于linux系统,windows其实也差不多,只是不能用sh语言了,需要自己去手动编译和运行程序或者自己写bat语言。

下载源码

github:

下载训练数据

下载训练数据:,用unzip text8.zip将其解压缩到\data文件夹中,文件名为text8,这个解压后的文件text8就是模型训练需要的数据了。

其实在sh文件中会自动下载text8,但是还是自己先下载下来吧。

开始训练模型

(1)由c源码生成可执行文件

两种方法:

第一种方法:进入word2vec的根目录,然后命令行运行make build把\src文件夹中的c文件编译为可执行文件放到\bin文件夹中。

第二种方法:进入word2vec\src目录,然后命令行运行make把\src文件夹中的c文件编译为可执行文件放到\bin文件夹中。

(2)运行可执行文件开始训练模型

进入根目录下的\scripts文件夹,然后运行sh文件demo-classes.sh:sh demo-classes.sh,等待程序运行完毕(可能需要五分钟到一个小时之间,看机器性能)。

得到结果文件

等训练结束后,会在\data文件夹中生成两个文件:classes.txt和classes.sorted.txt,其中classes.txt就是我们需要的文件。打开就能看到每个单词训练的embedding向量了。

查看TopN相似度

进入根目录下的\scripts文件夹,然后运行sh文件demo-word.sh:sh demo-word.sh,然后按照提示输入单词,查看与其相近的前40个词及相似程度。

embedding的可视化

TSNE降维

Embedding最酷的一个地方在于它们可以用来可视化出表示的数据的相关性,当然要我们能够观察,需要通过降维技术来达到2维或3维。最流行的降维技术是:t-Distributed Stochastic Neighbor Embedding (TSNE)。

我们可以定义维基百科上所有书籍为原始37000维(one-hot编码),使用neural network embedding将它们映射到50维,然后使用TSNE将它们映射到2维,其结果如下:

这样看好像并不能看出什么,但是如果我们根据不同书籍的特征着色,我们将可以很明显的看出结果。

我们可以清楚地看到属于同一类型的书籍的分组。虽然它并不完美,但惊奇的是,我们只用2个数字就代表维基百科上的所有书籍,而在这些数字中仍能捕捉到不同类型之间的差异。这代表着embedding的价值。

TensorFlow-projector

Embedding的基本内容如前面介绍所示,然而我想说的是它的价值并不仅仅在于word embedding或者entity embedding,这种将类别数据用低维表示且可自学习的思想更存在价值。通过这种方式,我们可以将神经网络,深度学习用于更广泛的领域,Embedding可以表示更多的东西,而这其中的关键在于要想清楚我们需要解决的问题和应用Embedding表示我们得到的是什么。

google-tensorboard

word2vec的参数选择

参考资料

“原版word2vec实践”参考了上述资料。

“embedding的可视化”参考了该知乎专栏文章。

相似程度的代码是distance.c,很简单,有个博客有对这个代码的注释:

静态图的问题在于我们无法真正探索数据并调查变量之间的分组或关系。 为了解决这个问题,TensorFlow开发了 ,这是一个在线应用程序,可以让我们可视化并与embedding交互。 结果如下:

词的分布,推荐用google的,可以多视角查看,如果不想搭建服务,直接访问。另外可以用python的matplotlib。

返回顶层目录
返回上层目录
word2vec
dav/word2vec
text8.zip
Word2Vec代码注解-distance
projector
tensorboard
TensorFlow-projector
word2vec你可能不知道的秘密
使用word2vec(C语言版本)训练中文语料 并且将得到的vector.bin文件转换成txt文件
Deep Learning 实战之 word2vec
word2vec 入门教程
word2vec-google code
Embedding 的理解
关于word2vec,我有话要说
embedding-37000-books
embedding-37000-books-with-color
embedding-37000-books-using-pojector