5

I am studying a problem related to trust propagation / rating in a network. Users rate each other either negatively or positively. From this I want to compute an overall rating vector $\boldsymbol{r} \in [0, 1]^n$. I want user $a$'s rating of user $b$ to be weighted by $a$'s overall rating. I wrote about this here, but this question will be self-contained.

Problem setup.

I have binary matrix $P$ consisting of positive ratings and a matrix $N$ of negative ratings.

\begin{align*} P_{ij} &= \begin{cases} 1 & \text{if person } i \text{ is rated positively by person } j \\ 0 & \text{otherwise} \end{cases} \\ N_{ij} &= \begin{cases} 1 & \text{if person } i \text{ is rated negatively by person } j \\ 0 & \text{otherwise} \end{cases} \end{align*} With two additional constraints: (1) $P_{ii} = N_{ii} = 0$ (users cannot rate themselves) and (2) $P_{ij} \cdot N_{ij} = 0$ (user $j$ cannot rate user $i$ both positively and negatively).

One simple way to aggregate ratings to to sum them to produce a ratio. Since if someone with few ratings might end up with a total rating of $0$ or $1$, I employ the rule of succession to regularize a bit by adding two dummy ratings: one positive and one negative.

\begin{align*} \boldsymbol{r} &= \frac{\boldsymbol{1} + P \boldsymbol{1}}{\boldsymbol{2} + P \boldsymbol{1} + N \boldsymbol{1}} \end{align*} In this equation, division is element-wise and $\boldsymbol{1}$ is a vector of ones and $\boldsymbol{2}$ is a vector of twos. However, I want to weight each user by their overall rating, so my final model becomes:

\begin{align*} \boldsymbol{r} &= \frac{\boldsymbol{1} + P \boldsymbol{r}}{\boldsymbol{2} + P \boldsymbol{r} + N \boldsymbol{r}} \end{align*}

This is the equation that I want to solve for $\boldsymbol{r}$.

Question.

Experimentally I observe that if I iterate

\begin{align*} g(\boldsymbol{r}) = \boldsymbol{r}_{k+1} &= \frac{\boldsymbol{1} + P \boldsymbol{r}_{k}}{\boldsymbol{2} + P \boldsymbol{r}_{k} + N \boldsymbol{r}_{k}} \end{align*}

then the fixed-point iteration seemingly always converges. Furthermore, if I start at two different starting points, then experimentally it always converges to the same value of $\boldsymbol{r}$. I have tested this on millions of random problem instances.

Is there any way to prove that the fixed point is unique?

What I have tried.

I tried applying the Banach fixed-point theorem. The function $\boldsymbol{r}$ never leaves the domain $[0, 1]^n$, but it's not a contraction mapping. If I could show that for every $\boldsymbol{r} \in D = [0, 1]^n$ the mapping is a contraction, then that would suffice to prove a unique fixed point(?). Component-wise, the equation $g(\boldsymbol{r})$ can be written as: \begin{align*} g_i(\boldsymbol{r}) = \frac{1 + \sum_k P_{ik} r_k}{2 +  \sum_k P_{ik} r_k + \sum_k N_{ik} r_k} = \frac{1 + (P \boldsymbol{r})_i }{2 + (P \boldsymbol{r})_i + (N \boldsymbol{r})_i} \end{align*} I differentiated the numerator as $\partial_{r_j} \left( 1 + (P \boldsymbol{r})_i \right) = P_{ij}$ and the denominator as $\partial_{r_j} \left( 2 + (P \boldsymbol{r})_i + (N \boldsymbol{r})_i \right) = P_{ij} + N_{ij}$. Applying the quotient rule, I obtain the entries of the Jacobian matrix: \begin{align*} J_{ij} (\boldsymbol{r}) = \partial_{r_j} g_i(\boldsymbol{r}) &= \frac{\left( P_{ij} \right) \left( 2 + (P \boldsymbol{r})_i + (N \boldsymbol{r})_i \right) - \left( 1 + (P \boldsymbol{r})_i  \right) \left( P_{ij} + N_{ij} \right)} { \left( 2 + (P \boldsymbol{r})_i + (N \boldsymbol{r})_i \right)^2} \\ &= \frac{\left( 1 + (N \boldsymbol{r})_i  \right) P_{ij} - \left( 1 + (P \boldsymbol{r})_i \right) N_{ij} } { \left( 2 + (P \boldsymbol{r})_i + (N \boldsymbol{r})_i \right)^2} \end{align*}

I'm not able to prove that the function is a contraction, because if I choose $\boldsymbol{r} = \boldsymbol{0}$, then

\begin{align*} J_{ij} (\boldsymbol{0}) = \frac{ P_{ij} - N_{ij} } { 4} \end{align*} is a matrix with entries in $\{-1/4, 0, 1/4\}$ and the largest eigenvalue of this matrix (the spectral norm $\left \lVert J(\boldsymbol{0}) \right \rVert_2$) is not smaller than or equal to $1$ (verified computationally). The same applies to the one-norm and infinity norm---the value can exceed 1.

  • Is there any way to prove a unique fixed point of this equation when I cannot use the Banach fixed-point theorem?
  • Any papers that could guide me in the right direction? I know this problem is related to pagerank and EigenTrust.
  • Perhaps viewing it as a graph problem could relate it to Spectral graph theory?

Any help is much appreciated!

  • 1
    A similar problem was solved here: https://math.stackexchange.com/questions/5075036/proving-the-uniqueness-of-a-fixed-point-on-0-1n I tried the same method in your case, but it does not work. It seems to work if the weight $1$ in $P$ and $N$ is changed such that the matrices have row sum 1, but I don't know if this is of interest to you. – Gerd Aug 12 '25 at 07:55

0 Answers0