重磅!协同过滤算法被证实存在理论错误!

译文 精选
人工智能
推荐系统算法能够给公司带来巨大的流量,并且大幅度的减少营销费用。世界上最早的推荐系统来自施乐公司,David Goldberg 等人在 1992 年发明了基于用户的协同过滤算法。

译者 | 汪昊

审校 | 重楼

推荐系统算法能够给公司带来巨大的流量,并且大幅度的减少营销费用。世界上最早的推荐系统来自施乐公司,David Goldberg 等人在 1992 年发明了基于用户的协同过滤算法。几年之后,又有人发明了基于物品的协同过滤算法。在 21 世纪初期,矩阵分解算法被发明以前,协同过滤算法一直在推荐系统领域占据着主导地位。时至今日,协同过滤算法仍然被许多公司用作推荐系统的 baseline 算法,广为流行。

然而在 2024 年 5 月举行的 CCCE 国际学术会议上,研究人员发表了一篇题为 Collaborative Filtering is Wrong and Here is Why 的论文,指出协同过滤算法存在理论错误,因此是错误的算法。本文带读者一探这篇文章的究竟,希望对大家日后的技术工作有所帮助。

作者首先计算出协同过滤算法中用户-用户对之间的相似性,然后转换为距离,利用保距离算法将高维空间的用户向量(由用户给物品的打分构成)降维至 2 维平面。然后证明了下面 2 个引理:

引理1 :所有的用户向量分布在半径为 1 的圆圈内

证明:给定一个用户向量用户 i,协同过滤算法默认相似性取值在 [0.0, 1.0] 范围内,转换为距离之后距离数值取值仍然在 [0.0, 1.0] 范围内,也就是说,所有的用户向量都在以用户 i 位置中心,半径为 1.0 的圆圈内。

引理2 :所有的用户向量等价于半径为 0.5 的圆圈

证明:首先,用户向量集合中最大的距离是 1.0,因此所有的用户向量都分布在半径为 0.5 的圆内。其次,每个用户都有距离为1.0 的向量,因此,如果用户向量在圆的内部,和它距离为 1.0 的点将只能存在于圆的外部,出现矛盾。而每个用户在定义域内都有与它距离在 0 和 1 之间的所有点,因此用户向量和半径为 0.5 的圆圈是一一对应的关系。

下面我们介绍一个重要的拓扑学定理:Poincare-Hopf 度数定理:

Poincare-Hopf 度数定理:在一个紧致、有向的流形上定义的向量场的奇点的度等于流形的欧拉示性数。

二维平面中半径为 0.5 的圆圈是一个紧致、有向的流形。我们现在在这个降维之后的用户向量定义域上构造一个向量场:假设有 N 个用户,那么在每一个用户 i 上,定义 N-1 个向量(sim(i,j)-C, sim(i,j)-C),其中 j 为 N-1 个用户中的任意用户,C 为给定常数。我们发现这些向量都与直线 y = x 平行,因此除非 C= 0.0 或者 C=1.0,我们都可以把向量场中的零点构造成鞍点。根据 Poincare-Hopf 度数定理,这个向量场中零点的个数,不论 C 取什么值,只和圆圈的欧拉示性数有关。换言之,推荐系统定义域中,相似度等于某个常数的用户对的个数,只和圆圈的欧拉示性数有关,这显然在现实世界中是不成立的。

因为协同过滤的数据无关性,导致了协同过滤适用于各个不同的场景。然而,正因为协同过滤的数据无关性,才说明了它是一个错误的算法。

CCCE 的这篇论文从理论上推翻了协同过滤算法,给了推荐系统的理论基础沉重的一击。希望本文能给读者带来对相关领域不一样的思考:除了拼命的提升算法的效果,我们还应该认真思考算法的理论基础。

译者介绍

汪昊,前达评奇智董事长兼创始人。在 ThoughtWorks、豆瓣、百度和趣加等公司有超过 13 年的技术和技术管理经验。成功上线过包括豆瓣小组推荐、豆瓣机器学习算法库、联想电商推荐、网易段子、趣加游戏礼包推荐等10余款科技产品。在国际学术会议和期刊发表论文 44 篇,获得最佳论文奖 1次(IEEE SMI 2008)、最佳论文报告奖4次(ICBDT 2020、IEEE ICISCAE 2021、AIBT 2023、ICSIM 2024)。2006 年ACM/ICPC 北美落基山区域赛金牌。

责任编辑:华轩 来源: 51CTO
相关推荐

2020-06-28 07:30:00

推荐算法推荐系统

2017-04-27 18:09:26

item embedd推荐系统算法

2021-11-15 12:45:44

协同过滤算法架构

2013-10-18 17:42:59

2021-11-25 09:18:44

Windows 11操作系统微软

2022-07-20 23:04:59

矩阵分解算法Spark

2019-05-05 09:00:00

数据分析算法推荐系统

2016-08-18 01:36:14

协同过滤推荐电影用户

2018-03-23 11:33:56

协同过滤程序算法

2023-10-31 16:46:45

2017-02-05 21:02:44

大数据深度学习推荐系统

2024-03-11 08:00:00

位置偏差算法矩阵分解算法

2018-05-21 08:22:14

自编码器协同过滤深度学习

2024-07-23 08:00:00

2020-06-29 07:00:00

推荐算法推荐系统

2017-06-29 09:15:36

推荐算法策略

2017-07-26 17:25:22

机器学习SparkAPI

2021-07-15 13:31:45

物联网安全物联网IOT

2022-04-26 13:53:26

物联网安全黑客

2020-07-17 08:40:47

K8SServicePOD
点赞
收藏

51CTO技术栈公众号