如何处理在大型数据集上训练Word嵌入时的内存问题?

时间:2016-06-07 18:32:16

标签: lua deep-learning lua-table torch word-embedding

我想训练单词可预测性任务来生成单词嵌入。文档集包含243k文档。火炬代码实现。我正在努力应对数据集的巨大规模,并且需要关于如何在如此大的数据集上训练单词嵌入的想法,这是一个包含243,000篇完整文章的文档。研究计算资源是定时的,因此可以短时间访问GPU节点,因此选择增量模型培训:

  1. 增量模型训练:训练整个数据集的一种方法是使用增量模型训练,在一个数据块上训练模型并保存。稍后拿起相同的预训练模型并开始训练下一块数据。我在这种方法中遇到的问题是如何维护单词的词汇/词典。在词汇嵌入方法中,词典/词汇起着重要作用。我们扫描所有文档并创建计数大于最小设置频率的单词的词汇。现在,实际上这个词汇是一个哈希映射,它具有与每个单词相关联的索引,并且在训练样本中,为了模型的简单性,我们用词汇中的索引替换单词。在增量训练的情况下,如何逐步创建字典?我是否必须先在整个文档上创建词汇/词典,然后逐步训练?或者是在增量培训中扩展词汇的方法?
  2. 另一个问题是对词汇数据结构大小的内存限制。我在Torch中实现我的模型,这是基于LUA的。因此,LUA限制了表的大小,我无法在单个表中加载整个文档的词汇。如何克服这种记忆问题?
  3. 从Glove载体中汲取灵感。在他们的论文中他们说他们“我们在五个不同大小的语料库上训练我们的模型:一个2010年的维基百科垃圾场,有10亿个代币;一个拥有16亿人口的2014年维基百科垃圾场; Gigaword 5拥有43亿张代币; Gigaword5 + Wikipedia2014的组合,有60亿个代币;来自Common Crawl5的420亿令牌网络数据。我们使用斯坦福标记器对每个语料库进行标记和小写,构建400,000个最常用单词的词汇表6,然后构造共生计数矩阵X“。关于Glove矢量如何训练如此大的语料库和大词汇以及如何处理他们案件中的内存限制的任何想法?论文参考 - http://nlp.stanford.edu/pubs/glove.pdf
  4. 关于如何限制用于生成单词嵌入的数据集大小的任何想法?随着文档数量的增加或减少,它会如何影响文字嵌入的性能或覆盖范围?使用抽样技术从数据集中抽样文档是一个好主意吗?如果是,那么请建议一些采样技术。

0 个答案:

没有答案