fsrs-optimizer icon indicating copy to clipboard operation
fsrs-optimizer copied to clipboard

Feat/consider short term schedule [WIP]

Open L-M-Sherlock opened this issue 4 months ago • 11 comments

Algorithm Log Loss RMSE (bins) Parameters
FSRS-4.5 0.3236±0.1512 0.0433±0.0310 17
FSRS-4.5 + short-term 0.3206±0.1489 0.0425±0.0302 17
FSRS-4.5 + short-term + w[17] 0.3204±0.1487 0.0424±0.0299 18
FSRS-4.5 + short-term + w[17] + w[18] 0.3195±0.1483 0.0415±0.0297 19
FSRS-4.5 + short-term + w[17] + w[18] + w[19] 0.3194±0.1482 0.0415±0.0298 20
Algorithm Log Loss RMSE (bins) Parameters
FSRS-4.5 0.3461±0.1681 0.0628±0.0455 17
FSRS-4.5 + short-term 0.3417±0.1650 0.0608±0.0442 17
FSRS-4.5 + short-term + w[17] 0.3418±0.1650 0.0608±0.0439 18
FSRS-4.5 + short-term + w[17] + w[18] 0.3411±0.1648 0.0600±0.0439 19
FSRS-4.5 + short-term + w[17] + w[18] + w[19] 0.3410±0.1648 0.0600±0.0439 20

Related code:

    def stability_short_term(self, state: Tensor, rating: Tensor) -> Tensor:
        new_s = state[:, 0] * torch.exp(self.w[17] * (rating - 3 + self.w[18]))
        return new_s

    def next_d_short_term(self, state: Tensor, rating: Tensor) -> Tensor:
        new_d = state[:, 1] - self.w[19] * (rating - 3)
        return new_d

@Expertium, I finished the benchmarking of four candidates considering short-term reviews. I prefer the FSRS-4.5 + short-term because it doesn't introduce any extra parameters and reduce the RMSE(bins) 3.2% (weighted by ln(number of reviews)). What do you think of?

L-M-Sherlock avatar Feb 11 '24 15:02 L-M-Sherlock