用户画像算法

用户画像算法和文献解读

李孙博闻

1. 计算用户画像标签重要性方法

用户画像是怎么生成出来的? - 朱翔宇的回答 - 知乎

https://www.zhihu.com/question/31429786/answer/1762480989

该方法可以作为特征工程,对于已经打好标签的数据,增加其标签特性作为用户特征,或者仅仅用于刻画标签的特征。

2. 文献解读

2.1. 论文信息

Pujahari A, Sisodia D S. Item feature refinement using matrix factorization and boosted learning based user profile generation for content-based recommender systems [J]. Expert Systems with Applications, 2022, 206: 117849.

直译:基于内容的推荐系统中,使用矩阵分解和增强学习来进行项目特征细化和用户画像生成

期刊:Expert Systems with Applications,一区top,CCF C

关键概念:

  1. User profile 用户画像;
  2. CBF(Content-Based Filter)基于内容的过滤器;
  3. CBRS(Content-Based Recommender System)基于内容的推荐系统,CBRS属于CBF;
  4. matrix factorization 矩阵分解;
  5. PCA 主成分分析;
  6. 物品:指待推荐的项目

2.2. 论文解读(AI辅助)

2.2.1. 研究背景与动机

研究动机中,第一点强调物品特征稀疏性和数据缺失问题,即有些特征可能是某个物品特有的,这是为了引出用矩阵分解做特征精炼的点子,第二点是说传统的非学习方法没有持续学习能力,是为了引出机器学习算法,认为机器学习通过用户新的反馈可以继续学习。

2.2.2. 研究方法

针对前面的研究动机,作者提出了两步方法来改进 CBRS 的性能。

2.2.3. 模型框架

左图是传统框架,右图是本文框架。这里只讨论本文框架

对于训练部分(右图,左边部分),Items 可以看作是用来训练和验证的关于物品特征原始数据集,原始 Items 数据通过处理、向量化等方法转化为可学习的表征形式,再通过矩阵分解进一步精炼表征,它将和用户特征一起输入集成模型进行训练。

对于新物品的推荐参考(右图,右下部分)。

image-20240123142907447.png|775

新物品用 New Items 表示,它先通过用户偏好画像(User Preference Profile)的过滤来判断是否要推送给用户,而用户偏好画像是由集成模型所表示的,过滤器会对 New Items 进行评级,选出一个评级,使得各个加权的分类器给出该评级的概率总和最大即可,把各个 News Items 以“非递增”(原文如此)的形式生成推荐。物品评级的数学形式如下,其中 f 是 New Items,I 是标记函数,αk 是分类器 k 的权重,是在 AdaBoost 中计算得到的:

Class(f)=argmaxCk=1kαkI(Mk(u)(f)=C)

2.2.4. 主要方法介绍

作者所谓两个创新中,其一,特征精炼可以看作是特征工程方法,该方法来自 Wang 等人的工作[1:1];而第二个点,采用 AdaBoost 并不算创新。这里主要梳理一下数据精炼方法。

F (n, d) 是原始矩阵,W=[𝑤1,𝑤2,,𝑤𝑑]𝑇 为大小为 (d, f) 的特征权重矩阵,用来把原始特征矩阵转换为维度为 f 的特征子集上,FW 是为了把 F 投影到新的空间上,做初步特征降维或者增强K (f, d) 是系数矩阵,用于“将原始特征矩阵投影到所选特征矩阵的共享子空间”(原文如此),这里并不懂作者解释 K 的意思,个人理解 K 就是线性映射,同时把矩阵变回原来的大小,而且 K 是可训练的,因此类似于神经网络的线性层,数学表示为:

argminW,KFFWKF2s.t. W0,K0, and WTW=If×f

这里目标式用的是 F 范数,用于衡量 FFWK 的相似度。

论文中没有说 f 是多少,不严谨。原本特征数量是 d,如果 f < d 那就是做了降维;如果 f=d 那就只做了旋转。

K 的引入是 Wang 等人的工作[1:2]中的创新点,但是这篇论文中对 K 的解释就是:“将原始特征矩阵投影到所选特征矩阵的共享子空间”。

由于 WTW=If×f 这个约束条件增加了求解难度,因此把这个约束改写为关于 W 的正则化项做近似计算:

minW,KFFWKF2+λΦ(W)=minW,KFFWKF2+λj=1,jid|wi,wj|s.t. W0,F0.

这里 WK 的求解,采用梯度下降方法,先把前式写成函数形式:

G(W,K)=∥FFWKF2+λj=1,jia|wi,wj|=∥FFWKF2+λ(WWT1W22)subject to W0,K0.

G(W,K) 进一步运算得到下面结果,F 范数可以写成迹的形式: ||A||F=tr(ATA) ,因此有:

G(W,K)=∥FFWKF2+λ(WWT1W22)=tr((FFWK)T(FFWK))+2λ(tr(1d×dWWT)tr(WTW))=tr(FTF)tr(KTWTFTF)+tr(KTWTFTFWK)+λ(tr(1d×dWWT)tr(WTW))

原论文第二行写错了,不是相减而是叉乘,这里改正

利用拉格朗日乘子法引入约束项:

L(G,α,β)=G(W,K)+tr(αWT)+tr(βKT)=tr(FTF)tr(KTWTFTF)+tr(KTWTFTFWK)+λ(tr(1d×dWWT)tr(WTW))+tr(αWT)+tr(βKT)

L(G,α,β)W 的梯度:

LW=2FTFKT+2FTFWKKT+2λ(1d×dWW)+α=0

L(G,α,β)K 的梯度:

LK=2WTFTF+2WTFTFWK+β=0

给出更新公式:

WijWij(FTFKT+λW)ij(FTFWKKT+λ1d×dW)ijKjiKji(WTFTF)jiWTFTFWKji

综上所述,作者提出算法 1:精炼数据算法:

attachments/Pasted image 20240123193415.png|575

算法 2:AdaBoost 算法

attachments/Pasted image 20240123193501.png|575

2.2.5. 实验验证

作者没有做消融实验验证他们的特征提取是否真正发挥了作用,也没有验证 AdaBoost 是否比其他模型优越。

2.2.6. 数据形式

本文使用了多个数据集,这里介绍其中一种电影评分数据集 MovieLens 的形式作为参考:

  1. 评分数据,包含字段:用户 ID,电影 ID,评分,时间戳
  2. 电影标签,包含字段:用户 ID,电影 ID,用户自定义标签(由单词或短语构成),时间戳
  3. 电影数据,包含字段:电影 ID,电影名称,题材(如动作,喜剧等等)

推荐系统的模型将评分作为标签,其他数据通过特征工程处理为学习数据,通过模型进行学习。

2.2.7. 讨论与结论

2.3. 个人评价

创新点一般,两个点都是基于已有方法构建的,没有做充分的消融实验。但是该方案主要基于数学方法和统计学习,比较简单且稳定可靠,的确适合实际场景落地。

3. 参考文献


  1. Wang, S., Pedrycz, W., Zhu, Q., & Zhu, W. (2015). Subspace learning for unsupervised feature selection via matrix factorization. Pattern Recognition, 48, 10–19. ↩︎ ↩︎ ↩︎