word2vec:具有预训练模型的用户级、文档级嵌入

word2vec: user-level, document-level embeddings with pre-trained model

我目前正在开发一个基于 Twitter 内容的推荐系统,并且有一个 word2vec 模型在 4 亿条推文上进行了预训练。

我将如何使用这些词嵌入来创建 document/tweet-level 嵌入,然后根据他们发布的推文获取用户嵌入?

我最初打算对具有词向量表示的推文中的这些词进行平均,然后对 document/tweet 向量进行平均以获得用户向量,但我不确定这是否最佳甚至正确.非常感谢任何帮助。

你走在正确的轨道上,对推文中的词向量进行平均得到 "tweet vector",然后对每个用户的推文向量进行平均得到 "user vector"。这些平均向量是否有用取决于你的学习任务。如果不尝试,很难说这种平均方法是否有效,因为它取决于您的数据集在每个用户的推文中使用的单词之间的差异程度。

对短文本中所有单词的向量进行平均是获取文本摘要向量的一种方法。它通常可以作为快速基线使用。 (而且,如果你只有词向量,可能是你的主要选择。)

如果您根据其他一些相对术语重要性的度量(例如 TF-IDF)进行加权平均,或者使用原始词向量(在归一化为单位长度之前,如 pre -标准化原始幅度有时可以暗示意义的强度)。

您可以通过对他们的所有文本进行平均,或者(大致等效地)将他们所有创作的文字放入伪文档并将所有这些文字平均在一起来创建用户级向量。

您可能会保留更多用户帖子的多样性,尤其是当他们的兴趣跨越多个领域时,首先将他们的推文聚类为 N 个聚类,然后将用户建模为聚类的 N 个质心向量。甚至 N 可能因用户而异,这取决于他们发推文的数量或他们的推文的主题范围。

对于原始推文,您还可以使用像 'Paragraph Vector' 这样的算法(在像 Python gensim 这样的库中又名 'Doc2Vec' )来训练每个推文的向量。但是,那具有 4 亿个不同文档的具有挑战性的 RAM 要求。 (如果您的用户数量较少,也许他们可以是 'documents',或者他们可以是 FastText-in-classification-mode 培训课程的预测 类。)