如何将个性化模型合并在一起

数据挖掘 机器学习 预测建模 特征提取 地理空间
2022-03-04 00:00:53

假设我正在构建一个像 Uber 这样的应用程序,我想根据用户过去的历史、当前的经纬度以及当前的日期和时间来预测用户最有可能的目的地。

我们有数百万用户,但每个用户的需求可能太独特而无法概括。即,每个人的通勤方式是如此不同,以至于您从其他用户那里学到的东西可能不适用于其他用户。

总之,我必须构建数百万个模型,如何将这些模型合并在一起以获得更好的部署过程?如果不是,部署数百万个模型的最佳实践是什么?

1个回答

在这种情况下,特征工程是游戏的名称。几年前我偶然发现了一个类似的问题,有一个模型也不能很好地概括所有情况可能会令人困惑。然而,一个用户的一个模型永远不会是要走的路,毕竟在很多情况下,你只有一个特定于该用户的数据点。此外,如果出现新用户,您将永远无法做出预测。

因此,您需要为尽可能多的用户使用一种模型。还有更多方法,但我认为这些是值得考虑的方法。

  • 您可以按位置、城市、社区、地区对用户进行集群。通常,同一地区的人们经常光顾同一地点。如果一个模型无法对所有可能的用户进行泛化,那么将数据分成类似的集群是一种方法。
  • 如果一个模型在大多数情况下都能很好地泛化,但是当它不能泛化时有一个很大的集群,那么对困难的情况使用第二个模型。
  • 基本特征工程:居住在附近的用户会根据他们当前的位置去相似的地方,并且会使用相同的方式。有很多类似的用户会分享的信息。也使用起始位置作为特征。
  • 高级特征工程:以有意义的方式使用来自相同用户的旧目标以及时间特征作为训练特征来预测未来目标。
  • 使用用户 ID:用户 ID 可用于预测现代机器学习算法中的目标,稀疏矩阵可以解决问题,将它们视为 NLP 单词。有些可能有用,有些则没有,但让算法完成它的工作。如果您采用这种方法,请搜索支持稀疏矩阵的算法。
  • 研究 GIS(地理信息系统)预测:该领域还有其他技巧和特征工程方法不适用于其他 ML 问题,这些问题对于预测这类问题很有用。
  • 尝试不同的目标。经度 - 纬度通常是不可能的,但可以对区域进行原始估计。您可以将目标视为一个多标签(而不是多类)分类,每个区域/邻域/块都是一个标签。请记住,算法可以处理许多目标,例如图像分类,研究这些方法。
  • 如果您没有足够的数据,请考虑更简单的方法:如果用户 Bob 每周一去地点 A,那么 Bob 可能下周一也会在 A 处。
  • 使用日期/星期/节假日作为特征。人们在假期改变过境行为。

tl博士 找到一种方法,将多个用户用于一个泛化良好的模型,因为为一个人训练一个模型永远不会奏效,因为用户通常只有一个数据点。因为,所有算法都需要大量数据才能很好地泛化。