我有很多分类分布。分类分布是描述从一组 k 事件中抽取的事件的概率。我需要能够非常快速地访问事件的概率。
存储分类分布的一种方法是在 Redis 中使用排序集。每个键索引一个单独的分布,排序集的每个成员都是一个特定事件,每个分数是您看到该事件的次数。对于每个键(分布),您还将存储该分布中每个事件的计数总和,以便您可以正确规范化。
我想问的问题是:如果概率随时间变化,那么存储这些数据的好方法是什么?我基本上希望能够忘记旧的观察结果 - 即以某个固定间隔减少每个键的分数和归一化常数。
使用上面的 redis 方法,我可以每 d 分钟运行一次 cron 作业,迭代每个分布并减少 zscore 和标准化常数中的每个计数。但是,这似乎有点错误(我确定我妈妈告诉我永远不要迭代 KEYS *),所以我想知道是否有其他人更全面地解决了这个问题?