gpt4 book ai didi

nlp - 词嵌入中的维数是什么?

转载 作者:行者123 更新时间:2023-12-02 05:34:28 24 4
gpt4 key购买 nike

我想了解词嵌入中“维度”的含义。

当我将一个单词以矩阵的形式嵌入到 NLP 任务中时,维度扮演什么角色?有一个直观的例子可以帮助我理解这个概念吗?

最佳答案

回答

词嵌入只是从词到向量的映射。 Word 中的维度嵌入是指这些向量的长度。

其他信息

这些映射有不同的格式。大多数预训练嵌入是以空格分隔的文本文件形式提供,其中每行包含一个单词第一个位置及其旁边的向量表示。如果你们要分开这些行,你会发现它们的长度为 1 + dim,其中 dim是词向量的维数,1 对应于所表示的词。请参阅GloVe pre-trainedvectors举一个真实的例子。

例如,如果您下载glove.twitter.27B.zip ,解压并运行以下Python代码:

#!/usr/bin/python3

with open('glove.twitter.27B.50d.txt') as f:
lines = f.readlines()
lines = [line.rstrip().split() for line in lines]

print(len(lines)) # number of words (aka vocabulary size)
print(len(lines[0])) # length of a line
print(lines[130][0]) # word 130
print(lines[130][1:]) # vector representation of word 130
print(len(lines[130][1:])) # dimensionality of word 130

你会得到输出

1193514
51
people
['1.4653', '0.4827', ..., '-0.10117', '0.077996'] # shortened for illustration purposes
50

虽然有些不相关,但同样重要的是,这些文件中的行是根据训练嵌入的语料库中找到的词频进行排序的(首先是最常见的词)。

<小时/>

您还可以将这些嵌入表示为字典,其中键是单词,值是表示单词向量的列表。长度这些列表中的一个将是您的词向量的维度

更常见的做法是将它们表示为矩阵(也称为查找表),维度为 (V x D),其中 V 是词汇量大小(即,如何你有很多单词),D 是每个单词向量的维度。在在这种情况下,您需要保留一个单独的字典,将每个单词映射到它的矩阵中的相应行。

背景

关于您关于维度扮演的角色的问题,您需要一些理论背景。但总而言之,嵌入单词的空间呈现出良好的特性,可以让 NLP 系统表现得更好。这些属性之一是具有相似含义的单词在空间上彼此接近,即具有相似的向量表示,如通过距离度量(例如Euclidean distance)来测量的。或cosine similarity

您可以可视化多个词嵌入的 3D 投影 here ,例如,在 Word2Vec 10K 嵌入中,与“roads”最接近的单词是“highways”、“road”和“routes”。

有关更详细的解释,我建议阅读 this post 的“词嵌入”部分作者:克里斯托弗·奥拉。

有关为什么使用词嵌入(分布式表示的一个实例)比使用单热编码(本地表示)等更好的更多理论,我建议阅读 Distributed Representations 的第一部分作者:杰弗里·辛顿等人

关于nlp - 词嵌入中的维数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45394949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com