Unsupervised Learning: Word Embedding

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

发布了55 篇原创文章 · 获赞 22 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/li_k_y/article/details/104088433