1

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

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

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

4

2 回答 2

2

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

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

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

您可能会保留更多种类的用户帖子,特别是如果他们的兴趣跨越多个领域,首先将他们的推文聚类到 N 个集群中,然后将用户建模为集群的 N 个质心向量。甚至每个用户的 N 也会有所不同,这取决于他们发了多少推文或他们的推文似乎涉及的主题范围有多大。

使用原始推文,您还可以使用诸如“段落向量”之类的算法(在 Python gensim 之类的库中也称为“Doc2Vec”)来训练每个推文向量。但是,这可能对 4 亿个不同文档的 RAM 要求具有挑战性。(如果您的用户数量较少,也许他们可以是“文档”,或者他们可以是 FastText-in-classification-mode 培训课程的预测类。)

于 2018-12-04T11:54:58.740 回答
0

您在正确的轨道上平均推文中的词向量以获得“推文向量”,然后平均每个用户的推文向量以获得“用户向量”。这些平均向量是否有用取决于您的学习任务。很难说这种平均方法是否会在不尝试的情况下有效,因为它取决于您的数据集在每个用户在推文中使用的单词之间的差异方面的多样性。

于 2018-11-30T23:22:00.823 回答