mind
mind copied to clipboard
Inviting people to participate in discussion and voting
One idea behind the project is to try to optimize attention people need to spend on participation.
The idea would be to try to make it so that system would help you be notified of things you want to be notified on. You can always override this and be notification about everything (or nothing), but you can also be notified in a "smart" way.
Some ideas for that:
- measure how much people talk on the portal and invite those who have not yet talked, but have talked and participated in the past on similar topics (also using what they read, not just where they activelly participating by writing: #48)
- same for voting, invite those who didn't vote yet (this might leak information on who voted and who didn't, but this is less sensitive)
- we could also see on which topics people have strong opinions and invite based on that (that might leak some information about votes themselves though)
- use a measurement how contentious an issue is and start inviting more and more people (even if they are less interested in some subject)
- we could use information about delegated votes to see how much delegated votes agree and if it is split, we invite the person to vote themselves
- we could simply do a random sample from all population and ask/require them to vote
This would not introduce a filter bubble in my opinion because users would still be able to see everything if they want, and train our system on new topics. Moreover, if something is contentions, our system would start inviting more and more people. It is just that if they want a quick look they can get a quick look based on what they found important in the past.
Another idea is to compute PageRank on the delegation network and see how much trust different members have in the community and then choose a random sample to invite to vote based on that distribution (so members with more trust are more likely to be chosen).
For the random sample idea, there are more approaches.
One is that we invite members to vote during normal voting phase. When voting is opened, we compute the minimal number of votes necessary to reach wanted confidence and randomly pick that number of users and notify them to vote. In a particular community that might even be a required vote. Or we also really encourage that through notification, like "you have been selected to vote and if you vote we can close this voting quickly and you will not have to vote in next one month". Anyway, as they (and others) vote, we can compute number of necessary votes and if it is increasing we can invite more random users. Eventually confidence is reached, which includes the randomly selected users.
Another approach is that after a confidence is reached, to check the result, we can at that time do a random sample of whole population and invite members to vote them (those who might not voted already) and see if that random sample confirms the result from before. This is a bit strange through, because it is unclear what happens if it does not confirm the result. And also, it requires potentially a lot of extra voters (whatever the verification random sample size is). And the question, why we would not just randomly invite from the very beginning and this is it? Why having the first set of users even vote?
A third approach is that we do a kind of audit at the end, using incremental auditing process where are picking one by one random users and see how they voted, or if they have not done so, invite them to vote, and through that process see if the result of such random auditing process matches expected result from before.
And interesting aspect of this third approach is that it can also verify in some way that the result which has been made before matches the one done by fully informed users (those users who would vote during the audit have all the information available, which was otherwise maybe being gradually available during voting phase).
It has become clearer to me that at some point in the decision-making pipeline we need to do formal random sampling to validate any statistical decisions, as a final check to ensure "no action" is always preferred over "wrong action".
Statistical quorum (in conjunction w/ some of the aforementioned strategies) will be a way to formulate a "hypothesis" on the result of a motion, and an additional validation step can be used to further bolster that hypothesis (see dynamic statistical quorum validation phase*, or in the simplest form just force a vote to maintain quorum for X days), but at the end of the day to confirm the result, we should use something like ClipAudit/RSVoting. In other words, sample a "jury" from the entire population and develop an incentive/punishment that forces their participation to confirm all decisions (a la jury duty). This will serve as the holy grail integrity check, but it is not ideal to base a system around having individuals legally bound to vote if called upon.
Part of the burden of the auditing process can be lifted when we randomly sample voters and choose someone who has already voted. But perhaps we should require all sampled individuals to submit a new vote, post-quorum, no matter if they originally voted or not. This new vote guarantees that all the information has been presented before confirmation, and so mitigates the effects of uninformed votes.
I think that allocating a portion of the community's fixed/limited attention to this is necessary, but to minimize the cost of this final check, we can adopt BRAVO theory (by P. Stark) which (I think) exploits knowledge of the unofficial margin of the vote to require fewer samples to confirm the decision as compared to using RS Voting from the start.
*See #178.
I think an important thing for us is to decide how much we want the system to make decisions, and how much users. I think that for now we can have an imperfect way to compute a signal to users (statistical quorum) which then they can decide how to use and when. I do not think it has to be perfect initially, to inform users how to direct their attention. Then, to make a strict cut-off point, for that we have to implement checks, but even that can be maybe done better through some other means. Like notifications. I still think that even imperfect computation where you for example notify all users that something will pass in a day if no action is done by them (no vote against) is much better approach than trying to perfectly model users. If somebody was trying to trick the system, few people will vote against and lower the quorum and prolong the whole thing.