如何使用协同过滤来预测用户的行为?
How to use collaborative filtering to predict users by their behavior?
这似乎是一件很奇怪的事情,但是如何通过his/her推荐来预测某个用户?
示例:
也许,我们正在做一个关于用户电影评分如何随时间变化的实验。
我们在第一年(2019 年)和第二年(2020 年)对相同的用户和电影进行了调查。
但是我们的数据库崩溃了,所以我们只有第二年的用户推荐,不知道是谁推荐的
我们有:第一年的用户推荐矩阵,像这样:
和第二年的用户推荐矩阵,但没有 'target' 列:
所以,通过第一年的数据,我们要recover/predict 'target'列.
通常,协同过滤用于预测电影评分,但这是一个逆向问题。
协同过滤还能用吗?
如果是,应该对算法进行什么样的交互才能解决问题?
或者是否有其他方法或 ML 算法可以做到这一点?
谢谢!
P.S.: 如果你能附上 Python 类似任务的例子,那就太好了!
很抱歉没有将真实的数据和任务附加到这个 post,我确实不能这样做有很多原因:)
可能有几种方法可以解决这个问题,但我会将其视为 assignment problem。您基本上想为用户分配 2020 年的电影评级。为此,您必须:
定义为用户分配电影评级的成本。这可以通过定义 2020 年电影评级和 2019 年电影评级之间的距离函数来完成。一个例子可以是 L2-Norm(欧氏距离)。因此,将 2020 年电影评分 0 ([1, 2, 4, 4, 6]
) 分配给用户 id_0(2019 年评分 = [1, 1, 3, 5, 6]
)将花费 sqrt(3)
使用您定义的距离函数构建一个矩阵,反映每个用户与 2020 年电影评分的每一行之间的距离(分配成本)
为用户找到 2020 年电影评级的最佳分配(成本最低)
这似乎是一件很奇怪的事情,但是如何通过his/her推荐来预测某个用户?
示例:
也许,我们正在做一个关于用户电影评分如何随时间变化的实验。
我们在第一年(2019 年)和第二年(2020 年)对相同的用户和电影进行了调查。
但是我们的数据库崩溃了,所以我们只有第二年的用户推荐,不知道是谁推荐的
我们有:第一年的用户推荐矩阵,像这样:
和第二年的用户推荐矩阵,但没有 'target' 列:
所以,通过第一年的数据,我们要recover/predict 'target'列.
通常,协同过滤用于预测电影评分,但这是一个逆向问题。
协同过滤还能用吗?
如果是,应该对算法进行什么样的交互才能解决问题?
或者是否有其他方法或 ML 算法可以做到这一点?
谢谢!
P.S.: 如果你能附上 Python 类似任务的例子,那就太好了!
很抱歉没有将真实的数据和任务附加到这个 post,我确实不能这样做有很多原因:)
可能有几种方法可以解决这个问题,但我会将其视为 assignment problem。您基本上想为用户分配 2020 年的电影评级。为此,您必须:
定义为用户分配电影评级的成本。这可以通过定义 2020 年电影评级和 2019 年电影评级之间的距离函数来完成。一个例子可以是 L2-Norm(欧氏距离)。因此,将 2020 年电影评分 0 (
[1, 2, 4, 4, 6]
) 分配给用户 id_0(2019 年评分 =[1, 1, 3, 5, 6]
)将花费 sqrt(3)使用您定义的距离函数构建一个矩阵,反映每个用户与 2020 年电影评分的每一行之间的距离(分配成本)
- 为用户找到 2020 年电影评级的最佳分配(成本最低)