70

Prologue

Everyone knows Serial Downvoting... even the luckiest user with enough rep gets hit by this plague at least once, soon or later: some noob gets angry against another user for some reason and starts downvoting questions and answers of their new enemy.

A script running every night detects the "crime" through the analysis of the downvote/time ratio with a secret formula, and reverts them. The story could repeat itself for a bit, then usually it ends because the anger is gone or just because they started stalking someone else.

So there is a pattern, an automated fix, and a natural dissolvency of the problem.

What I want to highlight is a different, unresolved problem, against which Stack Overflow has no fix right now AFAIK.

What is Micro Serial Downvoting?

I coined this term because it is a different kind of stalking; MSD is performed by an experienced user, that knows how to avoid the reversal script, and ends up producing a persistent and (today) undetectable damage in the following way:

Instead of casting tons of downvotes, the Micro Serial Downvoter casts 2-4 downvotes a time, 2-4 times a month, along many months. They prefer to downvote questions because those don't affect their rep, but they downvote answers as well. Then anger is persistent, the timeline is respected and, in my case, it started months ago (!). Now it's april, and I'm still receiving continuous downvotes.

I know it is the same user because it is cyclical, the gap between downvotes is of few seconds, and they started downvoting ALL my questions and ALL my answers ordered by votes descending (from the highly voted going down).

Since I don't know who the user is, I can't say if, apart from this obsessive behaviour, this user is using the site answering and questioning as anyone else, or if instead they are using SO only to perform this revenge (I discovered other users in my same SO "tag area" are targeted by presumably the same person, so this could even be worse).

Actually, I can't even say if he/she is a real user, or one of multiple accounts used by a user to downvote without affecting their primary account rep (but this crossed my mind...).

What to do?

After having discovered it is a persistent pattern, I've started flagging any post, as suggested in a previous answer('s comment) by @Oded♦, and although all my flags have all been reputed helpful by the Moderators (that asked me to keep flagging), they can't see data about votes, so my flags are more anonymous usage stats than solution oriented.

In the link above, after the unupvote pattern emerged, both Moderators and SO Employers Moderators were oriented toward creating a script to detect it.

So I'm here to

  • report this singularity (maybe someone else will come out with the same problem, adding more data about its rarity / its lack of);
  • request if I can help Moderators / SO Employers in any way to detect / report / summarize the data about this behaviour;
  • asking MSO users if they have any suggestion / idea about:
    • how to detect this kind of behavior
    • how to deal with a discovered long-run micro-stalker that doesn't use SO for other purposes
    • how to deal with a discovered long-run micro-stalker that uses SO for other purposes

I don't know how widely spread this pattern/problem is, I hope for you it is rare, but it would be indeed an added value to spot a way to identify and fix it for the Stack Exchange Network.

What the heck!

This kind of pattern is beyond any form of fairness, Netiquette, Stack Overflow rules and common sense.

The result is also counter-productive for the site itself: some question / answer with a good content could be avoided by SO visitors by simply changing from 1 to 0. Some other (let's say accepted but with 0 votes) by changing from 0 to -1 could be downvoted by other users for the known "downvotes fall effect". I know you are thinking "a good answer shouldn't be affected by this that much because it should have a lot of votes", but some tags (like [struts2]) are poorly visited, and hence answers with 0-1-2 votes are absolutely normal there.


Related questions:

  1. serial-downvotes-not-being-reversed : the answer says to flag for moderators
  2. serial-downvoting-not-reversed (duplicate) : the answer says to contact the Team at the Contact Us link. I'll probably do it soon, but I'd like to keep this question open to get suggestion / experiences by SO users and Moderators, before than disturbing the SO Employers directly.

This is a list in chronological order; watch the times, the dates, and note that two questions are downvoted twice, that would suggest multiple accounts:

February 19 2014

-2  21:15   downvote    Best Practices to Create and Download a huge ZIP (from several BLOBs) in a WebApp  (QUESTION)
-2  21:15   downvote    Advanced Wildcard Mappings Parameters not found in Prepare() method                (QUESTION)

March 5 2014

-2  11:28   downvote    Pro and Cons of opening multiple InputStream?                                      (QUESTION)
-2  11:28   downvote    Set-up a Struts2 EAR Project with Maven 3                                          (QUESTION)

March 12 2014

-2  15:01   downvote    How to preserve NULL state in a Boolean sending an empty String from JSP to Action (QUESTION)
-2  15:03   downvote    How to remove the space between inline-block elements?                             (ANSWER)
-2  15:03   downvote    Weird dark border :after css arrow in Firefox                                      (ANSWER)

March 14 2014

-2  14:49   downvote    jqGrid: conditionally hide / show column content **per row**                       (QUESTION)
-2  14:52   downvote    Prevent inline-block divs from wrapping                                            (ANSWER)

March 24 2014

-2  08:55   downvote    Advanced Wildcard Mappings Parameters not found in Prepare() method                (QUESTION -> DUPLICATE !!!)
-2  08:55   downvote    How to read Action attributes from JSP fragments included with <jsp:include />?    (QUESTION)

April 1 2014

-2  11:33   downvote    jqGrid: conditionally hide / show column content **per row**                       (QUESTION -> DUPLICATE !!!)
-2  11:33   downvote    Skinny WAR, libraries in EAR: “struts-tags not found” error                        (QUESTION)
-2  11:34   downvote    Struts2 - Is it possible to access back end method in jsp?                         (ANSWER)

March 12 and March 14, both at ~ 15:00, are targeting my three top answers (that have never being downvoted before):

March 12 2014

-2  15:01   downvote    How [...]     (QUESTION)
-2  15:03   downvote    How [...]     (1ST TOP VOTED ANSWER)
-2  15:03   downvote    Weird [...]   (3ND TOP VOTED ANSWER)

March 14 2014

-2  14:49   downvote    jqGrid [...]  (QUESTION)
-2  14:52   downvote    Prevent [...] (2ND TOP VOTED ANSWER)

If you look at the titles and at the timings, you will agree with me that (if the user is the same), it is highly unlikely that they're legit. In less than a minute, the questions have necessarily been chosen directly from my profile, and there is no connection between them:

  • How to preserve NULL state in a Boolean sending an empty String from JSP to Action

  • How to remove the space between inline-block elements?

  • Weird dark border :after css arrow in Firefox

1st is Struts2, 2nd is HTML, 3rd is CSS, and they can't even be read in less than two minutes.

The fact that two questions are downvoted twice, may suggest that:

  1. It is a stalker with multiple accounts, not necessarily fake (he could have a mate registered on SO that let him use its account to downvote questions only);
  2. They are multiple stalkers;
  3. They are totally unrelated downvotes, by coincidence cast in the arc of a minute.

As said, this is not about reputation (the list above represents less than 30 reputation points)... it's to look for a better way to catch this smart stalkers, that are the annoying side of SO.

Quoting @MadScientist,

humans are astonishingly good at seeing patterns in the noise

and I absolutely agree, though I've the feeling this is not the case.

  • 5
    Since the dev team are the only ones able to help you here (as this requires access to the actual voting table), your best option is to us the 'Contact Us' link. – Martijn Pieters Apr 1 '14 at 16:03
  • Thanks @MartijnPieters; btw, I'm also interested in how would (any of) you proceed IF you had the privileges. – Andrea Ligios Apr 1 '14 at 16:05
  • That's up to the team to decide. In the past anyone caught at so blatantly avoiding the serial voting scripts has been dealt with harshly though. – Martijn Pieters Apr 1 '14 at 16:08
  • I know (hope) they can solve MY problem, I'm interested in gathering ideas on how to create an universal fix – Andrea Ligios Apr 1 '14 at 16:14
  • This happens rarely enough (luckily), and the solution is to do what you did; flag posts, if moderators cannot catch the perpetrator this way, then ask the team (provided there is a good amount of evidence, which you appear to have, pointing towards a deliberate evader). – Martijn Pieters Apr 1 '14 at 16:16
  • 6
    I don't think that any "universal fix" for this sort of thing would be discussed publicly. The Community Managers have tools to view things down to the specific, individual action. The sort of thing you talk about here would generally need manual intervention at some point, and there are some tools that can bring questionable patterns to the attention of those who need to. – Andrew Barber Apr 1 '14 at 16:23
  • 2
    I share your concern about the less-visited tags. I tend to be active in tags that don't get a lot of views (requirejs, mocha, rangy, etc.). Most questions and most answers there don't get many upvotes. – Louis Apr 1 '14 at 16:39
  • 3
  • 1
    Super post, and very related... I missed that, thanks – Andrea Ligios Apr 1 '14 at 17:11
  • @gnat: it is related in the form, not in the substance. What I'm talking about is the same behaviour described in your answer, applied not once but MANY times along many months. – Andrea Ligios Apr 2 '14 at 9:33
  • 1
    @AndreaLigios agree, the difference is substantial. Related is in the sense, that voting abuse is performed by someone understanding how reversal script works – gnat Apr 2 '14 at 10:19
  • I am having the same problem. How do you got the downvote hours? – Rui F Ribeiro May 2 at 18:34
  • Click on Profile and then on Reputation...? – Andrea Ligios May 2 at 23:29
23

There is no need for any general solution to this, the existing tools and procedures are sufficient to deal with such cases. Such cases are pretty rare, they require a lot of persistence and patience which most revenge serial-voters lack. Such cases are also complicated enough that I would not trust an automated system to distinguish them accurately from similar, but non-malicious voting patterns.

The solution to such cases where the user is trying to avoid the script should always involve humans making the decisions, and that is the current method anyway. You can flag for moderator attention or write to SE, it doesn't make a large difference because moderators will involve an SE employee anyway in complicated cases most of the time. Even though a moderator can often find out if such a pattern is malicious, the tools SE employees have available are much less ambiguous in such complicated cases. And in the end we need an SE employee anyway to invalidate the votes, that is a power moderators do not have.

The consequences for misuse of the voting system are either a warning or a suspension, depending on the severity of the offense and the previous history of the user.

I'd also add that humans are astonishingly good at seeing patterns in the noise. It happens rather often that the votes that look like they came from the same user are actually from different users. I recommend to ignore small numbers of downvotes and only flag in cases of a large amount of downvotes. Also include all information that leads you to believe that the votes are malicious, more information is very helpful in such cases.

  • Thanks for your contribute. Hope you don't mind, because I'll definitely reuse the humans are astonishingly good at seeing patterns in the noise aphorism :) Please read my comments to the other answer. I can post the list here, with images from my rep, with dates and times, and you can judge (in the same way I did, with no sight on the votes table, but just connecting the dots). That's definitely signal, the noise is minor. I've waited several months before opening this, believe me, I wouldn't with poor evidences. – Andrea Ligios Apr 2 '14 at 9:55
  • 3
    Such cases are also complicated enough that I would not trust an automated system to distinguish them accurately from similar, but non-malicious voting patterns. I would then be oriented toward an automated script for detection only, with no automated reversal. But probably it is still too expensive (against the ROI of the operation)... – Andrea Ligios Apr 2 '14 at 9:59
  • Accounts created for voting should be relatively easy to detect. They will vote in irregular bursts, too fast to read the question carefully. At least in the case of OP, where downvotes happen in very small intervals. – Danubian Sailor Apr 2 '14 at 14:31
19

What complicates cases like yours is noise. When you get above 10k or so on Stack Overflow, odds are you have a lot of questions and answers out there. Those questions and answers will be voted on by many people. Due to overlap in the tags you frequent, some people will tend to vote for a significant number of your posts (up or down) just by pure chance.

If you have fewer posts, and someone targets a large percentage of them with downvotes, serial voting can be easy to pick out. If someone votes for a streak of your posts, we can also identify whether that's serial voting and who might be behind it.

However, when you have as many posts as you do, and you get occasional downvotes from someone over time, how do we distinguish targeted voting from simple disagreement or pure coincidence? Even identifying the person behind it can be hard for moderators, since we can't see who votes for individual posts (nor would you want us to be able to see that). In fact, I suspect several of the votes you flagged were not from the same individuals.

Even SE employees often can't spot trends in this, or be able to prove any kind of abuse. If I recall correctly, I've pointed your case out to SE employees, and they couldn't detect a strong pattern there.

If the intent isn't obvious to us as humans, developing a script to handle this would be rife with problems. The current voting script handles the most blatantly clear cases, and is very conservative in what it catches, but even there it can have false positives.

  • 4
    First of all, thank you. Cross-downvoted by pure chance -> not a chance (in this case): they're all about different topics, all with a few seconds gap between the downvotes, and the answers have been downvoted ORDER BY most voted DESC. That would be a coincidence higher than win the lottery :/ Thanks for having reported them after my flags, but the fact that SE employers haven't found a recognizable pattern that time may means that the downvotes are coming from multiple fake accounts of the same guy, that is what I fear because that would be unblockable, other than hardly detectable. – Andrea Ligios Apr 2 '14 at 9:41
  • Other than that,I may have flag one or two downvotes by mistakes, but I can do a list of downvotes I'm SURE are coming from the same person, if not account. I can report 'em here but I thought it would have been removed if I did. If you think it is pertinent, I'll edit the question with this details, to give an help to SE Employers too: I've never expected someone to take too much time for this, I can do the work and then they can launch a simple query with Q&A IDs. It's not about the reputation, the damage is minimal for both me and SO, it's because it is simply... ugly, and annoying :( – Andrea Ligios Apr 2 '14 at 9:46
  • 10
    OK, a community team member looked into this and discerned a pattern in the votes. The offending ones have now been invalidated and the users behind them warned. This should hopefully not recur. – Brad Larson Apr 2 '14 at 17:10
  • 3
    Thanks @BradLarson. If you add this comment to your question or publish it as a separate answer, I'll happily accept it. As final thoughts, it turned out that not only there were real patterns in the noise, but that they were 40 (!) downvotes from more than one user, and some of the downvotes came from the same user suspended for one month on october 2013 for serial downvoting me (and it was the 3rd or 4th suspension IIRC). I sadly believe this will happen again, and still hope in a future automated script for detection of long-run micro-stalking. – Andrea Ligios Apr 2 '14 at 20:29
  • 1
    The really sad thing is that the aforementioned user is also a valid and active user, with a > 10K rep. Good skills, bad civic habits... why on earth ? :( – Andrea Ligios Apr 2 '14 at 20:32
  • It'll definitely happen again--which is why I'm at the perma-ban-hammer point. meta.stackexchange.com/questions/157114, meta.stackexchange.com/questions/233891, meta.stackexchange.com/questions/180371 ... sigh – Dave Newton Oct 20 '15 at 17:07
16

I'm posting and accepting an answer containing the Stack Overflow Moderator @BradLarson's comment to his own answer:

OK, a community team member looked into this and discerned a pattern in the votes. The offending ones have now been invalidated and the users behind them warned. This should hopefully not recur. – Brad Larson Apr 2 '14 at 17:10

Then the solution is: flag to Moderators;

they will look into it, and eventually trigger an Stack Exchange Employee's intervention, and a pattern, if present, will be discovered, and countermeasures will be taken accordingly.

Again, thanks to Moderators and SE Employees.

You must log in to answer this question.

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