关于贝叶斯个性化排序 (BPR) 的简单笔记。

贝叶斯个性化排序 (Bayesian Personalized Ranking, BPR),最早在 BPR: Bayesian Personalized Ranking from Implicit Feedback 中被提及。本篇笔记就来简单整理这篇论文提供的想法、主要贡献和一些问题。

# 概述

# 背景

推荐系统是基于用户 (user) 对项目 (item) 的反应,推测用户对项目的偏好并对用户基于项目推荐的系统。

用户对项目的反应可以分为显式反馈隐式反馈显式反馈 (explicit feedback) 特指用户对项目的评分,认作是量化的、可排序的评价。相反地,隐式反馈 (implicit feedback) 指用户对项目的其它动作行为,如点击购买点赞转发等。隐式反馈的特点是包含的信息量小,且可能存在错误。例如,我们无法肯定用户的点击一定出于用户的偏好而非误触,也无法肯定用户未点击的项目是用户的厌恶项,而非用户的忽略。第一种情况出现的可能性是相对较小的,而第二种情况出现的可能性是相对较大的。因此我们认为隐式反馈中的积极项 (positive items) 是有效的,而消极项 (negative items) 一般不纳入考虑。隐式反馈在日常情况下数据量远大于显式反馈,因此聚焦于隐式反馈是更加有价值的。

事实上,隐式反馈相比于显式反馈的建模是更贴合实际情况的。这可以类比于经济学中的基数效用序数效用。我们认为基数效用的可靠性是低于序数效用的。能否更加深入理解隐式反馈的内涵,采用更加可靠的模型进行描述,是一个值得思考的问题。毕竟,BPR 采用的建模方法也不是十分先进。(或许要依赖经济学的一些模型吧...)

# 基本想法

BPR 正是建立在隐式反馈数据的基础上的。BPR 模型基于排序的想法,通过对隐式反馈进行恰当建模,提出了 BPR 模型下的优化项 BPR-OPT。只要对优化项 BPR-OPT 进行最优化,就能得到具有最大概率的序关系,进而在序中顺序选取给出具体推荐。

此外,BPR 还通过建模优化,假定隐式反馈的消极数据偏序关系不定,达到了支持动态训练的特点。也正是凭借此特点,BPR 提出了对应的优化方法,极大提高了模型训练的速度。

# 特点

BPR 实际上是一个概率模型。通过最优化概率实现参数训练。也正是因为此,BPR 可以广泛应用于各种推荐模型,包括矩阵分解模型 (matrix factorization) 和自适应最近邻算法 (adaptive kNN) 等。

# 公式记号

  • UU: 用户集;
  • II: 项目集;
  • SU×IS \in U \times I: 隐式反馈;
  • Iu+:={iI(u,i)S}I_u^+:=\{i \in I|(u,i) \in S\}: 对用户uu 存在隐式反馈的项目集;
  • Ui+:={uU(u,i)S}U_i^+:=\{u \in U|(u,i) \in S\}: 对项目ii 存在隐式反馈的用户集;
  • x^ui\hat{x}_{ui}: 用户uu 对项目ii 的个性化评分;
  • >u>_u: 用户uu 对项目的偏好个性化排序;
  • DS:={(u,i,j)iIu+jIIu+}D_S:=\{(u,i,j)|i \in I_u^+\wedge j\in I\setminus I_u^+\}: 表示存在明确偏好关系的用户・偏序集合;
  • Θ\Theta: 待训练模型的参数组成的向量;
  • δ(x)\delta(x): 示性函数,xx 为真则取11,否则取00;
  • H(x):=δ(x>0)H(x):=\delta(x>0): Heavside 函数,是一种激活函数;
  • α\alpha: 梯度下降中的学习率;
  • λΘ\lambda_\Theta: 参数向量Θ\Theta 的正则化系数.

# BPR 的建模方式

Fig1: traditional model

Fig2: BPR model