如何使用无监督算法将客户与模型(客户 -> 项目列表 -> 项目中的单词列表)聚类

How to cluster customers with the model (Customer -> Item list -> Word list in items) with an unsupervised algorithm

需要有关聚类模型的建议。有一个客户列表 -> 客户有一个产品列表 -> 每个产品包含几个词。 我想按 activity 类型将客户分成几个组 - 即按一般主题。

您如何将这种模型引入向量聚类,例如 K-means?

到目前为止我的假设是 - 将每个单词都变成一个 fasttext 向量,select 例如在 TF-IDF 上的前 100 个单词,然后加上 * 100(fasttext 向量的大小)乘以 100 个单词,这将产生 10,000 列。也许在计算方面更经济?

这跟一个推荐系统很相关。我建议阅读有关基于内容与协作过滤推荐系统的内容。一个好的介绍是 this blog post.

因此,您可以根据许多属性进行聚类。您提出的想法可能会奏效。如果您拥有关于该产品的领域知识,您可以在寻找词向量之前利用它。例如,假设所有产品都已上架。你可以直接向量化产品,比如

vec = [
    width,
    depth,
    height,
    width * depth,  # footprint/surface area is important on its own
    width * depth * height,
    color,  # numeric representation
    popularity,  # possibly using a metric like sales
]

这只是一个示例,但它展示了如何在不借助 NLP 的情况下直接对产品进行矢量化。

如果您没有办法直接对您的产品进行矢量化,并且您不t/can不使用协同过滤(可能是冷启动问题),那么您可能想看看矢量化整个产品描述使用 Universal Sentence Encoder,无论输入大小如何,都会输出 512 维向量。