【问题标题】:Word2Vec - adding constraint to vector representationWord2Vec - 为向量表示添加约束
【发布时间】:2017-04-26 10:15:58
【问题描述】:

我正在尝试将预训练的 Google 新闻 word2vec 模型调整到我的特定领域。对于我正在研究的领域,已知某些单词彼此相似,因此在理想世界中,这些单词的 Word2Vec 表示应该代表这一点。我知道我可以在特定领域数据的语料库上训练预训练模型来更新向量。

但是,如果我确定某些单词高度相似并且应该放在一起,我有没有办法将该约束合并到 word2vec 模型中?从数学上讲,我想在 word2vec 的损失函数中添加一个术语,如果我知道相似的两个在向量空间中没有彼此靠近,则会提供惩罚。有人对如何实施这个有建议吗?这是否需要我解压缩 word2vec 模型,或者有没有办法让我有可能将该附加项添加到损失函数中?

【问题讨论】:

    标签: nlp stanford-nlp word2vec


    【解决方案1】:

    一种方法是采用预先训练的 Google 新闻 word2vec 并使用这个“改造”工具:

    Faruqui、Manaal、Jesse Dodge、Sujay K. Jauhar、Chris Dyer、Eduard Hovy 和 Noah A. Smith。 “将词向量改造为语义词典。” arXiv 预印本 arXiv:1411.4166 (2014)。 https://arxiv.org/abs/1411.4166

    本文提出了一种使用语义词典中的关系信息来细化向量空间表示的方法,该方法通过鼓励链接词具有相似的向量表示,并且不对输入向量的构造方式做出任何假设。

    代码可在https://github.com/mfaruqui/retrofitting 获得,使用起来很简单(我个人将其用于https://arxiv.org/abs/1607.02802)。

    【讨论】:

    • 谢谢弗兰克。这很有帮助。快速跟进:我尝试使用您共享的 github 链接上的代码,但似乎遇到了属性错误。您最近是否使用它足以分享有关如何解决此问题的指导? "AttributeError: 'NoneType' 对象没有属性 'endswith'"
    • @Ali 你试过运行他们在github.com/mfaruqui/retrofitting#running-the-program 给出的例子吗?如果是这样,您可能想尝试 python 2.7,也许它在 python 3 上不起作用。
    • 我尝试在 python 3 上运行示例,但无法让它们工作(遇到我上面提到的错误)。我会尝试python 2.7。谢谢!
    猜你喜欢
    • 2021-05-19
    • 2017-09-04
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    相关资源
    最近更新 更多