想象一下,如果要表示很多不同的东西,比如一堆单词。要是用老办法,就像给每个单词都做个“名片”,这个名片上只有一个地方有数字 1,其他全是 0,这叫独热编码。但这样很浪费空间,而且也不好看出单词之间的关系。
分布式表示就不一样,它把每个东西,比如单词,变成一个比较短的、数字都不是 0 的向量。这样就高效多了。而且好玩的是,意思相近的单词在这个向量空间里离得近。比如“国王”和“王后”的向量就会比较接近。
在自然语言处理中,就像我们学过的 word2vec 这些方法得到的词向量就是分布式表示。用这些向量可以知道单词之间的关系,方便做各种自然语言处理的任务,像给文章分类、判断感情是积极还是消极啥的。
在图像识别里,卷积神经网络学到的那些图像特征也是分布式表示。不同的特征图能表示图像不同的方面,像边儿、纹理、物体形状。
在推荐系统里呢,可以把用户和物品也用分布式向量表示。这样就能根据用户和物品向量的相似程度来给用户推荐东西啦。
学习分布式表示的方法有不看标签自己学的无监督学习,比如用自编码器,把数据压成低维编码再重建出来,这个编码就是分布式表示。还有在有监督学习任务里,像分类的时候,模型中间层的输出也可以当分布式表示用。总之,分布式表示在深度学习里很厉害,能让我们更好地处理各种数据。