In this article, I want to give a short review on the development of proportional representation algorithms in the software LiquidFeedback.
LiquidFeedback was created in Autumn 2009 when the first beta version of the backend (October 27, 2009) and the first alpha version of the frontend (November 18, 2009) were published. Starting with the very first draft of the software, the inventors' goal (our goal) was to create a decision-making process that does not require a request-commission or a moderator with special privileges.
The first approach to design such a “moderator-less” process was to grant every participant in the system (i. e. every eligible voter) the right to propose motions and to create counter-proposals to existing motions. These motions and counter-proposals (called “initiatives” in LiquidFeedback), would need to pass a predefined quota of supporters (i. e. supporting votes) in order to become eligible for the final voting procedure. Assuming the number of proposals is small enough, then any group including minorities of any size and even individuals have the chance to promote their positions and gain a majority for their point of view in the final voting. However, if the system is flooded with a lot of proposals (with either good cause or malicious intent), then this statement doesn't hold anymore.
In December 2009, when the first beta version of the frontend was published, a contingent system was introduced in order to deal with the issue of flooding. The contingent system would limit each participant in regard of the number of proposals that he or she may post within a given time frame. Multiple time frames with different limits could be specified such that, for example, participants could be throttled down to posting one initiative per day if they posted more than 30 initiatives within the last 7 days.
While this approach worked quite well in practice for installations with a few thousand participants where not every participant was engaging in a discussion on every issue, it is obvious that this approach doesn't scale up indefinitely; if the number of participants grows, then a minority of a given fraction (e. g. 5%) may organize in such way that their ability to flood the system grows in a linear fashion in regard to the increase of population.
In the following table, we want to show a 5% minority's ability to post initiatives, if every participant is limited to create one initiative per day.
Obviously, in a system where already a minority of 5% might post 5000 initiatives per day, it can't be guaranteed that participants are able to browse through all initiatives that have been posted in the system. We must assume that users of the system will only read a certain amount of initiatives. The ordering of initiatives will determine which initiatives may gain attention and which initiatives won't gain attention. To maintain usability, early versions of LiquidFeedback sorted all initiatives that are competing with each other based on their supporter count (or “potential supporter” count in admission, discussion, and verification phase, see [PLF]). Thus, initiatives created and supported by a 1% minority, for example, never cause initiatives that are supported by a greater group of people to gain a bad display position when displaying a group of competing initiatives:
This approach, however, has a major shortcoming: As it needs to be possible for every participant to support multiple competing initiatives at the same time (for the reasons given in [PLF]), minorities of a smaller size would not be protected from noisy minorities with a bigger size. For example: Proposals supported by a minority consisting of 41% of the participants may “bury” proposals that are being supported by a minority of only 38%:
This shortcoming doesn't necessarily arise in real-world scenarios where an administrator might still block users who flood the system obviously with malicious intent. However, it may be difficult to judge whether a number of proposals is legitimate or malicious flooding and requires in either case a judgment of an administrator or a jury with special privileges, hence violating the principle of a “moderator-less” process.
Starting with LiquidFeedback version 2.2.0 (published on March 10, 2013) this shortcoming was addressed by introducing the so-called Harmonic Weighting algorithm to sort competing initiatives.
The Harmonic Weighting algorithm ensures that within an issue (i. e. within a group of competing initiatives) every group of participants that support a set of initiatives gains a display position that corresponds to the size of their group. More specifically: A group exceeding a size of P / (1+N), where P is the total number of participants supporting any initiative within the issue, will have one of their supported initiatives placed amongst the first N positions, as long as all members of the group support the same set of initiatives. This behavior is achieved by sorting all initiatives in the issue using the following algorithm:
This algorithm will not only allow groups of size P / (1+N) to place one initiative amongst the first N positions if they support the same set of initiatives, but it allows any group of size P · M / (1+N) to place M initiatives of a set S amongst the first N positions, if all members of the group support all initiatives in that set (S), and no member of the group supports an initiative outside the set which gains a display position amongst the first N positions. In other words: If parts of a minority support an initiative that doesn't have a chance to be displayed amongst the first N positions, then this support doesn't affect the minority's ability to promote their commonly supported initiatives within the first N positions.
For a short outline of a proof, see [PLF].
In LiquidFeedback, a group of competing initiatives is called an “issue”. Using the Harmonic Weighting algorithm, it is ensured that minorities will gain a fair display position within a single issue. Initiatives, however, are not the only text contribution that participants may create: it is also possible to write suggestions to existing initiatives. At first it seems attractive to extend the application of the Harmonic Weighting algorithm to also sort suggestions. But there are two reasons why the Harmonic Weighting algorithm is unsuitable to sort suggestions:
1. The Harmonic Weighting only considers one kind of support while it is possible to rank suggestions in different ways (e. g. “must be implemented” vs. “should be implemented”, see [PLF]). Thus, some participants consider the implementation of certain suggestions more important than the implementation of certain other suggestions. We should expect our sorting algorithm to take the voters' priorities into account; the Harmonic Weighting algorithm, however, only distinguishes between supporting and not supporting, and doesn't respect individual preferences.
2. Using Harmonic Weighting, supporting an initiative which is supported by a huge number of participants still reduces your voting weight given to other initiatives that are also supported by you; e. g. supporting a commonly supported initiative (which is supported by almost every participant and thus gains the first display position) will reduce your voting weight up to 50% (e. g. a weight of 1/2 instead of 1) regarding other initiatives that you also support. In case of initiatives, this behavior is intended: participants who gain a good display position with one of their supported initiatives get less voting weight for their other supported initiatives to increase other people's ability to be represented as well. In case of suggestions, however, this behavior is to be considered harmful. To name an example: If there is a suggestion to fix a comma mistake that is commonly considered as something that should be fixed, then ranking that suggestion as important could reduce your ability to give other suggestions a proper display position if Harmonic Weighting was used. Because of that, people might abstain from ranking important suggestions when they feel that enough other people would rank them. While this behavior can grant individuals an unfair personal advantage, it may backfire when too many people behave like that. In context of Single Transferable Voting, this is also referred to as the problem of Hylland Free Riding, see [Hylland, p.150–151] and [Schulze2]. People who successfully apply free riding techniques may gain an unfair advantage over other participants. While no proportional representation system can address the problem of Hylland free riding completely, the Harmonic Weighting algorithm is particularly vulnerable to it since it doesn't transfer any excessive voting weight to other initiatives at all.
For these two reasons, another algorithm named “Proportional Runoff” was incorporated into LiquidFeedback on March 18, 2013 (backend version 2.2.1 and frontend version 2.2.1). While, for good reasons, the Harmonic Weighting algorithm is still used to sort the (competing) initiatives within an issue, Proportional Runoff is used to sort the (potentially complementary) suggestions for an initiative.
The algorithm works as follows:
For each participant, a virtual “ballot” is created that indicates which suggestions are most important (or important, less important, etc.) for the participant, depending on his personal rating of the suggestion. The “ballot” thus contains preference sections, where all suggestions in the first preference section are more important than those in the next preference section, and so on. Each preference section of such “ballot” may contain more than one suggestion, in which case the suggestions in that preference section are considered to have the same priority for the voter. (For details, refer to [PLF].)
Those ballots just serve the purpose of being used for the calculation explained below and must not be confused with ballots for actually voting on an issue. In the following description of the algorithm, we will refer to the suggestions as “candidates”. We proceed as follows:
The main difference between the Harmonic Weighting and the Proportional Runoff algorithm is that in every round the Harmonic Weighting divides one's voting weight equally amongst all supported non-placed initiatives independently of the other voter's choices, while in Proportional Runoff the distribution of voting weight in one round is dependent of the other voter's choices: If one suggestion or issue receives a lot of voting weight by other voters, then the Proportional Runoff Algorithm causes excessive voting weight to be transferred to other suggestions/issues (just like in “Single Transferable Vote” systems excessive voting weight is transferred to other candidates).
It should be noted that Proportional Runoff, like any other proportional voting algorithm, can't address the problem of Hylland free riding completely. While other algorithms have been proposed that are more resistant to this form of free riding (e. g. Schulze Proportional Ranking, see [Schulze2]), Proportional Runoff has been chosen for LiquidFeedback in order to keep computational complexity low.
While at this point of development (March 2013), the Proportional Runoff algorithm covered sorting suggestions to initiatives, and the Harmonic Weighting algorithm covered sorting initiatives in an issue, one problem was still unsolved: How to sort multiple issues within the system, such that minorities also gain proportional representation in a list of issues that do not compete but possibly complement each other?
Before we can answer this question, we shall have a more detailed look on the hierarchy regarding subject areas, issues, and initiatives within LiquidFeedback, as well as a look at the phases which an issue (i. e. a group of competing initiatives passes through). LiquidFeedback's hierarchy regarding organizational units, subject areas, issues, initiatives, and suggestions is structured as follows:
The organizational units are organized as tree, and each organizational unit may have several subject areas. In each subject area there may be multiple groups of initiatives, of which each initiative competes with all other initiatives in that group. Finally, each initiative can have multiple suggestions attached to it. Each issue (i. e. each group of competing initiatives) passes the following 4 phases:
The second supporter quorum was discussed already in the beginning of this article: it's that supporter quorum which an initiative needs to pass in order to be eligible for final voting.
The first supporter quorum, in contrast, is only required to be passed by one initiative within an issue, in order to let the issue proceed to discussion phase and to be potentially voted upon (if the second supporter quorum is passed by at least one initiative later).
LiquidFeedback 2.2.x sorts all issues within a subject area by their remaining time in the current phase. Even if the ordering is not done by a proportional representation algorithm, every minority has still a proportional representation within each issue (due to application of Harmonic Weighting).
We consider every issue that has passed the first supporter quorum to be of general interest as there is a realistic chance that this issue will reach final voting procedures. Participants who think that the issue is biased or may contain initiatives that are to be considered harmful need to post counter-proposals with different point of views. LiquidFeedback 3.0 thus keeps sorting these issues based on their remaining time in the current phase.
Issues that have not yet passed the first supporter quorum, however, are not of general interest. Assuming the participation system is used by a huge number of participants (e. g. 100,000 or 1,000,000 people), there might be a huge number of issues in admission phase that wait to gain enough supporter votes in order to proceed to discussion phase. If we want to grant minorities a fair chance to promote their positions, then we need to sort these issues in admission phase in such way that display positions are assigned in a proportional manner.
The backend of LiquidFeedback 3.0 (backend published on January 31, 2014) thus also applies the Proportional Runoff algorithm to those issues in a subject area that are in admission phase. More details on the application of the Proportional Runoff algorithm can be found in our book, The Principles of LiquidFeedback, see [PLF].
Assuming every minority that wants to maliciously flood the system with proposals is small enough to fail the first supporter quorum, LiquidFeedback 3.0 would not need the contingent system (flood limit) anymore. Depending on the kind of organization and the people involved, this assumption, however, may be wrong. LiquidFeedback 3.0 will thus still retain the flood limit mechanism for two reasons:
1. to avoid that minorities which exceed a certain size (the first supporter quorum) can flood the system without limitation,
2. to prevent a system overload due to a (potentially) unlimited number of issues, initiatives, and suggestions.
In theory, this still limits the scalability of LiquidFeedback as previously explained: if the number of participants doubles, then, in the worst case, each participant dealing with a particular subject area may have to browse through the double amount of proposals. While we are not aware of any practical example where this theoretical problem has been an issue, future versions of LiquidFeedback may be improved to close this loophole.
One possible approach to fix this loophole is to not limit the number of proposals that are posted by each participant, but instead to limit the number of proposals that are allowed to proceed from admission phase to discussion phase for each subject area within a given time frame. In regard of the issues that are allowed to proceed, the limitation mechanism would need to provide a proportional representation of the participants. The development of such an algorithm may be interesting for future versions of LiquidFeedback and other electronic participation systems.