-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow participants to prioritize statements #217
Comments
Also, does this dovetail with crowd moderation #120? |
This will be handled in 'importance', which is specified in another issue.
I will fetch the id...
…On Sun, May 3, 2020, 12:30 PM Patrick Connolly ***@***.***> wrote:
Also, does this dovetail with crowd moderation compdemocracy/polis#120
<https://github.com/pol-is/polis-issues/issues/26>?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<https://github.com/pol-is/polis-issues/issues/123#issuecomment-623137023>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AANQGGN7LFBPGCTYFQCMYCLRPWL3BANCNFSM4H6HRKUA>
.
|
Another idea for priority calculation would be to scale depending on whether a person uses more or less prioritization than other people, e.g. priority_ij = (totalParticipantVotes / totalStatements) * (averageUsesOfPrioritizationAmongAllUsers / totalUsesOfPrioritization) + 1 |
Delicious idea. I think we might be getting to a point where it might make sense to explicitely formulate a latent variable model, which could capture individual's personal use of prioritization and take it into account. Thinking alongside the lines of Blei 2014. These latent variable models range from low-rank matrix factorization (recommender-system style, a-la Netflix/Spotify, with a single matrix), to more elaborate membership models. The added advantage is that it lends itself nicely to add the clustering as part of the latent variables. And because it's Bayesian, there should be a way to do some online update of the posterior without having to recompute everything each time there's a new vote. It's a chunk of work to formalize it, but I'd be game to try. It should surface "naturally" the kind of formulas mentioned in the comments above, from the form of the posterior distributions corresponding to whichever structure we bake into the model. |
Do you need help @jucor ? Not my area but always good to look a bit further. I thought I mentioned it but apparently not here: in tensors, priority would be just another slice, next to the agree/disagree/pass slices. It's just another type of information really 🙂 , orthogonal to normal voting but combines nicely with everything. As as I said, not my area, but I wouldn't be surprised if it ended being very similar. So excited you're going to look into this! 😊 |
Thanks Giorgios! Always happy to geek out with others :) Agreed with you,
there should be deep connections between both approaches.
I need to put pen on paper to formalise a bit -- this week is the
conference of Fairness, Accountability, and Transparency, so I don't have
100% time available, but it keeps buzzing in my mind :)
Let me get back to you once I have the basic equations written down in
latex, then we can iterate.
|
No worries 🙂 If you plan to work in the open, feel free to drop some URL so that me and others can follow up. Otherwise let's sync down the road! 🙌 |
Happy to work in the open for a good part :) The more eyes, the shallower the problems! I would normally use Overleaf and Latex, but not sure how good they are for open view, nor how they match what's used by the pol.is community. Any suggestion of tool? Does pol.is have a preferred one that supports equations? @colinmegill ? |
@jucor I finally have an answer here :) DeepNote is really nice. |
Oh you do?? Answer as in:
|
The issue of prioritization of statements in Polis has long been considered but never implemented. This is a thread to discuss a possible implementation.
Goals:
group informed consensus
, de-prioritizing "the sky is blue" statements (all groups agree, but insignificant)statement prioritization
when showing statements to usersProposal:
agreeing
,disagreeing
orpassing
pass
[ ] this issue is high priority to me
Prioritization matrix
This creates a second
comments * participants
matrix, in addition to thevotes
matrix. The value of each value in the secondprioritization
matrix is, initially, a1
or a0
for 'given user did prioritize given comment'.Upon analysis, however, we might consider:
total statements
total votes
andtotal uses of prioritization
as a means of scaling each user's row in theprioritization
matrix. We would then variously apply penalties for overuse given ratios between the three values given some equation (which should be able to approach abs(-1) but never go below it, as the values in thevotes
matrix are 1 & -1 and priority should not be able to reduce their weight, only increase it - though we might consider whether we factorpasses
in to decrease the weight). We might consider:Naive:
priorityij = arbitraryScalingConstant / totalUsesOfPrioritization + 1
Perhaps better:
priorityij = (totalParticipantVotes / totalStatements) * (arbitraryScalingConstant / totalUsesOfPrioritization) + 1
Possible improvements:
totalParticipantVotes
tototalStatements
ratios such as if user has voted 3 times and there are 1000 statementstotalUsesOfPrioritization
is very low relative to thetotalParticipantVoteCount
, we might also find a way to upweight that, but perhaps we're already effectively doing that by watering down other casesOnce final values were computed, the
prioritization
matrix would then be used to multiply thevotes
matrix to surface statements various opinion clusters found significant.Special thanks to @DZNarayanan and @misscs
The text was updated successfully, but these errors were encountered: