Modeling User Exposure in Recommendation

【论文作者】Dawen Liang, David M. Blei, etc.

WWW’16 Columbia University


0. 总结

这篇文章构建了曝光概率这个隐变量,用EM算法进行参数优化,并提出了基于流行度和基于内容的两种曝光概率参数模型。实验表明,提出的方法性能得到了较大提升。

1.研究目标

通过建模曝光概率,去除推荐系统中的exposure bias。

2.问题背景

在推荐系统场景下,显示反馈数据可以同时获得用户的正负反馈信息,但获取难度较大,相关数据较少。在隐式反馈数据中,所有未发生交互的user-item pairs都被视为负样本,但是用户没有与一个物品发生交互,有可能是因为用户真的不喜欢,也可能是因为用户不知道这个物品,这就是推荐系统当中的exposure bias。

3. 方法

3.1 模型描述

本文将曝光与否建模为隐变量\(a_{ui}\),\(a_{ui}\)服从参数为\(\mu_{ui}\)的伯努利分布(0-1分布)。

u和i的embedding的各维度独立同分布,分别服从一个均值为0,方差为\(\lambda_{\theta}^{-1}\)的正态分布。

当\(a_{ui}=1\)时,\(y_{ui}\)服从均值为\(\boldsymbol{\theta}_{u}^{\top} \boldsymbol{\beta}_{i}\),方差为\(\lambda_{y}^{-1}\)的正态分布。

当\(a_{ui}=0\)时,表明i没有被u观测到,交互概率\(y_{ui}\)趋近于0。

\[\boldsymbol{\theta}_{u} \sim \mathcal{N}\left(\mathbf{0}, \lambda_{\theta}^{-1} I_{K}\right) \\
\boldsymbol{\beta}_{i} \sim \mathcal{N}\left(\mathbf{0}, \lambda_{\beta}^{-1} I_{K}\right) \\
a_{u i} \sim \operatorname{Bernoulli}\left(\mu_{u i}\right) \\
y_{u i} | a_{u i}=1 \sim \mathcal{N}\left(\boldsymbol{\theta}_{u}^{\top} \boldsymbol{\beta}_{i}, \lambda_{y}^{-1}\right) \\
y_{u i} | a_{u i}=0 \sim \delta_{0},
\]

基于上述概率分布,可以推导出\(a_{ui}\)和\(y_{ui}\)的联合条件概率分布为

\[\begin{aligned}
&\log p \left(a_{u i}, y_{u i} | \mu_{u i}, \boldsymbol{\theta}_{u}, \boldsymbol{\beta}_{i}, \lambda_{y}^{-1}\right) \\ \\

= &\log \left[p\left(a_{ui}|\mu_{u i}, \boldsymbol{\theta}_{u}, \boldsymbol{\beta}_{i}, \lambda_{y}^{-1}\right) * p \left( y_{ui}|a_{ui}, \mu_{u i}, \boldsymbol{\theta}_{u}, \boldsymbol{\beta}_{i}, \lambda_{y}^{-1} \right)\right ]\\ \\

= &\log p\left(a_{ui}|\mu_{u i} \right) + \log p \left( y_{ui}|a_{ui}, \mu_{u i}, \boldsymbol{\theta}_{u}, \boldsymbol{\beta}_{i}, \lambda_{y}^{-1} \right) \\ \\

= & \log p\left(a_{ui}|\mu_{u i} \right) + \mathbb{I}\left[a_{u i}=1\right] \log p \left( y_{ui}|a_{ui}=1, \mu_{u i}, \boldsymbol{\theta}_{u}, \boldsymbol{\beta}_{i}, \lambda_{y}^{-1} \right) + \\

&\mathbb{I}\left[a_{u i}=0\right] \log p \left( y_{ui}|a_{ui}=0, \mu_{u i}, \boldsymbol{\theta}_{u}, \boldsymbol{\beta}_{i}, \lambda_{y}^{-1} \right)\\ \\

= &\log \operatorname{Bernoulli}\left(a_{u i} | \mu_{u i}\right)+a_{u i} \log \mathcal{N}\left(y_{u i} | \boldsymbol{\theta}_{u}^{\top} \boldsymbol{\beta}_{i}, \lambda_{y}^{-1}\right) + \\

&\left(1-a_{u i}\right) \log \mathbb{I}\left[y_{u i}=0\right]
\end{aligned}
\]

当\(y_{ui} = 1\)时,\(a_{ui} = 1\),因此我们只考虑\(y_{ui} = 0\)的情况。

当\(y_{ui} = 0\)时,若\(\boldsymbol{\theta}_{u}^{\top} \boldsymbol{\beta}_{i}\)较大,则\(\mathcal{N}\left(y_{u i} = 0 | \boldsymbol{\theta}_{u}^{\top} \boldsymbol{\beta}_{i}, \lambda_{y}^{-1}\right)\)较小,使得\(p(a_{ui} = 1,y_{ui} = 0)\)较小,迫使我们相信\(a_{ui} = 0\)。直观上讲,若一个物品符合用户兴趣(\(\boldsymbol{\theta}_{u}^{\top} \boldsymbol{\beta}_{i}\)较大),且没有发生交互(\(y_{ui} = 0\)),则用户很可能是因为没有看到这个物品(\(a_{ui} = 0\))。

3.2 对曝光概率的建模

  • per item \(\mu_i\):直接用物品流行度作为曝光参数\(\mu_{ui}\)的初始值,只使用点击数据,不使用额外信息,\(\mu_i \sim Beta(\alpha_1,\alpha_2)\)。
  • 基于上下文的建模:首先基于提取物品的特征向量\(\boldsymbol{x_i}\),并为每个user学习一个表示\(\boldsymbol{\psi_u}\),则\(\mu_{ui} = \sigma(\psi_u^\top \boldsymbol{x_i})\)。

3.3 参数学习

由于模型中含有因变量\(a_{ui}\),使用EM算法来学习模型参数。

  • E-step:对于\(y_{ui} = 1\)的交互,\(a_{ui} = 1\),不需要学习。对于\(y_{ui} = 0\)的交互:
\[\begin{aligned}
&\mathbb{E}\left[a_{u i} \mid \boldsymbol{\theta}_{u}, \boldsymbol{\beta}_{i}, \mu_{u i}, y_{u i}=0\right]\\\\

= &\frac{p(a_{ui} = 1, y_{ui} = 0 \mid \boldsymbol{\theta}_{u}, \boldsymbol{\beta}_{i}, \mu_{u i})}
{p(a_{ui} = 1, y_{ui} = 0 \mid \boldsymbol{\theta}_{u}, \boldsymbol{\beta}_{i}, \mu_{u i}) +
p(a_{ui} = 0, y_{ui} = 0 \mid \boldsymbol{\theta}_{u}, \boldsymbol{\beta}_{i}, \mu_{u i})} \\ \\

= &\frac{p(a_{ui} = 1) \cdot p(y_{ui} = 0 \mid \boldsymbol{\theta}_{u}, \boldsymbol{\beta}_{i}, a_{ui} = 1)}
{p(a_{ui} = 1) \cdot p(y_{ui} = 0 \mid \boldsymbol{\theta}_{u}, \boldsymbol{\beta}_{i}, a_{ui} = 1) +
p(a_{ui} = 0 \mid \mu_{ui})} \\ \\

=&\frac{\mu_{u i} \cdot \mathcal{N}\left(0 \mid \boldsymbol{\theta}_{u}^{\top} \boldsymbol{\beta}_{i}, \lambda_{y}^{-1}\right)}

{\mu_{u i} \cdot \mathcal{N}\left(0 \mid \boldsymbol{\theta}_{u}^{\top} \boldsymbol{\beta}_{i}, \lambda_{y}^{-1}\right)+\left(1-\mu_{u i}\right)}
\end{aligned}
\]

  • M-step:

为简化表达,令\(p_{ui} = \mathbb{E}\left[a_{u i} \mid \boldsymbol{\theta}_{u}, \boldsymbol{\beta}_{i}, \mu_{u i}, y_{u i}=0\right]\),则:

\[\begin{aligned}
&\boldsymbol{\theta}_{u} \leftarrow\left(\lambda_{y} \sum_{i} p_{u i} \boldsymbol{\beta}_{i} \boldsymbol{\beta}_{i}^{\top}+\lambda_{\theta} I_{K}\right)^{-1}\left(\sum_{i} \lambda_{y} p_{u i} y_{u i} \boldsymbol{\beta}_{i}\right) \\ \\
&\boldsymbol{\beta}_{i} \leftarrow\left(\lambda_{y} \sum_{u} p_{u i} \boldsymbol{\theta}_{u} \boldsymbol{\theta}_{u}^{\top}+\lambda_{\beta} I_{K}\right)^{-1}\left(\sum_{u} \lambda_{y} p_{u i} y_{u i} \boldsymbol{\theta}_{u}\right)
\end{aligned}
\]

曝光先验概率\(\mu_{ui}\)的优化:

  • per-item \(\mu_{ui}\)

    由于\(\mu_{i}\)服从beta分布,即\(\mu_{i} \sim Beta(\alpha_1 + \sum_u p_{ui}, \alpha_2 + U - \sum_u p_{ui})\),则

    \[\mu_{i} \leftarrow \frac{\alpha_{1}+\sum_{u} p_{u i}-1}{\alpha_{1}+\alpha_{2}+U-2}
    \]
  • 基于上下文的先验概率\(\mu_{ui}\)

    也就是用E-step生成的\(p_{ui}\)来监督\(\mu_{ui}\)

    \[\psi_{u}^{\text {new}} \leftarrow \psi_{u}+ \eta \nabla_{\psi_{u}}\mathcal{L}
    \]
\[\nabla_{\boldsymbol{\psi}_{u}} \mathcal{L}=\frac{1}{I} \sum_{i}\left(p_{u i}-\sigma\left(\boldsymbol{\psi}_{u}^{\top} \mathbf{x}_{i}\right)\right) \mathbf{x}_{i}
\]

​ 实现时,对每个user,不计算与所有item的交互,而是随机采样一些item,以降低计算复杂度。

3.4 预测模型

预测时,可以用\(\hat{y}_{ui} = \mu_{ui} \cdot \boldsymbol{\theta_u^\top\beta_i}\),也可以直接用\(\hat{y}_{ui} = \theta_u^\top\beta_i\)。在本文的实验中,如果采用per-item exposure model,则后者好;如果曝光先验概率模型中加入了item的物品信息,则前者好。

可能是因为加入了item信息的曝光模型对曝光概率的预测更准确,因此在预测时加入\(\mu_{ui}\)效果更好。

4. 实验

4.1 数据集

\[\begin{array}{ccccc}
\hline & \text { TPS } & \text { Mendeley } & \text { Gowalla } & \text { ArXiv } \\
\hline \text { # of users } & 221,830 & 45,293 & 57,629 & 37,893 \\
\text { # of items } & 22,781 & 76,237 & 47,198 & 44,715 \\
\text { # interactions } & 14.0 \mathrm{M} & 2.4 \mathrm{M} & 2.3 \mathrm{M} & 2.5 \mathrm{M} \\
\% \text { interactions } & 0.29 \% & 0.07 \% & 0.09 \% & 0.15 \% \\
\hline
\end{array}
\]

4.2 实验结果

\[\begin{array}{c|cc|cc|cc|cc}
& {\text { TPS }} & & {\text { Mendeley }} & & {\text { Gowalla }}& & {\text { ArXiv }} \\
\hline & \text { WMF } & \text { ExpoMF } & \text { WMF } & \text { ExpoMF } & \text { WMF } & \text { ExpoMF } & \text { WMF } & \text { ExpoMF } \\
\hline \text { Recall@20 } & 0.195 & \mathbf{0 . 2 0 1} & 0.128 & \mathbf{0 . 1 3 9} & \mathbf{0 . 1 2 2} & 0.118 & 0.143 & \mathbf{0 . 1 4 7} \\
\text { Recall@50 } & \mathbf{0 . 2 9 3} & 0.286 & 0.210 & \mathbf{0 . 2 2 1} & \mathbf{0 . 1 9 2} & 0.186 & \mathbf{0 . 2 3 7} & 0.236 \\
\text { NDCG@100 } & 0.255 & \mathbf{0 . 2 6 3} & 0.149 & \mathbf{0 . 1 5 9} & \mathbf{0 . 1 1 8} & 0.116 & 0.154 & \mathbf{0 . 1 5 7} \\
\text { MAP@100 } & 0.092 & \mathbf{0 . 1 0 9} & 0.048 & \mathbf{0 . 0 5 5} & \mathbf{0 . 0 4 4} & 0.043 & 0.051 & \mathbf{0 . 0 5 4}
\end{array}
\]

4.3模型分析

从结果上,对于未点击的物品,如果用户感兴趣的概率较高,则该物品被曝光的概率应该比较低。

从训练过程上看,模型中的曝光变量使得MF模型能够专注于曝光概率高的user-item pairs。

图中,横坐标表示物品流行度,红色虚线表示学到的per-item先验曝光概率,蓝色点表示后验曝光概率。画出的点都是没有发生过交互的。

在User A的图中,方框框出的点表示跟用户兴趣比较相符的物品,但是没有发生交互,模型可以将对应的曝光概率降低。也就是说,用户更可能是因为没有看到这个物品而没有发生交互,而不是因为不感兴趣。

在User B的图中,方框框出了流行度最高的两个物品(流行度非常接近),但是其中一个物品更接近用户兴趣,模型得出的响应曝光概率明显低于另一个物品。

4.4 加入内容信息的曝光模型

曝光参数模型:

\[\mu_{ui} = \sigma(\psi_u^\top \bold{x_i} + \gamma_u)
\]

物品特征提取方式:

  • Mendeley:共K个文章类别,使用LDA模型,通过内容信息,得到文章属于每个类别的概率,从而为每个item生成一个特征向量。
  • Gowalla:使用K-means得到K个聚类中心,计算每个位置与K个中心的距离,得到一个特征向量。

训练结果(第二行的两个图):

加入内容信息之后,曝光概率与流行度的相关性大大降低,模型性能也得到了较大提升。

\[\begin{array}{cccc}
\hline & \text { WMF } & \text { ExpoMF } & \text { Location ExpoMF } \\
\hline \text { Recall@20 } & 0.122 & 0.118 & \mathbf{0 . 1 2 9} \\
\text { Recall@50 } & 0.192 & 0.186 & \mathbf{0 . 1 9 9} \\
\text { NDCG@100 } & 0.118 & 0.116 & \mathbf{0 . 1 2 5} \\
\text { MAP@100 } & 0.044 & 0.043 & \mathbf{0 . 0 4 8} \\
\hline
\end{array}
\]

疑问

3.3 M-step不理解

【论文笔记】Modeling User Exposure in Recommendation的更多相关文章

  1. 【RS】Modeling User Exposure in Recommendation - 在推荐中建模用户的暴露程度

    [论文标题]Modeling User Exposure in Recommendation (2016-WWW) [论文作者]Dawen Liang,Laurent Charlin,James Mc ...

  2. 【论文笔记】SamWalker: Social Recommendation with Informative Sampling Strategy

    SamWalker: Social Recommendation with Informative Sampling Strategy Authors: Jiawei Chen, Can Wang, ...

  3. 【论文笔记】用反事实推断方法缓解标题党内容对推荐系统的影响 Click can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue

    Click can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue Authors: 王文杰,冯福利 ...

  4. 论文笔记系列-Neural Network Search :A Survey

    论文笔记系列-Neural Network Search :A Survey 论文 笔记 NAS automl survey review reinforcement learning Bayesia ...

  5. 【论文笔记】Learning Fashion Compatibility with Bidirectional LSTMs

    论文:<Learning Fashion Compatibility with Bidirectional LSTMs> 论文地址:https://arxiv.org/abs/1707.0 ...

  6. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)

    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文, ...

  7. 论文笔记之:Visual Tracking with Fully Convolutional Networks

    论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015  CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...

  8. Deep Learning论文笔记之(八)Deep Learning最新综述

    Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...

  9. Twitter 新一代流处理利器——Heron 论文笔记之Heron架构

    Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...

随机推荐

  1. Go语言核心36讲(Go语言实战与应用十二)--学习笔记

    34 | 并发安全字典sync.Map (上) 我们今天再来讲一个并发安全的高级数据结构:sync.Map.众所周知,Go 语言自带的字典类型map并不是并发安全的. 前导知识:并发安全字典诞生史 换 ...

  2. Redis分布式缓存剖析及大厂面试精髓v6.2.6

    概述 官方说明 Redis官网 https://redis.io/ 最新版本6.2.6 Redis中文官网 http://www.redis.cn/ 不过中文官网的同步更新维护相对要滞后不少时间,但对 ...

  3. Object类的toString和Equals方法,以及Objects类的Equals方法

    Object类 toString()方法 public class Person { private String name; private int age; public Person() { } ...

  4. docker版本演变,安装,基本命令

    1.docker 版本信息 Docker CE在17.03版本之前叫Docker Engine,版本号从0.1.0(2013-03-23)~1.13.1(2017-02-08),详见https://d ...

  5. Ubuntu怎么修改DNS

    有时候会出现配置好网络之后,可以ping通网关却ping不通www.baidu.com orangepi@orangepi3:~$ ping 192.168.1.1 PING 192.168.1.1 ...

  6. 【2020五校联考NOIP #6】三格缩进

    题意: 给出 \(n\) 个数 \(a_1,a_2,\dots,a_n\),你要进行 \(m\) 次操作,每次操作有两种类型: \(1\ p\ x\):将 \(a_p\) 改为 \(x\). \(2\ ...

  7. 洛谷 P3287 - [SCOI2014]方伯伯的玉米田(BIT 优化 DP)

    洛谷题面传送门 怎么题解区全是 2log 的做法/jk,这里提供一种 1log 并且代码更短(bushi)的做法. 首先考虑对于一个序列 \(a\) 怎样计算将其变成单调不降的最小代价.对于这类涉及区 ...

  8. 你不知道的iostat

    1.       作用 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视.它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况 ...

  9. LVS-原理

    一. 集群的概念 服务器集群简称集群是一种服务器系统,它通过一组松散集成的服务器软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台服务器.集群系统中的单个服务器通常称 ...

  10. Python基础之列表内置方法

    目录 1. 列表 1.1 序列 1.2 通用的序列操作 1.3 列表的基本操作 1.4 列表方法 1. 列表 数据结构:以某种方式(如通过编号)组合起来的元素(如数,字符乃至其他数据结构)集合. 在p ...