word2vec - Word2Vec变换的直观理解
问题描述
我对 Word2Vec 转换过程的理解是,在使用大量句子语料库训练模型后,模型将学习向量空间,我们可以使用词向量将包含k个单词的句子转换为长度为D,其中D是维数。这k个单词将被转换为一个k * V one-hot 编码矩阵,其中V是词汇表的大小。然后它乘以输入隐藏权重(V * D)。结果是一个k * V矩阵。如果我们对列中的k个元素进行平均,我们可以获得长度为D的最终向量。
我的问题是,直观地说,长度为D的最终向量的真正含义是什么。当您对k行进行平均时,是否会删除某些内容?此外,诸如“婴儿喜欢胡萝卜”之类的句子。和“carrots love baby”会转化成同一个向量,但是两句话完全不同。
解决方案
Word2Vec 不会“将包含 k 个单词的句子转换为长度为 D 的单个向量”。
还有其他算法可以将多个单词的句子/文本转换为单个向量。
但是 word2vec 使用大量文本来学习单个单词的向量。(它通过优化一些最初的随机词向量来更好地预测附近的相邻词。)
最后,每个单词都有一个向量——而不是每个句子。
(当然,您可以将一堆词向量平均在一起以获得更长的词运行向量,这对于一些简单的任务来说是一种不错的基线方法。但这是 word2vec 的下游应用程序,并且相对粗糙。)
推荐阅读
- android - 无法在android中以编程方式通过intent打开PDF文件
- model-view-controller - 如何在 .net 核心中访问数据库上下文表单视图
- google-bigquery - 在 Bigquery 中计算大量向量之间的成对余弦相似度
- ios - 如何在 xamarin.ios 中控制来自 Dependecy-service 的背景音频
- excel - VBA 单击并键入 XMLHTTP
- c# - 从 IIS 打印无法在作为本地 asp.net 连接的共享打印机上工作
- java - Java NotificationCompat 声音不响
- java - 无法在 Cucumber-Maven(TestNG)中运行 testng.xml
- reactjs - 导入:编译器未找到模块,可使用 Visual Code,DefiniteTyped
- javascript - 如何根据条件使表单字段具有不同的验证模式?