For each 10 seconds of reading, increment the tags on the current article as "favoured". Then, poll randomly from those tags for the next recommended article. Add some logarithms of division to prevent the tags from infinite scaling.
Can you tell that YouTube reels engineers? Because their Algo is a disaster where I'm only fed Sopranos and NBA content. I don't hate it, but god I have so many subscriptions (civil aviation, personal finance, etc) that I never ever see on my feed.
I misspelt the last sentence a bit. I meant division "or" logarithm.
Basically, we have an unbounded counter that is gonna start breaking things. So we need to normalize it to a percentage score (by dividing it by the total favoured count across all tags), or pass it through a logarithm to bound it.
This approach only works if all content is accurately tagged, which works basically nowhere on the internet except Wikipedia.