代码之家  ›  专栏  ›  技术社区  ›  r1d1

用word2vec解决一词多义问题

  •  1
  • r1d1  · 技术社区  · 6 年前

    我对word2vec有一些问题:

    1. 什么决定了结果模型向量的维数?

    2. 这个向量的元素是什么?

    3. 如果我已经对单词的每一个含义都有了文本,我是否可以使用word2vec来解决一词多义的问题(state=administrative unity vs state=condition)?

    1 回复  |  直到 6 年前
        1
  •  2
  •   gojomo    6 年前

    (1)选择所需的维数作为模型的元参数。有足够时间的严格项目可能会尝试不同的规模,看看什么对他们的定性评估最有效。

    (2)每个词向量(浮点数)的单个维度/元素在普通词2vec中不容易解释。只有单词的整体排列才能有效地将相似的单词放在一起,并使相对方向(如“国王”中的“女王”)与人类对类别/连续属性的直觉相匹配。而且,由于算法采用显式随机化,优化的多线程操作将线程调度随机性引入到训练实例的顺序中,即使是完全相同的数据,也可能导致从运行到运行的向量坐标不同(但同样良好)。

    (3)基本单词2vec不容易修复,但是向量中有一系列多义的暗示,研究工作要做更多的去歧义对比的感觉。

    例如,通常情况下,更多的多义词标记最终会产生一些词向量,这些词向量是它们多种感官的某种组合,并且(通常)比较少的多义词具有更小的量值。

    这个 early paper 每个单词使用多个表示来帮助发现一词多义。类似的后期论文 this one 使用上下文聚类来发现多义词,然后重新标记它们,给每个意义赋予自己的向量。

    This paper 通过对普通word2vec向量的后处理,管理一项令人印象深刻的检测交替感官的工作。