使用word2vec对分类特征进行编码是一个好主意吗?

5
我面临的是二元预测任务,并且拥有一系列特征,这些特征都是分类数据。一个关键的挑战就是将这些分类特征编码成数字,因此我正在寻找智能的方法来实现这一点。我偶然发现了word2vec,它主要用于自然语言处理,但我在想是否可以利用它来对我的变量进行编码,即将神经网络的权重作为编码特征。

但是,我不确定这是否是一个好主意,因为在word2vec中用作输入特征的上下文单词在我的情况下多少是随机的,与原本为之制作的真实句子形成对比。

你们有什么建议、想法或推荐吗?

2个回答

4

1
“使用word2vec算法训练关键词、标签、类别等‘密集嵌入’是可行的,有时也会带来好处。但是否适用于您的情况取决于您的数据和目标-唯一确定的方法是尝试并评估结果与其他选择相比的优劣。例如,如果类别数量较少且受控词汇,对类别进行one-hot编码可能是实用的,并且根据下游所使用的二元分类器类型,分类器本身也能够学习通过word2vec模型学习到的类别之间的微妙相互关系。另一方面,如果类别非常多且混乱,将其‘压缩’成一个较小维度空间,在该空间中,相似的类别具有相似的表示向量,这样做可能更有帮助。由于这些标记不完全具有与真实自然语言文本相同的频率分布和周围环境,因此值得在任何word2vec模型上尝试更广泛的非默认训练选项。”
特别是,如果您的分类没有自然顺序,从而产生有意义的近邻关系,考虑使用一个巨大的window(因此在单个“text”中的所有单词都处于彼此的上下文中)可能值得考虑。
Python gensim Word2Vec的最新版本允许更改一个名为ns_exponent的参数 - 在许多早期实现中固定为0.75,但至少一篇论文建议可以针对某些语料库数据和类似推荐的应用程序远离该值。

谢谢您的回复。您是否记得有一篇论文使用了word2vec作为编码策略? - BigBrian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接