Unsupervised Learning: Word Embedding
Word Embedding 是 Dimension Reduction 的一种应用。
要用一个vector来表示一个word,有什么方法呢:
-
1-of-N Encoding:
每一个词汇对应vector的一维,如:
这种方式没法体现出word之间的关系,无法表达出语义
-
Word Class:
这其实就是聚类的方法,在这里,我们认为Clustering无法表达出class和class之间的联系
-
Word Embedding:
Word Embedding就是把word映射到高维空间(这里虽然说是高维空间,但维度还是要比 1-of-N 的vector维度要小)
要怎么做Word Embedding呢?Word Embedding是一种无监督的方法,怎么让machine阅读大量文章之后自己得到他的Word Embedding呢?
我们可以认为通过上下文可以得到词汇的词义,怎么体现出context来呢?一般有两种方法:
1. Count based
即要使得 V(wi)和V(wj)的内积 和 wi和wj在相同文章出现的次数 越接近越好。
其实就是做LSA(latent semanticanalysis,潜在语义分析),用SVD的方法解就可以了。
2. predition based
它的input是W(i-1)个词汇,输出是W(i)个词汇
我们把第一个hiden layer的Input:z1 z2 ......拿出来,Z就代表这个词汇。
将input扩展到多个词汇(仅仅两个词汇之间的联系是比较弱的):
可以看到,他的input的word是共享参数的,原因:
1. 对于出现在不同位置i的词汇,输出要一样
2. 可以减少参数量
在做 gradient descent 的时候怎么让 W1=W2 呢?
Various Architectures:
from:https://www.youtube.com/watch?v=X7PH3NuYW0Q&list=PLJV_el3uVTsPy9oCRY30oBPNLCo89yu49&index=23