ユーザーが時間tに私のウェブサイトにアクセスし、私が気にかけている特定のリンクをクリックする場合とクリックしない場合があります。クリックしたという事実と、クリックしてからの期間を記録します。これを呼び出します。d。
次のようなクラスを作成できるアルゴリズムが必要です。
class ClickProbabilityEstimate {
public void reportImpression(long id);
public void reportClick(long id);
public double estimateClickProbability(long id);
}
すべてのインプレッションは一意のIDを取得します。これは、クリックを報告するときに、クリックがどのインプレッションに属するかを示すために使用されます。
インプレッションが報告されてからの経過時間に基づいて、前回のクリックに必要な時間に基づいて、インプレッションがクリックを受け取る確率を返すアルゴリズムが必要です。明らかに、クリックがまだない場合、この確率は時間の経過とともに減少すると予想されます。
必要に応じて、クリック確率を0と見なす上限を設定できます(たとえば、インプレッションが発生してから1時間経過している場合は、クリックが発生しないことを確信できます)。
アルゴリズムは、スペースと時間の両方の効率が高く、エレガントでありながら、できるだけ少ない仮定を行う必要があります。実装のしやすさもいいでしょう。何か案は?