我计划为训练构建一个推荐系统。
根据我目前的理解,如果我构建并训练了一个机器学习模型,它的预测是基于我的训练数据的。但如果我有一个数据集很小但变化很快的环境,比如一个小型在线商店,这意味着我的模型很快就会过时。
例如:如果一个新用户(没有现有数据)喜欢某件产品,这条数据不会立即在我的机器学习模型中可用。所以新用户会一直得到相同的推荐,直到我重新训练我的机器学习模型。这对我来说听起来不太实用。
有什么好方法可以在我获得用户的新信息(隐式反馈)时快速更新我的模型吗?
我知道有强化学习,但这似乎在今天并不常见。所以我想一定有其他方法来解决这个问题…
如果您能给我一些提示或关键词来解决这个问题,我会非常高兴的。或者可能是我对基本原理的误解?
回答:
是的,您绝对正确,任何机器学习模型的预测都是基于训练数据的。
所以如果您的数据在不断变化,您也想更新您的机器学习模型,可以执行以下步骤:
-
每当数据库表中添加了新用户的活动时,将这些数据添加到您的训练数据中。为此,您需要规划如何更好地结构化表格和保存数据。
-
然后设置一个定时任务(cron job 是基于时间的作业调度程序,根据您设置的时间运行您的脚本(作业))。
-
设置一个阈值,例如每当数据库中的活动增加到这个程度或者数据增加到这个程度时,运行定时任务或运行脚本。
-
在您的定时任务中,脚本将执行三件事。
- 首先,它会从数据库中提取新数据,并将其准备成训练数据的格式。
- 然后用上述步骤准备的新数据训练保存的机器学习模型。
- 训练完成后,用新模型替换旧的机器学习模型。
通过这种方式,您可以轻松地保持模型的更新状态。