Reciprocal Score Voting

From electowiki

Score voting and other cardinal systems are susceptible to the chicken dilemma and other situations which occurs when similar groups penalize one another by not cooperating. Reciprocal Score Voting is an unusual attempt to address this lack of cooperation by explicitly and safely rewarding it.

Premise

Yee diagrams for Reciprocal Score Voting, showing non-monotonicity and small amounts of center squeeze.

The idea is to tie how much support a faction's preferred candidate receives from other factions by how much that candidate's faction has supported those other factions. In other words, support must be given to be received, encouraging reciprocation, hence the name.

To do this, voters are split into factions and ballots of each faction are used to rate other factions. These mutual factional ratings are then used to adjust each voter's ballots, so that between any two factions their average rating is equal. For example, if faction A rates faction B an 8, but B rates A a 5, the scores given by voters in faction A will be adjusted so that the mean rating of faction A towards B is also 5 instead of the original 8.

In other words, support is capped by the lowest amount of reciprocation. This way, all factions are encouraged to mutually give higher ratings to one another, while striking a balance in not supporting too much.

Method description

Each ballot is assigned to one or more factions, based on the top rated candidates in that ballot. Then the ballots of each faction are used to run mini score voting elections, the results of which represent how well each faction rates every other faction.

Let Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle B^{v|\phi}_j} be the ballot rating of the Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle v} -th voter towards candidate Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle j} , where Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \phi} is the set of factions assigned to that voter. This means Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle B^{v|\phi}_j > B^{v|\phi}_k} for all Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle j \in \phi, k \notin \phi} .

Define Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle F_{i \to j}} be the mean rating given by faction Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle i} to faction Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle j} , and also that Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle F_{i \to \phi} = \frac{1}{|\phi|} \sum_{j \in \phi} F_{i \to j}} , that is, the mean of the rating given to all members of that set of factions, and similarly for Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle F_{\phi \to j}} . Note that Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle F_{i \to j}} may be regarded as a square matrix, and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle F_{i \to \phi}} and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle F_{\phi \to i}} the mean between the columns and rows (respectively) corresponding to the factions in Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \phi} .

With these established, Reciprocal Score Voting proceeds by re-weighting and aggregating the ballot ratings according to the rule:

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle B^{v|\phi}_j \mapsto B^{v|\phi}_j \min\left( \frac{ F_{j \to \phi} }{ F_{\phi \to j} } , 1 \right)} ,

that is, factions only give support to factions they received support from, and in proportion to that support up to a maximum. Note the case of Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle F_{\phi \to j} = 0} only occurs when all Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle B^{v|\phi}_j = 0} , in which case no reweighing is necessary.

Only when factions agree on their mutual ratings and perfectly reciprocate is that their reciprocity ratio Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle R(j,\phi) = F_{j \to \phi} / F_{\phi \to j} = 1} , in which case votes are left unchanged. In every other situation the side which reciprocated less gets penalized, receiving less support from whatever faction they failed to reciprocate with.

Analysis

In the case of any asymmetry in support, the reciprocity ratio is Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle R(j,\phi) < 0} for the faction which did not cooperate, and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle R(j,\phi) = 1} for the faction that did cooperate. Therefore, not cooperating penalizes the side which did not cooperate more. In this way, factions are encouraged to cooperate as much as possible to maximize mutual support, forcing them to strike a balance between supporting their favorite as well as supporting alternatives as much as they can. In the case of opposing factions, the mutual lack of cooperation has no effect.

This system is non-monotonic and suffers from a very unusual "reverse spoiler effect" (see "chicken dilemma" below), in which a larger faction may lose an election by not supporting smaller supportive factions. Therefore, larger factions are encouraged to promote smaller factions as much as possible in order to win.

The Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \min(\cdot, 1)} condition above is required so that support is never amplified by asymmetry. This is also necessary so that a smaller faction cannot parasite on the support of a larger faction, which will never rate the smaller faction above its own. A smaller faction artificially rating a larger faction too highly will only receive exactly as much support as the larger faction is willing to give to it.

Chicken dilemma

Unusually for cardinal systems, this system handles the Chicken dilemma reasonably well. Suppose a three-candidate (ABC) election, with 0-10 ballots as follows:

Faction % A B C
A m r 10 b 0
B m (1 - r) a 10 0
C (1 - m) 0 0 10

Here, m is the fraction of voters in the A+B faction, and r the fraction of A+B voters in the A subfaction. a and b represent the scores given to A and B by B and A, respectively. The total scores are:

A = m (r 10 + (1 - r) a)
B = m (r b + (1 - r) 10)
C = (1 - m) 10

If m > 0.5, A+B is a mutual majority. Either A or B can easily win over A provided there is enough mutual support. The goal then is to ensure they mutually support one another. (For example, if m = 52%, a modest majority, they may rate one another as low as 7 and one of them still win. Bigger majorities require even lower ratings.)

Without loss of generality (due to symmetry), we can assume the faction A is larger than B (r ≥ 0.5). In this simplified scenario the faction ratings are simple to see: they can be read straight from the ballots (the table above).

The reciprocity ratios between A and B are then simply Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle R(A,B) = a/b} and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle R(B,A) = b/a} . The ballots are thus adjusted to:

Faction % A B C
A m r 10 b min(1, a/b) 0
B m (1 - r) a min(1, b/a) 10 0
C (1 - m) 0 0 10

Giving total adjusted scores:

A = m (r 10 + (1 - r) a min(1, b/a))
B = m (r b min(1, a/b) + (1 - r) 10)
C = (1 - m) 10

If faction B defects entirely by giving a = 0, the ratings become:

A = m (r 10 + 0)
B = m (0 + (1 - r) 10)
C = (1 - m) 10

Such that B ceases to get any support from A. Thus, there is no incentive for B to defect, and they have an incentive to rate A highly. Even more curiously, suppose r = 3/4 such that A is a much larger subfaction than B. In most voting systems, such as Instant Runoff Voting, A would be safe not supporting B, but this is not the case under Reciprocal Score Voting. If A defects with b = 0, the exact same results as if B defected occur! Therefore, even if A has an advantage over B, it it still in their best interest to support the minor faction as much as possible. This is akin to a "reverse spoiler effect", in which the larger mainstream party spoils the election by not supporting the smaller third party.

A "soft defection" (giving a low non-zero rating) would produce similar penalties accordingly, with a greater penalty for lower scores.

Since the incentive for betrayal is eliminated, but the rewards for collaborating are preserved, Reciprocal Score Voting minimizes concerns with Chicken Dilemma scenarios. Thus in any sufficiently large mutual majority scenario, the likelihood of either A or B winning will be very large (although not guaranteed due to the non-ranked nature of the system).

Variants

After the adjusted score ballots are computed, one can additionally implement any variant of score voting. For example, Reciprocal STAR Voting would have the top-two rated RSV candidates in an automatic runoff, and the most preferred candidate wins (preferably using the original ballots, not the adjusted ones).

If one chooses to use the adjusted ballots in the automatic runoff it is possible that factional betrayal reverses the preference of a voter, which could be problematic. For example: a voter rates (A=10 B=8 C=5 D=0), and BC are the top two under RSV. If B did not reciprocate with A and this voter's score is adjusted to B=4, this voter's runoff vote would go towards C, not B. While this could also be interpreted as a form of retaliation in the spirit of RSV, it is harder to justify as it does not directly encourage any particular positive behavior (like reciprocation).

Implementation

The following Mathematica code takes a list of score ballots and returns the Reciprocal Score Voting mean score.

RSV[ballots_] := Module[{i, factionmask, factionratings, nc, nv, fr},
   {nv, nc} = Dimensions[ballots];
   factionmask = KroneckerDelta /@ (# - Max[#]) & /@ ballots;
   factionratings = Mean /@ Table[
      fr = 
       Select[ballots, (KroneckerDelta /@ (# - Max[#]))[[i]] == 1 &];
      If[Length[fr] == 0, {ConstantArray[0, nc]}, fr],
      {i, 1, nc}
      ];
   Mean@Table[
     fif = 
      Mean@(Transpose@factionratings)[[Flatten@
          Position[factionmask[[i]], 1]]];(* i\[Rule]\[Phi] *)
     ffi = 
      Mean@factionratings[[Flatten@
          Position[factionmask[[i]], 1]]];(* \[Phi]\[Rule]i *)
     ballots[[i]] (Min[1, #[[1]]/If[#[[2]] == 0, 1, #[[2]]]] & /@ 
        Thread[{fif, ffi}]),
     {i, 1, nv}
     ]
   ];

See also