nlp - 什么是“原始”skip-gram 模型?
问题描述
我常见的skip-gram模型是一个带有隐藏投影/嵌入层的3层神经网络。嵌入层具有嵌入权重矩阵,最终将是语料库中单词的嵌入向量。softmax 层(输出层)也有一个权重矩阵,它不直接表示任何单词。在这里,我将此模型称为 skip-gram模型 1。
我在看书。书中提到有一个原始的skip-gram算法,它与上面的不同。在这里,我将这个“原始”skip-gram 模型称为 skip-gram模型 2。根据这本书,
本书到目前为止讨论的skip-gram算法实际上是对Mikolov等人在2013年发表的原始论文中提出的原始skip-gram算法的改进。在本文中,该算法没有使用中间隐藏层来学习表示。相比之下,原始算法使用两个不同的嵌入或投影层(图 4.1 中的输入和输出嵌入),并定义了从嵌入本身派生的成本函数:
我的第一个问题是在哪里可以找到“原始论文”?在向量空间中单词表示的有效估计论文中,skip-gram 模型似乎是模型 1,而不是上面的原始模型 2。
在一些讨论中,人们说 softmax 归一化计算向量相似度。例如,在mbatchkarov 的回答中,他对 softmax 计算给出了解释:
分子基本上是单词 c(上下文)和 w(目标)单词之间的相似度。分母计算所有其他上下文 c1 和目标词 w 的相似度。
第二个问题:那是“原始”的skip-gram模型2吗?因为在常见的 skip-gram 模型 1 中,输出层的权重只是神经网络的权重,而不是单词的向量表示。
解决方案
推荐阅读
- python - How to apply a CheckConstraint on creation only
- python - Jupyter notebook:显示数据框,以便单击单元格在文件资源管理器(例如 Windows 资源管理器)中打开文件
- android - RecyclerView OnCheckedChangeListener bug when click TabLayout
- flutter - 如何关闭 Flutter 中的所有模态对话框?
- php - fopen() in PHP not creating or writing to txt file
- flutter - 更改 DatePickerTimeline Flutter 的主题
- laravel - 如何在使用方法选择的lavavel刀片视图中显示两个模型数据
- android - Android Studio 代码不适用于 Android 版本 P .CursorIndexOutOfBoundsException:请求索引 0,大小为 0
- mongodb - 如何遍历mongodb子文档数组找到匹配的元素并立即用新值更新元素字段
- visual-studio-code - Visual Studio 代码 F# 无法运行 - “启动客户端失败”