Danbooru

Vote Down Abuse?

Posted under General

Granola said:
Let me tell you why I think this is a great idea.

No it's not. Taking away yet another function from members is not a solution to anything. Especially not to the fact the comment moderation tools blew and thus we didn't touch the comments because it actually made things worse.

I'll strangle the next person to propose "let's make X a priv-only function" in response to shortcomings in the implementation of X.

How about tweaking the values a bit?
Priv comments could start at score 2, contributors at 4, and janitors+ at lots.

Janitors+ get unlimited votes and triple damage.

That's pretty easy changes to make and should reduce the problem of relevant posts getting hidden.

That... doesn't sound like too bad an idea, actually.

I still hold that any comments made by mods ought to have either a bit that automatically disallows downvoting them, or an automatic comment score so astronomically high that voting them down to invisibility would be virtually impossible.

But not all comments, I submit. There are comments I make as 葉月, and comments I make as a mod. Only the latter should really have the bit set. But that's still just patching a leaky system, it won't change the fact that good discussions get hidden by unwashed masses who prefer to leave yet another "lol that's hot", which is the exact opposite of the intended effect. And whatever broad, userlevel-based generalisations we make won't help in the slightest, because the very problem we're fighting is that there's no easy way to distinguish good comment(er)s from bad ones. Good comments from members will still be drowned by all the bad ones, and we still have crazy traffic making keeping up with comments impossible.

So, as a short-term solution, the following tweaks could be applied:

  • Default threshold is lowered to -3
  • Priv+ votes get 2x damage
  • Janitor+ votes get 3x damage
  • Priv comments start at +2 karma
  • Contrib comments start at +3 karma
  • Janitor+ comments start at +4
  • Janitor+ get an option to make "administrative comments", which start out at 100,000 or something along these lines. Preferably it'd be an option like commenting without bumping and not just hardcoded for every comment

Long-term solutions would need more involved research, but will likely involve some forms of networking, presumably coupled with bayesian filters automatically to flag comments most likely to be completely worthless. One sketch I can see is something like this, based heavily on the Advogato model:

  • There's an (implicit, probably visible only to Janitor+ and yourself) value, karma, for every user. It could be in discrete Apprentice/Journeyman/Master steps, or a more continuous value of, say, -100 to +100
  • Karma flows through the graph of users by the means of votes. Votes would be allocated to comments, users directly (ie. you can vote on a given user's profile page), and implicitly through actions such as records, bans and invites
  • Karmic impact of a vote is directly related to the voter's own karma. If you have a lot of karma, your votes matter, if you don't, they have little or no impact
  • Karma network is initially seeded from a few nodes. For example, Admins get +100, Mods +70, Janitors +50, Contrib +30, Priv +20 or +10[1], members would start at +5 or +0[2]. This is the core of the mod_virgule idea, that your trust network can be created implicitly and you only have to trust blindly a few initial nodes.
  • There should be an extensive set of reports available, to show members with particularly high karma (so we can promote them), contributors with particularly low karma, low karma users with particularly many recent edits (to highlight either possible vandals or candidates for promotion), etc.

The beauty of mod_virgule is that it automagically isolates hordes of low-karma wannabees from the trusted users. That is, if you have no karma, you can't just gang up and vote each other up, because you have no karma to make your votes matter. But as soon as an established user vouches for you, you're endowed with a part of their trust.

In addition to the karma attached to users, there would be a bayesian filter for comments. Comments with low enough karma, explicitly flagged for deletion, or caught by the filter as likely spam would be moved to a moderation area accessible to Janitor+. There comments could be reviewed by moderators and either confirmed as bad (which would remove them from visible comments, but *not* from the user profile) and fed as further learning material to the filter, or confirmed as good and cleared from any bad karma. After enough spam and ham is seen by the filter, it should serve as a good first line of defense against recurring "it's wonderful!" or "yaaaay~" snowclones, as well as "lol hot XD" spam.

Performance-wise, the above should be entirely doable without undue load on the servers. Karma network could be reflown fully once a night to avoid burning CPU too much. Bayesian filter could and should be a completely separate process that's just fed with the text of a comment and returns the score for it, which allows hosting on another server with no impact on the performance of the site.

There are further refinements possible, such as splitting the karma into separate values for edits, uploads and comments, and introduction of cliques so that you'd be more likely to see comments from people you care about, but that's vague enough at the moment that there's not much serious discussion to be had.

[1] We have to be careful here, because we have very many paid Priv members whose status has nothing to do with the quality of their contributions. But OTOH, we have many invited Priv members, whose opinion we do value. Best would be if there was a "paid member?" bit in the DB, but that's very unlikely.
[2] This will likely need testing before we can decide if any weight should be attached to completely new members' actions. I'd prefer +5 if possible, because getting out of total obscurity is hard, but it'll need extensive testing to see if it can't be abused by swarms of idiots/vandals.

I sort of like this idea since it handles comment moderation (which is usually a huge mess no matter how you look at it) semi-automatically, gives everyone a voice, and even provides an additional metric (karma) with which to consider when handing out invites.

It also gives positive records (positive user votes) "teeth", and somewhat mitigates negative records' (negative user votes) effect (since today many users see them as a sort of scarlet letter).

葉月 said:
Karma flows through the graph of users by the means of votes. Votes would be allocated to comments, users directly (ie. you can vote on a given user's profile page), and implicitly through actions such as records, bans and invites

As I understand it, in Advogato's model there is no voting involved. People just certify each other as trustworthy or not and karma is distributed according to the resulting trust network. How then does voting come into play in your system?

evazion said:
As I understand it, in Advogato's model there is no voting involved. People just certify each other as trustworthy or not and karma is distributed according to the resulting trust network. How then does voting come into play in your system?

It uses the same underlying model, just for somewhat different (or rather extended) purposes. How you call it doesn't really matter, the important part is that it's self-regulating by the karma feedback loop.

In advogato, karma is expressed by certifications, and determines how much weight your own certifications have. It's also used to determine the user level that is then shown as your badge and allows people to gauge your value in the network.

In my proposal, karma is expressed by votes, and determines how much weight your votes have. It's also used to determine your value in the network, and can be used to identify outliers whose karma doesn't match their user level (positively or negatively). It'd also seed the initial karma of your comments, so users whose comments get downvoted a lot would eventually fade into obscurity, simultaneously preventing them from doing things like downvoting actually valuable comments and hiding them for everyone.

Taking this further, we could make it so that a comment with initial karma low enough to be hidden wouldn't bump the comment list, cutting down on the worst traffic and making keeping up with the comment list feasible again. There could be an interplay between karma and the bayesian filter, so that comments with initkarma of say -1 or lower would have the logic reversed and would be allowed to be marked as bad automatically with moderators manually hamming them in case of false positives, instead of the normal mode where the mod has to confirm spam manually before it's actually marked bad.

One thing that needs thinking through is how to determine the initial nodes in the network. Just assigning starting karma based on your current user level is kinda bad, because you're supposed to be able to trace back all karma flow to the initial nodes through certifications, but we lack the graph of certifications because danbooru wasn't built for that. Perhaps making the admins be the initial nodes, and assigning some definite values to invites (such as "becoming a mod is worth +70, contrib +50") could be enough. If that graph turns out not to be dense enough, presumably also making mods to be seeds would suffice.

I have to believe you, as I can't access your profile, but yeah. We'd need to normalise the graph and make sure it's connected and sane everywhere before going through with that.

Updated

Hmm, it's strange that you haven't been able to access either your or my profile lately, because although some users had been consistently failing for me, both of those had consistently been working.

But yeah, for whatever reason, I'm listed as being invited by nobody. My guess is that it had something to do with the fact that I had temporarily been mostly inactive on Danbooru for a couple months after it had closed to the public despite the fact that I was one of the users that was still given access.

It was sometime during that time-period that the invite feature was introduced and the graph initially generated (or at least that's when invites started being tracked and displayed on the user page and in the profiles).

Right now I have descendants, but no ancestors. Scanning through the user listing it looks like DopefishJustin , mitosis , and a ton of privileged, contributors, and a couple janitors with id's in the 9400's and 9500's have no invitation ancestry either. I'm not sure how many of those users are still active or not.

1 3 4 5 6 7