Novelty and diversity in information retrieval evaluation
概
本文定义了一种评估 diversity 的指标 (兼顾相关性): \(\alpha\text{-NDCG}\).
符号说明
- \(u\): user;
- \(d\): document, 注意, 本文是在文本推荐的背景下, 所以是 \(d\);
- \(r_{ud} \in \{0, 1\}\), 用户 \(u\) 对文档 \(d\) 感兴趣 (\(r_{ud} = 1\));
- \(\mathbb{P}(r|u, d)\), 用户 \(u\) 对文档 \(d\) 感兴趣的概率;
alpha-NDCG
-
我们希望设计一个指标, 它能够反映一个推荐列表 \([d_1, d_2, \ldots, d_n]\) 中的多样性和相关性. 这里先大概叙述一下多样性的含义. 每个文档 \(d_i\) 都具有不同的 topics \(t \in \mathcal{T} = \{t_1, t_2, \ldots, t_m\}\). 假设, \(d_1\) 的 topics 为 \(t_1, t_2\), 此时若 \(d_2\) 也包含相同的 topics 的话, 就会过于重复了. 所以我们的目标其实是保证前列的推荐结果, 即和用户 \(u\) 的 query 紧密相关, 同时又能够尽可能 cover 多的 topics.
-
在具体给出 \(\alpha\)-NDCG 的定义之前, 让我们先估计
\[\mathbb{P}(r=1|u, d) \]以做准备.
-
出于直觉, 我们定义:
\[\tag{1} \begin{array}{ll} \mathbb{P}(r=1|u, d) &= \mathbb{P}(\exist t, \: t \in u \cap d) \\ &= 1 - \prod_{i=1}^m (1 - \mathbb{P}(t_i \in u) \cdot \mathbb{P}(t_i \in d)). \end{array} \]注意, 上面的集合操作, 是把 \(u\) 看成其所感兴趣的 topics 的集合, \(d\) 看成是其包含的 topics 的集合. 接下来的任务就是估计 \(\mathbb{P}(t \in u), \mathbb{P}(t \in d)\):
- \(d\):\[\mathbb{P}(t \in d) = \alpha \cdot \mathbb{I}(t \in d). \]其中 \(\alpha \in (0, 1]\) 是一个人为设置的超参数, 表示人为标记的准确度.
- \(u\): 实际上我们很难提前知道或者猜测每个用户的偏好, 所以最保险的假设就是:\[\mathbb{P}(t \in u) = \gamma, \]即每个 topic 都等概率地存在于用户 \(u\) 的兴趣范围内.
- \(d\):
-
于是乎 (1) 可以改写为:
\[\tag{2} \mathbb{P}(r=1|u, d) = 1 - \prod_{i=1}^m (1 - \gamma \alpha \cdot \mathbb{I}(t_i \in d)). \] -
到此, 我们已经了估计了一个文档的概率, 接下来我们推广到整个推荐列表 \([d_1, d_2,\ldots, d_k]\) 之上. 假设我们对前 \(r_{1}, \ldots, r_{k-1}\) 有了一个估计, 那么我们接下来要估计:
\[\tag{3} \begin{array}{ll} &\mathbb{P}(r_k = 1 | u, d_1, d_2, \ldots, d_k) \\ =& 1 - \prod_{i=1}^m (1 - \mathbb{P}(t_i \in u|d_1, d_2, \ldots, d_{k-1}) \mathbb{P}(t_i \in d)). \end{array} \] -
作者认为, 在已经有了 \([d_1, d_2, \ldots, d_{k-1}]\) 的基础上, \(u\) 依旧对 topic \(t_i\) 感兴趣的前提是:
\[t_i \in u, t_i \in d_j, j=1,2,\ldots,k-1, \]即 \(t_i\) 没有出现在之前的推荐过的文档中. 故
\[\mathbb{P}(t_i \in u|d_1, d_2, \ldots, d_{k-1}) = \mathbb{P}(t_i \in u) \prod_{j=1}^{k-1} \mathbb{P}(t_i \not \in d_j). \] -
定义
\[c_{i}^{k-1} := \sum_{j=1}^{k-1} \mathbb{I}(t_i \in d_j), \quad c_i^0 = 0. \]则
\[\prod_{j=1}^{k-1} \mathbb{P}(t_i \not \in d_j) = (1 - \alpha)^{c_i^{k-1}}. \] -
于是 (3) 为
\[\tag{4} \begin{array}{ll} &\mathbb{P}(r_k = 1 | u, d_1, d_2, \ldots, d_k) \\ =& 1 - \prod_{i=1}^m (1 - \gamma \alpha \cdot \mathbb{I}(t_i \in d_k) \cdot (1 - \alpha)^{c_i^{k-1}}). \end{array} \] -
可以通过 (4) 的一阶项近似得到 gain (去掉了 \(\gamma \alpha\), 因为对于相对关系没有影响):
\[\tag{5} \text{G}[k] = \sum_{i=1}^m \mathbb{I}(t_i \in d_k) (1 - \alpha)^{c_i^{k-1}}. \] -
于是 cumulative gain 为:
\[\tag{6} \text{CG}[k] = \sum_{j=1}^k \text{G}[j]. \] -
于是 discounted cumulative gain (即更靠前的排序收益更高):
\[\text{DCG}[k] = \sum_{j=1}^k \text{G}[j] / \log_2(1 + j). \] -
计算 ideal-DCG 是困难的, 但是作者认为用贪心的方式去估计是可以接受的, 故作者选择每一步选择产生最大 gain 的那个 \(d\). 不妨记 \(\text{DCG}'[k]\) 为这样的一个近似.
-
最后
\[\alpha\text{-nDCG}[k] = \frac{\text{DCG}[k]}{\text{DCG}'[k]}. \]
几种特殊的情况:
-
\(\alpha=0\):
\[\text{G}[k] = \sum_{i=1}^m \mathbb{I}(t_i \in d_k), \]此时退化为普通的 nDCG.
-
\(\alpha=1\):
\[\text{G}[k] = \sum_{i=1}^m \mathbb{I}(t_i \in d_k) \prod_{j=1}^{k-1}\mathbb{I}(t_i \not \in d_j) = |d_k \setminus \cup_{j=1}^{k-1} d_j|. \] -
\(|d| = 1\):
\[\text{G}[k] = (1 - \alpha)^{c_{d_k}^{k-1}}. \]显然此时, ideal 的情况也是容易求的,
\[\text{i-G}[k] = (1 - \alpha)^{\max(0, k - |\cup_{j=1}^n d_j)|}. \]即, ideal 的情形就是每一次优先选择和前面推荐的不重复的文档 (如果可以的话).