TrueSkill Through Time RRS feed

  • Question

  • Hi!

    I found an implementation of TrueSkill using Infer.NET on this forum and it works great for me. However, I'm unable to implement TrueSkill Through Time in the same way. I know there is an implementation of TTT in F#, however, it doesn't use Infer.NET.

    I'd appreciate any help!


    Wednesday, April 18, 2012 2:25 PM

All replies

  • In TrueSkill Through Time, the player skills change each year, and they are coupled between consecutive years.  So you need to have a separate PlayerSkills array for every year, and repeat the whole model (performances, etc.) for each year, then link the years.  The trickiest bit is linking the years.  Each player has a year where they first started playing.  In that year, their skill comes from the prior, otherwise their skill is drawn from a Gaussian around the previous year's skill.  Since this differs for each player, you have to use a Variable.If statement to branch on whether this is the first year for a player, and generate their skill value appropriately.  So the code becomes something like this:

    Variable<bool> isFirstYear = (firstYear[player] >= year);
    using (Variable.If(isFirstYear)) {
      skillInYear[year][player] = Variable<double>.Random(skillPrior);
    using (Variable.IfNot(isFirstYear)) {
      skillInYear[year][player] = Variable.GaussianFromMeanAndPrecision(skillInYear[year-1][player], skillChangePrecision);

    Thursday, April 19, 2012 12:39 PM