【问题标题】:Global word embedding for local word embeddings局部词嵌入的全局词嵌入
【发布时间】:2020-12-14 16:58:05
【问题描述】:

想象一下,根据一些标准,我们有三个向量(vec1、vec2、vec3)来表示国王这个词,我们称这三个向量为国王的局部向量。哪种方式足以从这三个可用于下游任务的局部向量(vec1、vec2、vec3)中为单词 king 生成全局(单个或唯一)向量。 有三种可能的选择:

Concat(vec1, vec2, vec3) 
average(vec1, vec2, vec3) 
sum(vec1, vec2, vec3) 

它们足够了吗?为什么? 有参考吗?

【问题讨论】:

    标签: vector word2vec word-embedding python-embedding


    【解决方案1】:

    您还没有说明这 3 个向量是如何创建的,这很重要。如果创建它们的方法意味着它们都共享,在某种重要的意义上,“相同的坐标系”,那么添加或平均它们可能是合适的。

    但是,如果它们是以不相关的方式派生的,因此它们各自的坐标不是同一个自洽/可比系统的一部分,那么连接就更有意义,保留了它们各自的信息– 将所有这些信息转发到下游步骤,而不假设更重要的是什么,也不允许从不相关坐标系的随机/任意交互中“取消”任何位置信息。

    此外,如果 vec1vec2vec3 具有不同的维度,则串联始终有效,但总和/平均值无效。

    (如果您添加有关vec1vec2vec3 不同来源的更多具体信息,我可能会给出更多推理。)

    【讨论】:

    • 谢谢。假设我们有三个数据集 d1、d2、d3。国王这个词在所有三个数据集中都很常见。我们要跟踪这三个数据集中单词 king 的语义变化。为此,我们必须根据每个数据集中与术语 king 共同出现的上下文向量,为术语 king 生成三个不同的语义向量。因此,我们将具有相同维度的初始唯一随机向量分配给 v1,v2,v3。我们分别通过浏览 d1,d2,d3 来更新这三个向量。
    • 如果您分别训练这 3 个数据集,而无需任何努力使它们“对齐”,则各种随机化来源可能会将 king 向量发送到任意不同的结束位置,即使实际上它具有基本或相同的含义。 (您甚至会看到使用完全相同的数据重复训练。确保相同的初始化可能会在一定程度上抵消这一点,但以无法量化的方式,因此我不想指望它。)在这种情况下,您可能想要而是学习独立空间之间的转换,可能基于某种选择……
    • …'锚词',你有上帝的理由假设 不要 数据集之间的含义发生变化。在 gensim 中有一个类TransformationMatrix,带有一个示例笔记本,可以学习这样的映射,这也可能对机器翻译有用。或者假设 word2vec 模型需要大量数据,并且您希望大多数单词在数据集中是相似的,您可能会在一个模型中训练所有内容,但对于在不同示例中可能具有不同含义的单词,有时使用替代的数据集特定标记。先前答案中的一些想法:
    猜你喜欢
    • 2018-11-12
    • 2018-06-09
    • 1970-01-01
    • 2020-02-02
    • 2018-09-03
    • 2019-05-21
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多