用户在时间t访问我的网站,他们可能会或可能不会点击我关心的特定链接,如果他们这样做,我会记录他们点击该链接的事实,以及自t以来他们点击该链接的持续时间,称之为d .
我需要一个允许我创建这样的类的算法:
class ClickProbabilityEstimate {
public void reportImpression(long id);
public void reportClick(long id);
public double estimateClickProbability(long id);
}
每个展示都有一个唯一的id,在报告点击时使用它来指示点击属于哪个展示。
我需要一种算法,该算法将根据自报告印象以来已经过去多少时间返回一个概率,即该印象将获得一次点击,具体取决于之前的点击所需的时间。很明显,如果仍然没有点击,那么这个概率会随着时间的推移而降低。
如有必要,我们可以设置一个上限,超过该上限我们认为点击概率为 0(例如,如果距离展示发生一小时,我们可以很确定不会有点击)。
该算法应该在空间和时间上都有效,并希望尽可能少地做出假设,同时保持优雅。易于实施也很好。有任何想法吗?