There is a request for a comment on this issue Controversial posts and comments #2515. Do you have any ideas on how best to implement this?

I’d like to see some more people chime in with opinions, but maybe that’ll come with a PR. At the very least, it’s something that can be moved forward with.

— dcormier

  • doylio@lemmy.ca
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 year ago

    My first thought is to rank items by totalVotes / score. This would prioritize posts that get lots of votes in both directions.

    Example:

    def getControversialScore(upvotes, downvotes):
      return (upvotes + downvotes) / abs(upvotes - downvotes)
    
    getControversialScore(50, 10) # 1.5
    getControversialScore(4, 5) # 9
    getControversialScore(6, 30) # 1.44
    getControversialScore(30, 28) # 29
    
    • l3mming@lemmy.fmhy.ml
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      1 year ago

      I like this. Super clean and simple.

      That said, I suspect Reddit’s ‘controversial’ sorting might work a little differently, as I often used it to see what the crazy people were saying.

      I haven’t played with the numbers, but I’m not sure that your proposal would push the crazies to the top - just the moderate crazies.

    • Modal@lemmy.sdf.org
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      1 year ago

      It might depend on the definition but I’d probably expect engagement/total to play a bigger factor.

      As it is it weights very heavily towards evenness:
      A: (11, 10) = 21
      B: (99, 90) = 21

      They have the same ratio of votes but I’d expect B to be more controversial since more votes are tied up in the controversy / it got more attention. Maybe most people just don’t care about A so they didn’t bother to vote.

  • ConsciousCode@beehaw.org
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    1 year ago

    If I was God Emperor for any sort of content algorithm, I’d want to try a decentralized “simulated annealing” of feature vectors based on up/down votes, subscriptions, etc. That lets you create linear combinations (eg on Wikipedia the vector for King - Man might be close to Royalty) and share them around on different platforms. This makes The AlgorithmTM a lot more transparent and user-driven, since you can feasibly program on a per-user basis all sorts of policies for how their own preference vector updates, or they could have layers of linearly combined vectors for base style, mood, binging, etc.

    What I like about this is it doesn’t presume some kind of inherent value - it implies a philosophy that everything is equally valid/valuable to someone, and people just have different preferences for what they prefer. If it’s something utterly vile that everyone downvotes into oblivion, that’ll naturally sink into the recesses of feature-space that occupy the opposite of whatever “all humans” value. It’s also dead simple to implement, you just need an update policy (N-dimensional modular incrementing?) and a way to search a database by a given metric (cosine distance is the new hotness with AI, but back when I first thought of this I used hamming distance).