それぞれが検索クエリの関連性スコアを持つドキュメントのリストがあります。ランキングプロセスで日付を紹介するために、関連性スコアを低くするために古いドキュメントが必要です。1 /(1 + date_difference)などの関数をいじってみましたが、逆数関数は最近の日付を閉じるにはあまりにも識別力があります。
スコアを増幅するために、範囲(0..1)とドメイン(0..x)の数学関数を考えていました。ここで、x軸はドキュメントの年齢です。関数からさらに必要なものを画像で説明するのが最善です。
単純な1/(1 + x)の減少が早すぎる場合は、 1 /(1 + e ^ -x)のようなシグモイド関数またはエラー関数の方が目的に適している可能性があります。現在の日付をそのような関数の負の数のどこかにすると、設定可能な時間の間は現在の値を取得でき、その後、基本値に向かって減少します。
減衰動作は、指数関数によって適切にモデル化されることがよくあります(自然界の多くの減衰プロセスもそれに続きます)。2つの正のパラメーターA
を使用しB
て、
y(x) = A exp(-B x)
y
-range[0,1]セットが必要なのでA=1
。大きいB
ほど減衰が遅くなります。
log((x+1)-age_of_document)
対数の底は(x + 1)です。xは図のとおりであり、「しきい値」であることに注意してください。ドキュメントの年齢がxより大きい場合、スコアは負になります。スケーリングを導入するには、可能な最大スコアを掛けます。
例:ドメイン=(0,10)、最大スコアは10:10 *(log(11-x))/ log(11)
少し遅れますが、thitonが言うように、ロングテールデータポイントの「フロア」値があるため、代わりにシグモイド関数を使用することをお勧めします。例えば:
0.8 /(1 + 5 ^(x-3))+ 0.2-定数5と3を調整して、曲線の傾きを制御できます。0.2は床が置かれる場所です。