word embedding
来源:互联网 发布:厦门三套网络电视台 编辑:程序博客网 时间:2024/05/11 09:03
1. word的向量表示
最原始的1-N encoding
这种表示的缺点是无法表现出词汇之间的定量关系,比如猫和狗同属于动物类。即使把词汇做分类(clustering),也无法体现出
类别之间的关系。
于是就有了word embedding的思想。所谓word embedding,就是把每一个word都project到一个高维空间中(这里的维度
还是会明显低于1-N encoding中的空间维度)。
在上图中,具有相似语意的词汇会被映射到距离较近的地方。而且每个维度具有明确的意义。比如在上图中,横轴代表的
意思可能是“生命”,纵轴代笔的含义可能是“运动”。
2. word embedding的架构
这是一个无监督学习问题。怎么让machine知道每一个词汇的含义呢?只有让machine阅读大量的文章。
每一个词汇的含义可以根据它的context(上下文)得到
如何进行词汇上下文的挖掘呢?基本有两种不同的策略,一种是count based的方法,另一种是predicition based的方法。
在count based的方法里面,考察两个词汇w_i、w_j,如果他们两个很相近,那么他们两个词汇对应的此向量的点积应该
与他们的共现频次相接近,即v(w_i) * v(w_j) ~= N_ij,和LSI的思想类似?
而prediction based的方法,则是一个neuron network,任务是根据上一个词汇来预测下一个词汇是什么。即,该network
的input就是上一个词汇的词向量(1-N encoding),output则是一个softmax,维度是词典的size,每一维代表着下一个词是该 词汇的概率。
在这个网络中,input是原始的1-N encoding,是固定不变的,然后呢,我们把第一个hidden layer的输入拿出来作为该词汇
的此向量。(疑问:为什么是第一个hidden layer呢?)
为什么这样做是可行的呢?
在下面的例子中,“马英九”和“蔡英文”的后面都跟的是“宣誓就职”,如果在文本中大量出现这两个句子,那么在出现
”马英九“或”蔡英文“的时候自然就期待下一个出现的词汇是”宣誓就职“,要想使得在output这一层中,输出“宣誓就职”
的概率相近,那就要使得整个network中每一层流经的数据很接近!我们把第一个hidden layer里面的数据拿出来,作
为词汇的向量(之所以是第一个hidden layer,理由可能是第一层的hidden layer是input的直接表征)
上面的例子中,是用一个word去预测下一个word,给人的感觉就是太弱了,一般不会只借助于上文的一个词,而是若干
个词,以下是两个词的例子
当利用上文两个词的时候,在input端,把两个词的1-N encoding连在一起。这里有类似CNN的操作,即sharing parameters。
那怎么保证sharing parameter呢?类似于CNN里的做法
3. word embedding模型的训练
这是一个unsupervised的问题,cost function是cross entropy的形式。比如对于下面的例子,input是“潮水”、“退了”,那么你
期望的output是“就”,输入是“退了”、“就”,则期望的输出是“知道”,等等。(注:在output端,“就”、“知道”这些词也是1-N encoding的形式)。
4. 网路其他形式
5. word embedding结果的意义
6. document embedding
如果直接用bag of words,就会忽略掉词序,而词序是非常重要的
那怎么做呢?可以参考以下文献
- word embedding
- word embedding
- word embedding
- Word Embedding (NLP)简述
- word embedding简要介绍
- Word Embedding与Word2Vec
- TextMining Word Embedding
- Word Embedding Topic Discussing
- Word Embedding与Word2Vec
- 深度学习word embedding
- Word Embedding中Embedding的解释
- Word Embedding的通俗解释
- 关于NLP的word Embedding
- 为什么要做 Word Embedding
- 为什么要做 word embedding
- How to Generate a Good Word Embedding?
- 使用Word Embedding构造文本摘要系
- tensorflow学习:使用tensorflow实现word embedding
- Who's Aunt Zhang HDU
- 主机通过sftp传输文件到某台服务器ubuntu虚拟机出现:open for write: permission denied
- Retrofit+Rxjava简单的网络请求
- 机器学习-python通过序列最小优化算法(SMO)方法编写支持向量机(SVM)
- 装饰模式
- word embedding
- Java学习心得
- html5动画
- Android开发艺术探索第一章笔记
- SGM(semi-global matching)算法原理
- VS2010控制台程序运行一闪而过的完美解决办法
- MVP
- css的动画
- SharedPreferences 分析 --- 之二