57

The Problem (an example)

This user's answers have been downvoted consistently as they are not very high quality.

The also tend to come in bursts of nearly 10 often on older questions.

They are not low quality enough to trip an automatic ban, apparently, but as you can tell many of the answers are downvoted and only a few are actually positive score.

Unfortunately this problem has been made worse because of the following:

http://i.stack.imgur.com/WnlRk.png

I understand the importance of having a mechanism to prevent users from simply going to a user and downvoting all their content, but it causes situations like this to be really difficult.

Resolution

I suggest the serial downvoting algorithm only consider content with a non-negative vote count. Perhaps even make it so all content with score of < -2 and posted within the past 24 hours.

Or, preferably, simply make it only apply to users with a median score of at least 0 OR less than 10 total posts (this would mean the algorithm would apply to nearly everyone except people consistently posting low content).

A user spamming nearly 10 low quality answers in a single day should not trip the serial downvoting algorithm, ever.

This comment is worth including:

it is worth noting that, as opposed to SO / active tags, at smaller sites cases like that would be more accurate to qualify as content-targeted (ie legitimate, as opposed to abusive user-targeted, intended to be dealt with by vote reversal script). When crap-bomber unloads their answers, those looking at slowly changing active tab at front page of the smaller sites are literally forced to see the new content to vote on - it's not like when one picks a user profile and bulldozes over their posts

  • 2
    Of course if this is approved/deigned/used-sort-of will never be known due to the stack official secrets act – Richard Tingle Oct 3 '13 at 17:19
  • 2
    Yesterday I got serially down-voted soon after editing one of his answers and having my name next to his question. So I'm guessing in fact, someone saw one of his answers and started down-voting everything he wrote. – dcaswell Oct 3 '13 at 17:19
  • 7
    If I hated you (for what ever reason, I don't I promise) this would however give me free reign to downvote everything of yours that has ever been downvoted – Richard Tingle Oct 3 '13 at 17:20
  • 4
    @RichardTingle you are free to suggest different criteria. What about "only for posts younger than x"? – John Dvorak Oct 3 '13 at 17:22
  • 16
    it is worth noting that, as opposed to SO / active tags, at smaller sites cases like that would be more accurate to qualify as content-targeted (ie legitimate, as opposed to abusive user-targeted, intended to be dealt with by vote reversal script). When crap-bomber unloads their answers, those looking at slowly changing active tab at front page of the smaller sites are literally forced to see the new content to vote on - it's not like when one picks a user profile and bulldozes over their posts – gnat Oct 3 '13 at 17:54
  • 1
    Note that post bans are off by default and have to be turned on manually for a site if it is deemed that they really need it. I doubt The Workplace has it enabled. – animuson Oct 3 '13 at 19:05
  • @animuson wrt post bans at sites like Workplace, consider also that moderator enforcement for quality-related issues at these might be a cure worse than decease. Shog once made a very insightful note on that – gnat Oct 3 '13 at 19:11
  • 2
    So, in 5 seconds I down-vote 10 questions asked by a user just because I don't like the user (or for a comment he left me), and votes would not be reversed just because I chose questions with a negative score. Uhmmm… – kiamlaluno Oct 3 '13 at 19:23
  • 6
    @kiamlaluno cases like you describe are and should be reverted, is there a need to straw man here? Request is about quite a different case though - when I spend usual 20-30 minutes to study my usual daily portion of updates at front page and vote content. The fact that sometimes this content turns out like 80% crap posted from single account should not trigger the reversal, as I vote legitimately, sine ira et studio – gnat Oct 3 '13 at 19:47
  • 1
    Similar situation, but more often is in Area51, when someone proposes 5 poor questions, and all of them desire downvote. Then the downvotes are reversed. – Danubian Sailor Nov 29 '13 at 8:57
  • 1
  • Remember if you look at this users answers to down vote no more then 2 of them, as otherwise you votes may not count. – Ian Ringrose Oct 26 '16 at 16:25
6

First off, these are good criteria.

I ran a quick check wherein I counted any vote invalidation where more than 1/3rd of the votes invalidated were on posts less than a day old and scoring less than 0 (obviously without the invalidated votes). They produced very few true positives on the sites I checked (including SEng and TWP).

There's just one problem with doing this: they also produced very few positives. The serial downvoting script is already extremely conservative. Outside of cases where someone is essentially vandalizing the site and it's all you can do to downvote them as quickly as possible, this just doesn't happen very often. I found three other instances (besides the one you cited) where votes were invalidated unnecessarily on The Workplace; a few more on SEng (mostly connected to a couple of well-known vandals who plagued the site a few years back), and a few hundred on Stack Overflow (out of several thousand total invalidations).

So right now, we'd be increasing the complexity of the logic for the sake of very rare occurrences. But, there's an additional problem...

...When someone's actively vandalizing the site, their posts tend to get deleted.

Not to get too sidetracked with details here, but invalidating votes on deleted posts is essentially a no-op for both the voter and votee, except in those rare circumstances where the posts get undeleted (which doesn't tend to include vandalism). Re-running my check on TWP with an exclusion for deleted posts results in exactly one result in the entire history of the site... The one you cite as an example here.

Why this still might be useful

As I said above, the current serial downvoting logic is pretty conservative. Folks already don't downvote very much, so the last thing we want to do is wipe out lots of votes when they do. However, we also don't want to encourage targeted / revenge voting. Right now, this means that when the script misses some blatant instance of abuse one of us here at Stack Overflow Global Amalgamated Heavy Industries, Corp. has to go through them manually and invalidate them. That's... Not as reliable as one might like.

Turns out, we actually have a much more sensitive detection tool written by our good friend and colleague Sklivvz. Only problem is, false-positives: if I ran it blindly on The Workplace, it would result in over 6 times the total number of invalidations, with almost 20 times the number of invalidations that look problematic according to the criteria you propose.

Now of course, we wouldn't run it blindly. There are already a number of checks built in to help gauge the "signal strength" for identified patterns. But before we go turning this loose, we'll want to make double extra sure it's not going to blow away all the precious downvotes that folks have worked so hard to cast - so we'll definitely be looking for additional "counter-indicators", similar to the ones you're proposing here.

  • Huh, interesting. Thanks for looking into this - it's good to see data associated with this. I suspect as sites mature and have more delete eligible users, the issue here also goes away? – enderland Feb 10 '17 at 20:32
  • Well... This is fairly uncommon on the very largest sites, @enderland. And also there are a bunch of small sites where it's never come up. Percentage-wise, there are a dozen or so medium-sized sites that have a non-trivial portion of invalidations meeting your criteria, but in real numbers it's... pretty rare everywhere; the only sites with more than a dozen instances are SO and Math, and on those sites it's a drop in the bucket compared to total invalidations. – Shog9 Feb 10 '17 at 21:08
  • @enderland if site matures staying small it is very likely that issue goes away. But if it grows bigger in the process the issue may stay. If you think of it, bigger sites tend to "split" by tags and in smaller, slower tags it is possible to observe effects similar to those at smaller sites (one small tag at SO I've been active at a while ago certainly had much in common with smaller sites I am currently mostly active at) – gnat Feb 10 '17 at 22:07
16

While I agree with the problem, I'm not sure I agree with the solution. If implemented this would give a person free reign to downvote every negatively voted post a person has ever made for reasons completely separate from the posts themselves; this is exactly what the serial voting script aims to avoid.

Your edit regarding young posts however makes sense as its likely that you would "naturally" come across many young posts. There is of course no way to know that this isn't already taken into account as the serial voting script is secret.

  • 4
    if it was already taken into account, I find it very surprising it would trip at 10 young answers per day. – John Dvorak Oct 3 '13 at 17:38
  • 4
    I could imagine script taking into account cases when user posts account for like half of the whole daily activity at particular site. And, well, at smaller traffic sites it's not like a hundred years flood; IIRC this happened 3 or 4 times in ~12 months at Workplace – gnat Oct 4 '13 at 8:29
16
+75

I think the idea is a good one, but how about addressing what happened in a more targeted way? If a user makes multiple posts that show up consecutively or near-consecutively on a given site (say, separated by no more than 3 intervening posts by other users) then I would suggest they be treated as a single question for purposes of triggering the serial downvoting detection algorithm.

On SO this change to the algorithm would be pointless, since the volume of questions makes filling up the recent questions first page impossible to do for any significant length of time. But for smaller sites it's feasible and reasonably common for people to use the most recent questions tab to read all the questions they have not yet seen. Currently, for users who read new questions that way, the serial downvoting script is only triggered when some idiot floods the site with bad questions.

The current algorithm is fairly problematic in this situation. It reverses perfectly legitimate downvotes and makes it difficult for the community to clean up the site - in a situation where it particularly needs cleaning up.

I think it is conceptually pretty easy to come up with a test that detects this particular situation (see my first paragraph). It's possible it isn't that easy to implement, but it may help that it need not be implement on high-traffic sites, since it solves a problem that such sites don't have.

  • I think this could work, but maybe also add in that votes for other users must have been cast at about the same time. – Ian Ringrose Oct 26 '16 at 16:24
5

I don't agree with solution. I would rather simply see posts that was on the front page, or that was accessed from the first page or three of a "newest" and "active" list (tag or not) be excluded from reversal, unless other posts would trigger the reversal on their own anyway. Especially if voter acted on another items of that list, too, and his behavior shows he is reading a list of posts, not hunting single person's content.

Excluding votes that happened by entering the question from a list user naturally watches would prevent serial voting reversal "abuse", but at the same time will not permit "I'll downvote you more!" revenges that would be possible if the OP's suggestion would get implemented.

Of course we don't know if this is already taken into account. Maybe someone really serially downvoted the guy who posted a load of bad content? And precaution similar to what I (or anyone here) suggest is already in place? We will never know.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .