1 Introduction
-
Firstly, all users participate to compute average ratings of items. Users encrypt their rating as well as flag information to hide which items are actually rated. Specifically, users encrypt all ratings including zeros and send the ciphertexts to the server. The server computes averages using homomorphic properties and all users jointly decrypt the results.
-
Secondly, to calculate the similarity among the items, all users locally perform certain computations and encrypt them. The server computes similarity among the items securely and allows all users to decrypt the results without revealing any private information.
-
Finally, based on average ratings, similarities and target user’s encrypted rating information, the “recommender server” computes recommendation scores homomorphically. The target user decrypts these ciphertexts using own private key and chooses highest recommended item from the results.
2 Preliminaries
2.1 Similarity Calculation
2.2 Recommendation Generation
E
| Encryption |
(A, B) | Ciphertexts |
r
| Random number |
G
| Cyclic group |
g
| Group generator |
y
| Individual public key |
Y
| Common public key |
x
| Individual secret key |
\(r_{i,j}\)
| Rating given by user u
i
on item i
j
|
\(R_j\)
| Average rating of item j
|
\(M^{(a)}\)
|
\(a\mathrm{th}\) message |
\(u_i\)
|
\(i\mathrm{th}\) user |
\(i_j\)
|
\(j\mathrm{th}\) item |
n
| Total number of users |
m
| Total number of items |
\(s(i_j,i_k)\)
| Similarity between item \(I_j\) and \(i_k\)
|
\(C_i\)
| Decryption |
\(d^i\)
| Results after discrete logarithm |
P
| Rating prediction |
e
| Modular exponentiation |
mul
| Multiplication |
l
| Size of the message |
\(f_{i,j}\)
| Flags of ratings \(r_{i,j}\)
|
2.2.1 CBF-Based Recommendations
2.2.2 CF-Based Recommendations
2.3 Homomorphic Encryption
3 Proposed Privacy-Preserving Recommender System
Users/items |
\(i_1\)
|
\(i_2\)
|
\(\ldots \)
|
\(\ldots \)
|
\(\ldots \)
|
\(\ldots \)
|
\(i_m\)
|
---|---|---|---|---|---|---|---|
\(u_1\)
|
\(r_{1,1}\)
|
\(\ldots \)
|
\(r_{1,j}\)
|
\(\ldots \)
|
\(r_{1,k}\)
|
\(\ldots \)
|
\(r_{1,m}\)
|
\(u_2\)
|
\(r_{2,1}\)
|
\(\ldots \)
|
\(r_{2,j}\)
|
\(\ldots \)
|
\(r_{2,k}\)
|
\(\ldots \)
|
\(r_{2,m}\)
|
\(\vdots \)
|
\(\vdots \)
|
\(\vdots \)
|
\(\vdots \)
|
\(\vdots \)
|
\(\vdots \)
|
\(\vdots \)
|
\(\vdots \)
|
\(u_i\)
|
\(r_{i,1}\)
|
\(\ldots \)
|
\(r_{i,j}\)
|
\(\ldots \)
|
\(r_{i,k}\)
|
\(\ldots \)
|
\(r_{i,m}\)
|
\(\vdots \)
|
\(\vdots \)
|
\(\vdots \)
|
\(\vdots \)
|
\(\vdots \)
|
\(\vdots \)
|
\(\vdots \)
|
\(\vdots \)
|
\(u_n\)
|
\(r_{n,1}\)
|
\(\ldots \)
|
\(r_{n,j}\)
|
\(\ldots \)
|
\(r_{n,k}\)
|
\(\ldots \)
|
\(r_{n,m}\)
|
3.1 Privacy-Preserving Average and Similarity Computations
3.1.1 Average Computation
3.1.2 Similarity Computation
3.2 Proposed Privacy-Preserving Recommendation Generation
3.2.1 Privacy-Preserving CBF-Based Recommendations
3.2.2 Privacy-Preserving CF-Based Recommendations
3.3 Numerical Examples of Proposed Method
\(u_i/i_j\)
|
\(i_1\)
|
\(i_2\)
|
\(i_3\)
|
\(i_4\)
|
---|---|---|---|---|
\(u_1\)
| 3 | 5 | 0 | 4 |
\(u_2\)
| 0 | 1 | 5 | 0 |
\(u_3\)
| 2 | 3 | 2 | 4 |
\(R_j\)
| 2.5 | 3 | 3.5 | 4 |
3.3.1 Average Computation
3.3.2 Similarity Calculation
\(i_1\)
|
\(i_2\)
|
\(i_3\)
|
\(i_4\)
| |
---|---|---|---|---|
\(i_1\)
| 100 | 99 | 20 | 98 |
\(i_2\)
| 100 | 35 | 95 | |
\(i_3\)
| 100 | 26 | ||
\(i_4\)
| 100 |
3.3.3 Recommendation Generation
4 Security Discussion
5 Performance Evaluation
5.1 Theoretical Analysis
5.2 Performance Analysis
Computations | Computation cost | Communication cost | ||
---|---|---|---|---|
User | Server | User | Server | |
Average | 4m (e) |
\(2{\text m}(\text {n}-1)\ (mul)\)
| 6m(l) bits | 6mn (l) bits |
Similarity |
\(3\left( \frac{m(m-1)}{2}+m\right) (e)\)
|
\({\frac{m(m-1)}{2}}(n-1)(mul)+m(n-1)(mul)\)
|
\(3\left( \frac{m(m-1)}{2}+m\right) (l)\) bits |
\(3n\left( \frac{m(m-1)}{2}+m\right) (l)\) bits |
CBF-based recommendation |
\((2m+2)(e)\)
|
\(2((m-1)(mul)+(e))\)
|
\(2(m+2)(l)\) bits |
\(2(m+2)(l)\) bits |
CF-based recommendation | 2m(e) |
\(6(e)+m(mul)\)
|
\(2(m+2)(l)\) bits |
\(2(m+2)(l)\) bits |
Computations | Computation cost | Communication cost | ||
---|---|---|---|---|
User (s) | Server (s) | User (Mb) | Server (Mb) | |
Average | 0.6 | 2.14 | 0.15 | 144.84 |
Similarity | 45.2 | 107.92 | 7.7 | 7.27 \(\times \) \(10^3\)
|
CBF-based recommendation | 0.3 | 0.001 | 0.05 | 0.05 |
CF-based recommendation | 0.3 | 0.005 | 0.05 | 0.05 |