有什么问题欢迎讨论呀!
论文标题:Causal embeddings for recommendation
目的
用过去的 user-item 矩阵预测用户未来的行为会造成偏差,本文是为了消除这种偏差。
方法
构建两个数据集 ScS_cSc 和 StS_tSt,其中 StS_tSt 数据集的分布(给定每个用户所有item暴露给用户的概率分布)和测试集的分布是一致的。采用领域自适应的算法进行去偏。
结果
MSE lift、NLL lift、AUC 评价指标来衡量各个方法的好坏,结果表明本文的方法要更好一些。
内容
1. Introduction
用过去的 user-item matrix 来预测用户未来的行为是存在偏差的。
传统的方法:
【推荐】协同过滤的方法:计算 item-item 对或者 item-user 对之间的距离
【预测】对用户的历史行为建模来预测下一个行为
这两种方法都没有对推荐系统内在的干预本质进行预测(不应该只尝试对用户的自然行为进行建模,而是根据预设目标以最优的方式去影响它)
2. 通过ITE优化的推荐策略
【推荐策略 recommendation policy】
我们假设一个随机推荐策略 πxπ_xπx 是将所有物品 pjp_jpj 暴露给给定用户 uiu_iui 的概率分布:
pj πx(⋅∣ui)p_j~π_x (·|u_i)pj πx(⋅∣ui)
【策略奖赏 policy rewards】
我们定义 rijr_{ij}rij 为向用户 uiu_iui 推荐物品 pjp_jpj 后真实的奖赏。在我们的例子中,rijr_{ij}rij 是一个二元变量(click/no click, sale/no sale)。我们假设奖赏 rijr_{ij}rij 是由未知条件分布 rrr 给定的:
rij r(⋅∣ui,pj)r_{ij}~r(·|u_i,p_j)rij r(⋅∣ui,pj)
我们定义 yijy_{ij}yij 为日志策略 πxπ_xπx 下观察到的奖赏值(也是一个二元变量):
yij=rijπx(pj∣ui)y_{ij}=r_{ij} π_x (p_j |u_i)yij=rijπx(pj∣ui)
在策略 πxπ_xπx 下的奖赏值 RπxR^{π_x}Rπx 等价于通过使用相关的个性化产品曝光概率,从所有进入系统的用户中收集到的奖励的总和:
Rπx=∑ijrijπx(pj∣ui)p(ui)=∑ijyijp(ui)=∑ijRijR^{π_x}=∑_{ij}r_{ij} π_x (p_j|u_i)p(u_i)=∑_{ij}y_{ij} p(u_i)=∑_{ij}R_{ij}Rπx=ij∑rijπx(pj∣ui)p(ui)=ij∑yijp(ui)=ij∑Rij
看到的用户的概率是来自一个未知的分布 p(X):ui p(X)p(X):u_i~p(X)p(X):ui p(X) 并且 RijR_{ij}Rij 是用户物品对的奖赏值
在策略 πxπ_xπx 下,给定用户 iii 和物品 jjj 的 ITE(Individual Treatment Effect)值可以定义为当前策略下的奖赏值和控制策略 πcπ_cπc 下的奖赏值之差:
ITEijπx=Rijπx−RijπcITE_{ij}^{π_x}=R_{ij}^{π_x}-R_{ij}^{π_c}ITEijπx=Rijπx−Rijπc
本文我们感兴趣的是 ITE 和最大时对应的策略 π∗π^*π∗:
π∗=argmaxπxITEπxπ^*=arg max_{π_x}{ITE^{π_x}}π∗=argmaxπxITEπx,其中 ITEπx=∑ijITEijπxITE^{π_x}=∑_{ij} ITE_{ij}^{π_x}ITEπx=∑ijITEijπx
【引理1】对于任意控制策略 πcπ_cπc,最优的增长策略 π∗π^*π∗ 是向每一个用户展示出最高相关奖赏值的物品的策略。(证明略)
πdetπ_{det}πdet 是对每个用户展示最优的个性化物品的策略:
πdet={1,ifpj=pi∗0,otherwiseπ_{det}=\left\{ \begin{array}{cc} 1 & ,if\quad p_j=p_i^* \\ 0 & ,otherwise \end{array} \right.πdet={10,ifpj=pi∗,otherwise
因此,π∗=πdetπ^*=π_{det}π∗=πdet
为了找到最优策略 π∗π^*π∗,我们需要找到每个用户能获得的最高个性化奖赏值 ri∗r_i^*ri∗ 的产品。实际上我们是没办法直接观察到 rijr_{ij}rij 的,但我们有 yij∼rijπx(pj∣ui)y_{ij}\sim r_{ij} π_x (p_j |u_i)yij∼rijπx(pj∣ui) 来预测不可观察的 rijr_{ij}rij:
r^ij≈yij(πc(pj∣ui))\hat{r}_{ij} ≈ \frac{y_{ij}}{(π_c (p_j |u_i))}r^ij≈(πc(pj∣ui))yij
该方法的不足之处:1. 基于IPS的估计值不能很好的处理 treatment 和 control policy 之间的暴露概率的巨大变化;2. 方差会很大
如果 πc=π∗π_c=π^*πc=π∗,虽然让方差最小化了,但推荐效果也会变差
解决方法:从 πcπ_cπc 中学习一个预测器,然后在 πrandπ^{rand}πrand 下执行
3. 本文方法:Causal Embeddings(CausE)
我们的目标是建立一个好的预测器:对所有的用户-物品对,通过随机暴露来推荐结果。
假设我们从日志策略 πcπ_cπc 中获得大量样本 ScS_cSc,从随机处理策略 πtrandπ_t^{rand}πtrand 中获得小样本 StS_tSt。到此本文提出了一个多任务目标:分解矩阵 yijc∈Scy_{ij}^c∈S_cyijc∈Sc 和 yijt∈Sty_{ij}^t∈S_tyijt∈St
我们假设真实的control和treatment奖赏值可以用线性预测器来估计:
yijc≈<ui,θjc>y_{ij}^c≈<u_i,θ_j^c>yijc≈<ui,θjc>
yijt≈<ui,θjt>y_{ij}^t≈<u_i,θ_j^t>yijt≈<ui,θjt>
到此,可以估计用户-物品对的ITE值:
ITE^ij=<ui,θjt>−<ui,θjc>=<ui,θj∆>\hat{ITE}_{ij}=<u_i,θ_j^t>-<u_i,θ_j^c> = <u_i,θ_j^∆>ITE^ij=<ui,θjt>−<ui,θjc>=<ui,θj∆>
Lt=L(UΘt,Yt)+Ω(Θt)L_t=L(UΘ_t,Y_t )+Ω(Θ_t)Lt=L(UΘt,Yt)+Ω(Θt)
Lc=L(UΘc,Yt)+Ω(Θc)L_c=L(UΘ_c,Y_t )+Ω(Θ_c)Lc=L(UΘc,Yt)+Ω(Θc)
LCausEprod=L(UΘt,Yt)+Ω(Θt)+L(UΘc,Yt)+Ω(Θc)+Ω(Θt−Θc)L_{CausE}^{prod}=L(UΘ_t,Y_t )+Ω(Θ_t )+L(UΘ_c,Y_t )+Ω(Θ_c )+Ω(Θ_t-Θ_c )LCausEprod=L(UΘt,Yt)+Ω(Θt)+L(UΘc,Yt)+Ω(Θc)+Ω(Θt−Θc)
4. 实验
Dataset:MovieLen 100k, MovieLen 10M 显式评分数据集
创建了两个数据集:regular(REG)和skewed(SKEW)
70/10/20 train/valid/test
SKEW Dataset:目标是产生一个测试数据集-simulates rewards uniform expose πtrandπ_t^{rand}πtrand
- Causal embeddings for recommendation 论文中 SKEW 对训练集(train)/验证集(valid)/测试集(test)(70/10/20)的划分参考了论文 Causal inference for recommendation论文,从完整的数据集中针对 item 均匀采样出 20% 的数据作为测试集,剩下的数据随机划分成 7:1,分别作为训练集和验证集。
- 但是为了模拟随机策略产生的 S_t 数据集,将测试集的采样比例增加到 30%,其中 20% 作为测试集,10% 作为模拟随机策略得到的数据 S_t,剩下数据随机划分成 6:1。那么一共就有四种数据集:训练集S_c(πc\pi_cπc)、训练集S_t(πt\pi_tπt)、验证集(πc\pi_cπc)和测试集(πt\pi_tπt),比例为:6:1:1:2。
本实验中,改变 StS_tSt 的大小 1%-15%
定义了5中合并的暴露数据设置:
- No adaptation:ScS_cSc
- Blended adaptation: ScS_cSc, StS_tSt
- Test adaptation: StS_tSt
- Product adaptation: Separate treatment embedding for each product based on the StS_tSt sample
- Average adaptation: Average treatment product by pooling all the StS_tSt sample into a single vector
5. 结论
- 新的方法来分解隐式的 user-item 矩阵
- 用一致的暴露分布来预测 user-item 的相似度
- CausE 是对 MF 算法的一个扩展,加入了正则项 Ω(Θt−Θc)Ω(Θ_t-Θ_c )Ω(Θt−Θc)
6. 不足
- StS_tSt 的数据太难获取
- 没有对用户序列进行建模
- ITE 最大化和损失函数最小化之间的关联