Using per-item Features|使用每项特征

bolin
发布于 2025-08-22 / 3 阅读
0
0

Using per-item Features|使用每项特征

一、用户—电影评分矩阵

862BB165-6061-452C-8A8D-D43F8517CC56.png

在推荐系统中,最常见的任务就是预测用户对物品(这里是电影)的评分。我们通常会用一个 用户—电影评分矩阵 来表示数据:

  • 代表不同的电影

  • 代表不同的用户

  • 矩阵中的值就是用户给电影的评分(比如 1 到 5 星)

在图示的例子中:

  • 有 4 个用户(Alice、Bob、Carol、Dave),记作 nu=4

  • 有 5 部电影(如 Love at lastRomance forever 等),记作 nm=5

  • 部分评分已知(数字),部分缺失(“?”),部分用户根本没有评分(标记为 0 或空格)


关键符号

  • r(i,j)
    这是一个指示函数:

    • 如果用户 j 对电影 i 进行了评分,则 r(i,j)=1

    • 否则 r(i,j)=0

  • y(i,j)
    表示用户 j 对电影 i 的实际评分(如果 r(i,j)=1 才有定义)。

例如:

  • r(1,1)=1,表示 Alice 对第一部电影有评分(5 星)。

  • r(3,1)=0,表示 Alice 没有对第三部电影评分。

  • y(3,2)=4,表示 Bob 对第三部电影给了 4 星。


推荐问题的本质

从这个评分矩阵可以看出,用户对大多数电影都没有打分(即矩阵非常稀疏)。
推荐系统的任务就是:

  • 根据已有评分,预测缺失的评分(图中的 “?” 位置)

  • 进而为用户推荐最可能喜欢的电影


生活化解释

想象你和朋友们在一个电影打分平台上:

  • Alice 特别喜欢爱情片,她给《Love at last》和《Romance forever》都打了高分。

  • Bob 更喜欢轻松搞笑的内容,他在《Cute puppies of love》上打了 4 星。

  • Carol 和 Dave 则偏爱动作片,他们对《Nonstop car chases》和《Swords vs. karate》评分都比较高。

在这种情况下,系统会发现:

  • Alice 没有给《Cute puppies of love》打分,但因为这部电影是典型的爱情题材,而她对类似电影的评分都很高,所以系统会预测她也会喜欢,并给出一个接近 5 星的预测分。

  • 同样,Dave 没有给《Swords vs. karate》打分,但因为他喜欢动作片,系统也会预测一个较高的评分。

这就是推荐系统利用 已知评分 去推测 未知评分 的过程。


二、为电影构建特征

6D2FFA29-F180-4F10-8BD2-3D2D8378E48C.png

在第一节中,我们把问题描述为“补全评分矩阵”,但那只是数据层面的表达。真正要让模型进行预测,就需要为每一部电影和每一个用户构建数学上的表示方式。


电影的特征向量

设每部电影都有一些可量化的特征(features),比如:

  • 浪漫元素 (romance)

  • 动作元素 (action)

我们可以用一个向量来表示电影的特征:
89A3B843-F8BA-4E44-BA74-2996818EC4D8.png

其中:

  • x1(i)​:电影 i 的浪漫程度(数值越高,越浪漫)

  • x2(i):电影 i 的动作程度(数值越高,越偏动作片)

例子:

  • 《Love at last》是一部浪漫爱情片,可以表示为 [0.9,0]

  • 《Nonstop car chases》是一部动作片,可以表示为 [0.1,1.0]

这样一来,每一部电影就从一个单纯的“名字”转化成了可计算的 特征向量


用户的偏好向量

用户在评分时体现的是他们的兴趣偏好。我们也用一个向量来表示:

B274B93C-F72C-46E9-99CC-4D7BA901FC54.png

  • w(j):用户 j 对每个特征的偏好权重

    • w1(j):对浪漫元素的偏好

    • w2(j):对动作元素的偏好

  • b(j):用户的整体偏置,表示这个人评分普遍偏高还是偏低


预测公式

给定用户 j 和电影 i,预测评分为:

1962D6CA-D8D1-4B9B-9824-66B1D47CEC96.png

这其实就是一个 线性回归模型

  • 用户参数 w(j),b(j)

  • 电影特征 x(i)

  • 点积加偏置后得到预测评分


例子计算

假设:

  • 用户 Alice 的参数是

A7F18042-C6CF-4ECF-A1B1-BE4A61E155FA.png

  • 表示她只喜欢浪漫片,对动作片没有兴趣。

  • 电影《Love at last》的特征是

BCA94F22-508B-420B-BB92-CFF4E278181D.png

则预测分数为:

99D48137-3AD1-4657-9136-8B8CB679DDFA.png

和实际评分 5 分非常接近,说明模型有效捕捉到了 Alice 的偏好。


三、单个用户的代价函数

9C933912-E41C-48B8-849B-D0DFC1895DBC.png

在第二节中,我们建立了预测公式:

1962D6CA-D8D1-4B9B-9824-66B1D47CEC96.png

它能计算用户 j 对电影 i 的预测评分。接下来,我们需要一种方式来衡量 预测评分和真实评分之间的差距,并据此更新用户的参数 w(j),b(j)


误差项

对用户 j 而言,我们只在他/她已经打过分的电影上比较预测和实际:

AA7D8C76-76FF-48F9-954E-0812F61DC675.png

  • 如果预测值接近真实评分,误差就小。

  • 如果预测值差距很大,误差就大。


均方误差 (MSE)

为了整体衡量用户 j 的预测准确性,我们采用均方误差:

C19D0F34-12D2-4353-AA28-FE7EE1E70EE4.png

解释:

  • 求和范围:仅在用户 j 确实打分过的电影 (r(i,j)=1) 上计算。

  • 平方:让误差为正,且惩罚偏差较大的预测。

  • 1/2 系数:为了在后续求导时简化公式。


正则化项

如果只最小化均方误差,可能会导致 w(j) 参数过大,造成过拟合。
因此我们引入 L2 正则化

DEE4EA87-3B7C-435C-925E-E9FC0A003EBD.png

解释:

  • 约束每个用户的参数规模,避免“过度依赖”某个特征。

  • λ 控制正则化强度:

    • λ 大 → 参数更小,更保守

    • λ 小 → 参数更自由,但风险更大


单用户的完整代价函数

综合上述两部分:

37D25CFF-8F9C-4495-B671-8036DBDCFB2C.png

含义:

  • 第一部分 → 确保预测尽可能接近用户 j 的真实评分

  • 第二部分 → 控制参数规模,提升泛化能力


直观理解

  • 对 Alice 而言,代价函数的目标是:找到一组参数 w(1),b(1),能最好地拟合她对所有已看过电影的评分

  • 这就像是在问:“怎样描述 Alice 的口味,才能既符合她看过的电影评分,又不会把她的偏好夸大到极端?”


四、所有用户的联合优化

2E6C4985-3248-46B0-858E-44393C4F1A5C.png

在第三节中,我们针对 单个用户 jj 定义了代价函数,用来学习他的偏好参数 w(j),b(j)
但在实际的推荐系统中,我们面对的是成千上万的用户,因此需要一个 全局的代价函数,同时学习所有用户的参数。


全局代价函数

综合所有用户:

FB49517A-340A-45CC-B972-FB62052A104C.png

解释:

  • 第一项:

    • 遍历 所有用户,并对他们打过分的电影计算预测误差。

    • 目标是让整个系统的预测都尽量准确。

  • 第二项:

    • 对所有用户的参数 w(j) 加上正则化约束。

    • 避免某些用户参数过大,保证整体模型的稳定性。


参数优化的目标

我们最终希望学到:

6233B684-0559-4D95-9FA9-5B5A2280D7B4.png

也就是说,每个用户都得到一个 个性化的参数向量和偏置,用于捕捉他的兴趣偏好。


意义与优势

  1. 统一建模

    • 所有用户的学习目标整合进同一个代价函数。

    • 这样可以保证用户之间共享同一组电影特征向量 x(i),增强模型的连贯性。

  2. 提升泛化

    • 如果某个用户的评分数据较少,模型仍可以通过其他用户的学习结果间接获益。

    • 这有助于缓解数据稀疏问题。

  3. 更精准的推荐

    • 优化后,每个用户都拥有专属的参数,能更好地预测缺失评分,从而推荐更符合其兴趣的电影。


举个例子

假设系统中有 1000 个用户:

  • 对于喜欢浪漫片的用户们,参数 w(j) 会自动学习到对 romance 特征 的权重较高。

  • 对于喜欢动作片的用户们,参数会学习到对 action 特征 的权重更大。

  • 对于混合型口味的用户,系统则能平衡这两种特征。

通过这种方式,推荐系统就能为不同兴趣的群体生成定制化预测。



评论