我试图将大约6000万个短语嵌入向量空间,然后计算它们之间的余弦相似度。我一直在使用sklearn's CountVectorizer
和一个自定义的生成标记器的函数,该函数会产生字母和二字组。事实证明,要获得有意义的表示,我必须允许大量列,行数成线性。这会导致矩阵稀疏,从而导致性能下降。如果只有大约10,000列,那还不错,我认为这对于单词嵌入来说是相当合理的。
我正在考虑尝试使用Google,word2vec
因为我敢肯定它会产生低得多的尺寸和更密集的嵌入。但是在此之前,还有其他嵌入值得一看吗?关键要求是能够扩展大约6000万个短语(行)。
我对词嵌入领域还很陌生,因此任何建议都将对您有所帮助。
我还应该补充一点,我已经在使用奇异值分解来提高性能。
您正在使用Spark吗?
—
eliasah
这就是我最初建议Spark的原因之一。抱歉,我在打电话。我没有任何关于预嵌入PCA技术的参考。
—
eliasah 2015年
我不确定使用如此大量的数据是否过分。
—
eliasah 2015年
由于您正在处理文本,因此删除多余的标记不会使尺寸减小太多。考虑一个150000个单词的词典,每个示例删除停用词将使您受益匪浅。那无济于事。
—
eliasah 2015年
否则,您可能需要考虑使用潜在Dirichlet分配进行主题建模以减少每个短语的文本向量大小。
—
eliasah 2015年