Toggle menu
122
332
11
3.4K
Information Rating System Wiki
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Privacy enhancing straight average algorithm

From Information Rating System Wiki

Main article: A simple averaging technique to supplement the Bayes equation

The straight average algorithm discussed previously was modified to obscure trust information as it works up the tree, thus enhancing privacy. The previous algorithm communicated all trust-modified probabilities up to the head node, where the average would be calculated. This could potentially lead to reverse engineering the trust information associated with those probabilities.

The new algorithm only communicates the sum of the probabilities at each node along with the population that the sum represents. Thus every time a node performs an average of its own and its children’s probabilities, it records the sum of the probabilities (numerator) in the average calculation and the population (denominator). It then sends this sum and population on as intermediate_results to its parent node. The parent can now compute its own average by combining these results with its own probability and its other children’s numerator sum and population information.

A simple example shows how this works. Let’s start with the tree diagram we used earlier for the averaging algorithm and focus on just Nodes 1,3,4.

First the trust modified probabilities are found, noting that no modification is needed for Node 1 because it trusts itself:

The average is clearly:

The intermediate_results information passed on to Node 0 is then [1.77, 3], the numerator and denominator of the average. In the attached snippet it is called straight_average_intermediate_privacy. The snippet will run an example, which is just a repeat of the previous (less private) averaging algorithm, to verify that it is giving the correct result:

straight_average_intermediate_privacy -- TEST1
output134 =  [0.59, 0.41]
inter_results134 =  [[1.7699999999999998, 1.23], 3]
output256 =  [0.71, 0.29]
inter_results256 =  [[2.13, 0.8699999999999999], 3]
output012 =  [0.6157142857142858, 0.38428571428571423]
inter_results012 =  [[4.3100000000000005, 2.6899999999999995], 7.0]

Here the inter_results134 show the same result as calculated above. The 1.23 in the results is simply the same calculation for the 2nd probability in the predicate distribution (1-P). The output012 is the same overall result as shown previously.

The functions associated with this algorithm have the suffix _privacy. Since they are relatively simple, and the algorithm has been discussed before, we will skip a detailed look at how they work. Inspection of the snippet should reveal what it is doing. This algorithm required no new changes to the algorithms.py interface.