例如使用时gensim, word2vec或用于训练嵌入向量的类似方法我想知道什么是好的比率,或者嵌入维度与词汇量之间是否有首选比率?
随着更多数据的出现,这种情况会如何变化?
由于我仍在讨论这个主题,因此在训练嵌入向量时如何选择合适的窗口大小?
我问这个问题是因为我不是用现实生活中的语言词典来训练我的网络,而是这些句子会描述进程和文件以及其他进程等之间的关系。
例如,我的文本语料库中的一个句子如下所示:
smss.exe irp_mj_create systemdrive windows system32 ntdll dll DesiredAccess:执行/遍历、同步、处置:打开、选项:、
属性:不适用,ShareMode:读取,AllocationSize:不适用,OpenResult:
已打开”
正如您可能想象的那样,变化有很多,但问题仍然是如何以最佳方式微调这些超参数,以便嵌入空间不会过度拟合,同时又为每个单词提供足够的有意义的特征。
Thanks,
Gabriel
比率不是您的目标
我不记得这个问题的任何具体论文,但这个问题感觉有点奇怪 - 一般来说,如果我有一个很棒的模型,但想切换到两倍或十倍大的词汇表,我会not更改嵌入尺寸。
恕我直言,它们是非常正交的、不相关的参数。决定最佳嵌入维度的关键因素主要与计算资源的可用性(越小越好,因此如果结果没有差异并且可以将维度减半,就这样做)、任务和(最重要的)嵌入数量相关。监督训练示例 - 嵌入维度的选择将决定你将压缩/故意限制词汇信息的程度;更大的维度将使您的模型能够区分更多的词汇细节,当且仅当您的监督数据有足够的信息来区分时,这才是好的。use该词汇细节正确,但如果不存在,那么额外的词汇信息将过度拟合,并且较小的嵌入维数将更好地概括。因此,词汇量大小和嵌入维度之间的比率不是(恕我直言,我无法提供证据,这只是实践经验)值得关注的东西,因为嵌入维度的最佳大小由下式决定:你在哪里使用嵌入,而不是训练嵌入的数据。
无论如何,这似乎是一种情况,你的里程会有所不同 - 任何理论和讨论都会很有趣,但是你的任务和文本领域非常具体,一般 NLP 的发现可能适用也可能不适用于你的情况,并且它会是最好获得有效的经验证据your数据。使用 64/128/256 或 100/200/400 或任何大小训练嵌入,使用其中每一个训练模型,并比较效果;与思考效果应该是什么相比,这会花费更少的精力(人,而不是 GPU)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)