'Controversial' Ordering
$begingroup$
This is seemingly simple question that naturally fell into the ambit of my attention recently. And it's oddly reflexively referential in a certain way also.
On a certain webforum that I frequent (not this one - a far far less 'respectable' one than this one ... but not 4chan, I hasten to add! (in fact 4chan doesn't have any votes - there wouldn't be any point, as everyone's score would just go to $-infty$ within a few minutes!)), there are several options for listing the posts: there is one that does it by nett voting-score; a chronological one (these are pretty obvious ones to have): but there is another one designated 'controversial'. I wrote to the moderator asking what this ordering means, and he replied saying that it's puts a premium on a post according as it has a large number of both upvotes and downvotes. My instantaneous thought was "that's simple enough" ... but then I went on to think ... "but exactly what formula would you use?".
I have decided eventually that, if I were writing the code for the forum, I would use $$sqrt{m^2+n^2}operatorname{atn}frac{2mn}{|m^2-n^2|} ,$$ with $m$ & $n$ being the vote-numbers - whichever-whichever. (It begs normalisation by a $2/pi$ ... but that doesn't matter if it's just for the sake of comparison.) The reasoning is that this recipe is proportional to the magnitude of the vote 'vector', but scaled by the angle by which it departs from either comprising purely upvotes or purely downvotes. It looks ridiculously complicated for such a simple thing ... but then it's all on computer: & what is calculating that compared to image-processing, & stuff like that.
And I wonder whether anyone could either suggest something else, or tell me what coders of web-fora actually use.
statistics
$endgroup$
add a comment |
$begingroup$
This is seemingly simple question that naturally fell into the ambit of my attention recently. And it's oddly reflexively referential in a certain way also.
On a certain webforum that I frequent (not this one - a far far less 'respectable' one than this one ... but not 4chan, I hasten to add! (in fact 4chan doesn't have any votes - there wouldn't be any point, as everyone's score would just go to $-infty$ within a few minutes!)), there are several options for listing the posts: there is one that does it by nett voting-score; a chronological one (these are pretty obvious ones to have): but there is another one designated 'controversial'. I wrote to the moderator asking what this ordering means, and he replied saying that it's puts a premium on a post according as it has a large number of both upvotes and downvotes. My instantaneous thought was "that's simple enough" ... but then I went on to think ... "but exactly what formula would you use?".
I have decided eventually that, if I were writing the code for the forum, I would use $$sqrt{m^2+n^2}operatorname{atn}frac{2mn}{|m^2-n^2|} ,$$ with $m$ & $n$ being the vote-numbers - whichever-whichever. (It begs normalisation by a $2/pi$ ... but that doesn't matter if it's just for the sake of comparison.) The reasoning is that this recipe is proportional to the magnitude of the vote 'vector', but scaled by the angle by which it departs from either comprising purely upvotes or purely downvotes. It looks ridiculously complicated for such a simple thing ... but then it's all on computer: & what is calculating that compared to image-processing, & stuff like that.
And I wonder whether anyone could either suggest something else, or tell me what coders of web-fora actually use.
statistics
$endgroup$
add a comment |
$begingroup$
This is seemingly simple question that naturally fell into the ambit of my attention recently. And it's oddly reflexively referential in a certain way also.
On a certain webforum that I frequent (not this one - a far far less 'respectable' one than this one ... but not 4chan, I hasten to add! (in fact 4chan doesn't have any votes - there wouldn't be any point, as everyone's score would just go to $-infty$ within a few minutes!)), there are several options for listing the posts: there is one that does it by nett voting-score; a chronological one (these are pretty obvious ones to have): but there is another one designated 'controversial'. I wrote to the moderator asking what this ordering means, and he replied saying that it's puts a premium on a post according as it has a large number of both upvotes and downvotes. My instantaneous thought was "that's simple enough" ... but then I went on to think ... "but exactly what formula would you use?".
I have decided eventually that, if I were writing the code for the forum, I would use $$sqrt{m^2+n^2}operatorname{atn}frac{2mn}{|m^2-n^2|} ,$$ with $m$ & $n$ being the vote-numbers - whichever-whichever. (It begs normalisation by a $2/pi$ ... but that doesn't matter if it's just for the sake of comparison.) The reasoning is that this recipe is proportional to the magnitude of the vote 'vector', but scaled by the angle by which it departs from either comprising purely upvotes or purely downvotes. It looks ridiculously complicated for such a simple thing ... but then it's all on computer: & what is calculating that compared to image-processing, & stuff like that.
And I wonder whether anyone could either suggest something else, or tell me what coders of web-fora actually use.
statistics
$endgroup$
This is seemingly simple question that naturally fell into the ambit of my attention recently. And it's oddly reflexively referential in a certain way also.
On a certain webforum that I frequent (not this one - a far far less 'respectable' one than this one ... but not 4chan, I hasten to add! (in fact 4chan doesn't have any votes - there wouldn't be any point, as everyone's score would just go to $-infty$ within a few minutes!)), there are several options for listing the posts: there is one that does it by nett voting-score; a chronological one (these are pretty obvious ones to have): but there is another one designated 'controversial'. I wrote to the moderator asking what this ordering means, and he replied saying that it's puts a premium on a post according as it has a large number of both upvotes and downvotes. My instantaneous thought was "that's simple enough" ... but then I went on to think ... "but exactly what formula would you use?".
I have decided eventually that, if I were writing the code for the forum, I would use $$sqrt{m^2+n^2}operatorname{atn}frac{2mn}{|m^2-n^2|} ,$$ with $m$ & $n$ being the vote-numbers - whichever-whichever. (It begs normalisation by a $2/pi$ ... but that doesn't matter if it's just for the sake of comparison.) The reasoning is that this recipe is proportional to the magnitude of the vote 'vector', but scaled by the angle by which it departs from either comprising purely upvotes or purely downvotes. It looks ridiculously complicated for such a simple thing ... but then it's all on computer: & what is calculating that compared to image-processing, & stuff like that.
And I wonder whether anyone could either suggest something else, or tell me what coders of web-fora actually use.
statistics
statistics
edited Dec 9 '18 at 22:51
AmbretteOrrisey
asked Dec 9 '18 at 22:23
AmbretteOrriseyAmbretteOrrisey
54210
54210
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
I don't know what coders of web fora actually use, but I'd say the simplest formula would be to just use the product of up- and downvotes, or if linear scaling with the total number of votes is considered important, the geometric mean (that is, the square root of the product).
This is because for a given sum (that is, a given total number of votes), the product is maximal when the number of up- and downvotes are equal, and falls down to zero when one of them goes to zero (a post that has all its vote in one direction clearly is not controversial at all).
Moreover, the product has the advantage that it is simple, which means less chance of implementation bugs, and fast, which means you won't have it as performance bottleneck even for large numbers of posts.
If you want your rating not purely on how controversial it is, you can also use something like
$$m-n + csqrt{mn}$$
where $c$ tells how much being controversial should be weighted; c=0 would be ordering purely after score (that is, number of positive minus number of negative votes, like e.g. here on Stack Exchange), a large value for $c$ would mean that being highly controversial is the main sorting criterion.
$endgroup$
$begingroup$
Yes - mine is probably overly fussy, insisting that it be exactly proportional to the product of the magnitude of the 'vector' and the lesser of its angular departures from the axes. But as for implementation bugs, atn is so elementary a function, I'm not sure that would really be an issue. But then ... I suppose it just might be. I think you would need to take the square root though - as you said - the geometric mean, rather than just use the product, to keep a rudimentary quasiproportionality to the magnitude of the vector ¶ And of course, thanks for your contribution.
$endgroup$
– AmbretteOrrisey
Dec 9 '18 at 22:48
$begingroup$
@AmbretteOrrisey: As long as it only for ordering, the square root doesn't matter because it is a strictly monotonous growing function, which means it is order-preserving. The square root only matters if you want to display something like a “controversality score” that for constant vote ratio is proportional to the number of votes. As of possible implementation bugs; the first thin I notice is that your formula as given doesn't work for $m=n$ (equal number of up- and downvotes), so that case would have to be special cased; forgetting or mishandling special cases is a common source of bugs.
$endgroup$
– celtschk
Dec 9 '18 at 22:54
$begingroup$
This would lead to some strange incentives - like if a post had many upvotes and no downvotes, you could give one downvote to hugely increase the total score.
$endgroup$
– Jair Taylor
Dec 9 '18 at 23:04
$begingroup$
@JairTaylor: A post that has no downvotes clearly is completely uncontroversial, don't you think? And if anyone wants to optimize the controversality rank, by the very definition of it a vote in minority direction would increase that rank more than a vote in majority direction, no matter which exact function you choose for ordering.
$endgroup$
– celtschk
Dec 9 '18 at 23:12
$begingroup$
@celtschk -- I admit it did slip from my mind that it's safe orderingwise not to take the square root, even over a two-variable function - obviously now you mention it. ¶ The zero i think wouldn't matter - depends how rudimentary the coding language is, whether you use the atn2 function as it's often called, whether the language 'accomodates' the division by zero with an infinity flag. ¶ And what was that someone's just said about possible pathological behaviours - part of the reason I suggested my rather complicated (but with a simple logic to it) formula is robustitude that way.
$endgroup$
– AmbretteOrrisey
Dec 9 '18 at 23:20
|
show 7 more comments
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3033116%2fcontroversial-ordering%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
I don't know what coders of web fora actually use, but I'd say the simplest formula would be to just use the product of up- and downvotes, or if linear scaling with the total number of votes is considered important, the geometric mean (that is, the square root of the product).
This is because for a given sum (that is, a given total number of votes), the product is maximal when the number of up- and downvotes are equal, and falls down to zero when one of them goes to zero (a post that has all its vote in one direction clearly is not controversial at all).
Moreover, the product has the advantage that it is simple, which means less chance of implementation bugs, and fast, which means you won't have it as performance bottleneck even for large numbers of posts.
If you want your rating not purely on how controversial it is, you can also use something like
$$m-n + csqrt{mn}$$
where $c$ tells how much being controversial should be weighted; c=0 would be ordering purely after score (that is, number of positive minus number of negative votes, like e.g. here on Stack Exchange), a large value for $c$ would mean that being highly controversial is the main sorting criterion.
$endgroup$
$begingroup$
Yes - mine is probably overly fussy, insisting that it be exactly proportional to the product of the magnitude of the 'vector' and the lesser of its angular departures from the axes. But as for implementation bugs, atn is so elementary a function, I'm not sure that would really be an issue. But then ... I suppose it just might be. I think you would need to take the square root though - as you said - the geometric mean, rather than just use the product, to keep a rudimentary quasiproportionality to the magnitude of the vector ¶ And of course, thanks for your contribution.
$endgroup$
– AmbretteOrrisey
Dec 9 '18 at 22:48
$begingroup$
@AmbretteOrrisey: As long as it only for ordering, the square root doesn't matter because it is a strictly monotonous growing function, which means it is order-preserving. The square root only matters if you want to display something like a “controversality score” that for constant vote ratio is proportional to the number of votes. As of possible implementation bugs; the first thin I notice is that your formula as given doesn't work for $m=n$ (equal number of up- and downvotes), so that case would have to be special cased; forgetting or mishandling special cases is a common source of bugs.
$endgroup$
– celtschk
Dec 9 '18 at 22:54
$begingroup$
This would lead to some strange incentives - like if a post had many upvotes and no downvotes, you could give one downvote to hugely increase the total score.
$endgroup$
– Jair Taylor
Dec 9 '18 at 23:04
$begingroup$
@JairTaylor: A post that has no downvotes clearly is completely uncontroversial, don't you think? And if anyone wants to optimize the controversality rank, by the very definition of it a vote in minority direction would increase that rank more than a vote in majority direction, no matter which exact function you choose for ordering.
$endgroup$
– celtschk
Dec 9 '18 at 23:12
$begingroup$
@celtschk -- I admit it did slip from my mind that it's safe orderingwise not to take the square root, even over a two-variable function - obviously now you mention it. ¶ The zero i think wouldn't matter - depends how rudimentary the coding language is, whether you use the atn2 function as it's often called, whether the language 'accomodates' the division by zero with an infinity flag. ¶ And what was that someone's just said about possible pathological behaviours - part of the reason I suggested my rather complicated (but with a simple logic to it) formula is robustitude that way.
$endgroup$
– AmbretteOrrisey
Dec 9 '18 at 23:20
|
show 7 more comments
$begingroup$
I don't know what coders of web fora actually use, but I'd say the simplest formula would be to just use the product of up- and downvotes, or if linear scaling with the total number of votes is considered important, the geometric mean (that is, the square root of the product).
This is because for a given sum (that is, a given total number of votes), the product is maximal when the number of up- and downvotes are equal, and falls down to zero when one of them goes to zero (a post that has all its vote in one direction clearly is not controversial at all).
Moreover, the product has the advantage that it is simple, which means less chance of implementation bugs, and fast, which means you won't have it as performance bottleneck even for large numbers of posts.
If you want your rating not purely on how controversial it is, you can also use something like
$$m-n + csqrt{mn}$$
where $c$ tells how much being controversial should be weighted; c=0 would be ordering purely after score (that is, number of positive minus number of negative votes, like e.g. here on Stack Exchange), a large value for $c$ would mean that being highly controversial is the main sorting criterion.
$endgroup$
$begingroup$
Yes - mine is probably overly fussy, insisting that it be exactly proportional to the product of the magnitude of the 'vector' and the lesser of its angular departures from the axes. But as for implementation bugs, atn is so elementary a function, I'm not sure that would really be an issue. But then ... I suppose it just might be. I think you would need to take the square root though - as you said - the geometric mean, rather than just use the product, to keep a rudimentary quasiproportionality to the magnitude of the vector ¶ And of course, thanks for your contribution.
$endgroup$
– AmbretteOrrisey
Dec 9 '18 at 22:48
$begingroup$
@AmbretteOrrisey: As long as it only for ordering, the square root doesn't matter because it is a strictly monotonous growing function, which means it is order-preserving. The square root only matters if you want to display something like a “controversality score” that for constant vote ratio is proportional to the number of votes. As of possible implementation bugs; the first thin I notice is that your formula as given doesn't work for $m=n$ (equal number of up- and downvotes), so that case would have to be special cased; forgetting or mishandling special cases is a common source of bugs.
$endgroup$
– celtschk
Dec 9 '18 at 22:54
$begingroup$
This would lead to some strange incentives - like if a post had many upvotes and no downvotes, you could give one downvote to hugely increase the total score.
$endgroup$
– Jair Taylor
Dec 9 '18 at 23:04
$begingroup$
@JairTaylor: A post that has no downvotes clearly is completely uncontroversial, don't you think? And if anyone wants to optimize the controversality rank, by the very definition of it a vote in minority direction would increase that rank more than a vote in majority direction, no matter which exact function you choose for ordering.
$endgroup$
– celtschk
Dec 9 '18 at 23:12
$begingroup$
@celtschk -- I admit it did slip from my mind that it's safe orderingwise not to take the square root, even over a two-variable function - obviously now you mention it. ¶ The zero i think wouldn't matter - depends how rudimentary the coding language is, whether you use the atn2 function as it's often called, whether the language 'accomodates' the division by zero with an infinity flag. ¶ And what was that someone's just said about possible pathological behaviours - part of the reason I suggested my rather complicated (but with a simple logic to it) formula is robustitude that way.
$endgroup$
– AmbretteOrrisey
Dec 9 '18 at 23:20
|
show 7 more comments
$begingroup$
I don't know what coders of web fora actually use, but I'd say the simplest formula would be to just use the product of up- and downvotes, or if linear scaling with the total number of votes is considered important, the geometric mean (that is, the square root of the product).
This is because for a given sum (that is, a given total number of votes), the product is maximal when the number of up- and downvotes are equal, and falls down to zero when one of them goes to zero (a post that has all its vote in one direction clearly is not controversial at all).
Moreover, the product has the advantage that it is simple, which means less chance of implementation bugs, and fast, which means you won't have it as performance bottleneck even for large numbers of posts.
If you want your rating not purely on how controversial it is, you can also use something like
$$m-n + csqrt{mn}$$
where $c$ tells how much being controversial should be weighted; c=0 would be ordering purely after score (that is, number of positive minus number of negative votes, like e.g. here on Stack Exchange), a large value for $c$ would mean that being highly controversial is the main sorting criterion.
$endgroup$
I don't know what coders of web fora actually use, but I'd say the simplest formula would be to just use the product of up- and downvotes, or if linear scaling with the total number of votes is considered important, the geometric mean (that is, the square root of the product).
This is because for a given sum (that is, a given total number of votes), the product is maximal when the number of up- and downvotes are equal, and falls down to zero when one of them goes to zero (a post that has all its vote in one direction clearly is not controversial at all).
Moreover, the product has the advantage that it is simple, which means less chance of implementation bugs, and fast, which means you won't have it as performance bottleneck even for large numbers of posts.
If you want your rating not purely on how controversial it is, you can also use something like
$$m-n + csqrt{mn}$$
where $c$ tells how much being controversial should be weighted; c=0 would be ordering purely after score (that is, number of positive minus number of negative votes, like e.g. here on Stack Exchange), a large value for $c$ would mean that being highly controversial is the main sorting criterion.
edited Dec 10 '18 at 0:04
answered Dec 9 '18 at 22:33
celtschkceltschk
30.1k755101
30.1k755101
$begingroup$
Yes - mine is probably overly fussy, insisting that it be exactly proportional to the product of the magnitude of the 'vector' and the lesser of its angular departures from the axes. But as for implementation bugs, atn is so elementary a function, I'm not sure that would really be an issue. But then ... I suppose it just might be. I think you would need to take the square root though - as you said - the geometric mean, rather than just use the product, to keep a rudimentary quasiproportionality to the magnitude of the vector ¶ And of course, thanks for your contribution.
$endgroup$
– AmbretteOrrisey
Dec 9 '18 at 22:48
$begingroup$
@AmbretteOrrisey: As long as it only for ordering, the square root doesn't matter because it is a strictly monotonous growing function, which means it is order-preserving. The square root only matters if you want to display something like a “controversality score” that for constant vote ratio is proportional to the number of votes. As of possible implementation bugs; the first thin I notice is that your formula as given doesn't work for $m=n$ (equal number of up- and downvotes), so that case would have to be special cased; forgetting or mishandling special cases is a common source of bugs.
$endgroup$
– celtschk
Dec 9 '18 at 22:54
$begingroup$
This would lead to some strange incentives - like if a post had many upvotes and no downvotes, you could give one downvote to hugely increase the total score.
$endgroup$
– Jair Taylor
Dec 9 '18 at 23:04
$begingroup$
@JairTaylor: A post that has no downvotes clearly is completely uncontroversial, don't you think? And if anyone wants to optimize the controversality rank, by the very definition of it a vote in minority direction would increase that rank more than a vote in majority direction, no matter which exact function you choose for ordering.
$endgroup$
– celtschk
Dec 9 '18 at 23:12
$begingroup$
@celtschk -- I admit it did slip from my mind that it's safe orderingwise not to take the square root, even over a two-variable function - obviously now you mention it. ¶ The zero i think wouldn't matter - depends how rudimentary the coding language is, whether you use the atn2 function as it's often called, whether the language 'accomodates' the division by zero with an infinity flag. ¶ And what was that someone's just said about possible pathological behaviours - part of the reason I suggested my rather complicated (but with a simple logic to it) formula is robustitude that way.
$endgroup$
– AmbretteOrrisey
Dec 9 '18 at 23:20
|
show 7 more comments
$begingroup$
Yes - mine is probably overly fussy, insisting that it be exactly proportional to the product of the magnitude of the 'vector' and the lesser of its angular departures from the axes. But as for implementation bugs, atn is so elementary a function, I'm not sure that would really be an issue. But then ... I suppose it just might be. I think you would need to take the square root though - as you said - the geometric mean, rather than just use the product, to keep a rudimentary quasiproportionality to the magnitude of the vector ¶ And of course, thanks for your contribution.
$endgroup$
– AmbretteOrrisey
Dec 9 '18 at 22:48
$begingroup$
@AmbretteOrrisey: As long as it only for ordering, the square root doesn't matter because it is a strictly monotonous growing function, which means it is order-preserving. The square root only matters if you want to display something like a “controversality score” that for constant vote ratio is proportional to the number of votes. As of possible implementation bugs; the first thin I notice is that your formula as given doesn't work for $m=n$ (equal number of up- and downvotes), so that case would have to be special cased; forgetting or mishandling special cases is a common source of bugs.
$endgroup$
– celtschk
Dec 9 '18 at 22:54
$begingroup$
This would lead to some strange incentives - like if a post had many upvotes and no downvotes, you could give one downvote to hugely increase the total score.
$endgroup$
– Jair Taylor
Dec 9 '18 at 23:04
$begingroup$
@JairTaylor: A post that has no downvotes clearly is completely uncontroversial, don't you think? And if anyone wants to optimize the controversality rank, by the very definition of it a vote in minority direction would increase that rank more than a vote in majority direction, no matter which exact function you choose for ordering.
$endgroup$
– celtschk
Dec 9 '18 at 23:12
$begingroup$
@celtschk -- I admit it did slip from my mind that it's safe orderingwise not to take the square root, even over a two-variable function - obviously now you mention it. ¶ The zero i think wouldn't matter - depends how rudimentary the coding language is, whether you use the atn2 function as it's often called, whether the language 'accomodates' the division by zero with an infinity flag. ¶ And what was that someone's just said about possible pathological behaviours - part of the reason I suggested my rather complicated (but with a simple logic to it) formula is robustitude that way.
$endgroup$
– AmbretteOrrisey
Dec 9 '18 at 23:20
$begingroup$
Yes - mine is probably overly fussy, insisting that it be exactly proportional to the product of the magnitude of the 'vector' and the lesser of its angular departures from the axes. But as for implementation bugs, atn is so elementary a function, I'm not sure that would really be an issue. But then ... I suppose it just might be. I think you would need to take the square root though - as you said - the geometric mean, rather than just use the product, to keep a rudimentary quasiproportionality to the magnitude of the vector ¶ And of course, thanks for your contribution.
$endgroup$
– AmbretteOrrisey
Dec 9 '18 at 22:48
$begingroup$
Yes - mine is probably overly fussy, insisting that it be exactly proportional to the product of the magnitude of the 'vector' and the lesser of its angular departures from the axes. But as for implementation bugs, atn is so elementary a function, I'm not sure that would really be an issue. But then ... I suppose it just might be. I think you would need to take the square root though - as you said - the geometric mean, rather than just use the product, to keep a rudimentary quasiproportionality to the magnitude of the vector ¶ And of course, thanks for your contribution.
$endgroup$
– AmbretteOrrisey
Dec 9 '18 at 22:48
$begingroup$
@AmbretteOrrisey: As long as it only for ordering, the square root doesn't matter because it is a strictly monotonous growing function, which means it is order-preserving. The square root only matters if you want to display something like a “controversality score” that for constant vote ratio is proportional to the number of votes. As of possible implementation bugs; the first thin I notice is that your formula as given doesn't work for $m=n$ (equal number of up- and downvotes), so that case would have to be special cased; forgetting or mishandling special cases is a common source of bugs.
$endgroup$
– celtschk
Dec 9 '18 at 22:54
$begingroup$
@AmbretteOrrisey: As long as it only for ordering, the square root doesn't matter because it is a strictly monotonous growing function, which means it is order-preserving. The square root only matters if you want to display something like a “controversality score” that for constant vote ratio is proportional to the number of votes. As of possible implementation bugs; the first thin I notice is that your formula as given doesn't work for $m=n$ (equal number of up- and downvotes), so that case would have to be special cased; forgetting or mishandling special cases is a common source of bugs.
$endgroup$
– celtschk
Dec 9 '18 at 22:54
$begingroup$
This would lead to some strange incentives - like if a post had many upvotes and no downvotes, you could give one downvote to hugely increase the total score.
$endgroup$
– Jair Taylor
Dec 9 '18 at 23:04
$begingroup$
This would lead to some strange incentives - like if a post had many upvotes and no downvotes, you could give one downvote to hugely increase the total score.
$endgroup$
– Jair Taylor
Dec 9 '18 at 23:04
$begingroup$
@JairTaylor: A post that has no downvotes clearly is completely uncontroversial, don't you think? And if anyone wants to optimize the controversality rank, by the very definition of it a vote in minority direction would increase that rank more than a vote in majority direction, no matter which exact function you choose for ordering.
$endgroup$
– celtschk
Dec 9 '18 at 23:12
$begingroup$
@JairTaylor: A post that has no downvotes clearly is completely uncontroversial, don't you think? And if anyone wants to optimize the controversality rank, by the very definition of it a vote in minority direction would increase that rank more than a vote in majority direction, no matter which exact function you choose for ordering.
$endgroup$
– celtschk
Dec 9 '18 at 23:12
$begingroup$
@celtschk -- I admit it did slip from my mind that it's safe orderingwise not to take the square root, even over a two-variable function - obviously now you mention it. ¶ The zero i think wouldn't matter - depends how rudimentary the coding language is, whether you use the atn2 function as it's often called, whether the language 'accomodates' the division by zero with an infinity flag. ¶ And what was that someone's just said about possible pathological behaviours - part of the reason I suggested my rather complicated (but with a simple logic to it) formula is robustitude that way.
$endgroup$
– AmbretteOrrisey
Dec 9 '18 at 23:20
$begingroup$
@celtschk -- I admit it did slip from my mind that it's safe orderingwise not to take the square root, even over a two-variable function - obviously now you mention it. ¶ The zero i think wouldn't matter - depends how rudimentary the coding language is, whether you use the atn2 function as it's often called, whether the language 'accomodates' the division by zero with an infinity flag. ¶ And what was that someone's just said about possible pathological behaviours - part of the reason I suggested my rather complicated (but with a simple logic to it) formula is robustitude that way.
$endgroup$
– AmbretteOrrisey
Dec 9 '18 at 23:20
|
show 7 more comments
Thanks for contributing an answer to Mathematics Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3033116%2fcontroversial-ordering%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown