今天开始,我们要学习RNN在NLP领域的一些应用,那么首先我们要学习几个概念。
第一个是词嵌入(word embedding),它是语言的一种表述方式,让算法可以理解一些相似的词,加强模型的泛华能力。这样即使数据集比较小,也可以得到一个比较准确地模型。
我们还是使用之前的One-hot编码方式,假设man这个词在向量的5381位,那么我们使用O5381来代表这个除了man所在的地方为1,其他都为0的向量。我们如果使用这种方式把每个词都标记好,有可能会使词变得很孤立,所以我们可以考虑另外一种表示的方式。
我们可以使用特征化的方法做一个尝试,比如说与性别相关的程度,与高贵相关的程度,与食物相关的程度等等。我们可以用各种各样的特征来对这些词进行一个评估,最后得到一串向量,把这个向量跟它在词典当中的位置关联起来,比如说用E5381来代表man这个词的特征向量。
这样的话,如果算法知道orange juice,那么有很大概率也知道apple juice。
虽然有很多时候,新的特征具体代表什么东西可能比较难搞懂,我们往往会把这个非常多维的向量映射到一个二维图表里面,这样才能可视化,在这里用到的算法叫做T-SNE。这种把词放到多维向量空间内的某一个位置的做法很像嵌入的过程,所以称为词嵌入。
网友评论