刷短视频停不下来?购物网站总能猜中你的心思?背后其实都是推荐算法在起作用。很多人想了解推荐系统背后的原理,尤其是正在做相关开发或研究的开发者,常会去翻最新的论文找思路。今天就聊几篇在实际应用中影响较大的推荐算法论文,适合想深入技术细节的朋友参考。
协同过滤的经典之作:Matrix Factorization
说到推荐算法,绕不开矩阵分解(Matrix Factorization)。这篇由Yehuda Koren等人发表在IEEE上的文章,把用户和物品映射到低维隐向量空间,通过内积预测评分。它在Netflix Prize比赛中大放异彩,至今仍是很多系统的基线模型。
import numpy as np
def matrix_factorization(R, P, Q, K, steps=5000, alpha=0.0002, beta=0.02):
for step in range(steps):
for i in range(len(R)):
for j in range(len(R[i])):
if R[i][j] > 0:
eij = R[i][j] - np.dot(P[i,:],Q[:,j])
for k in range(K):
P[i][k] = P[i][k] + alpha * (2 * eij * Q[k][j] - beta * P[i][k])
Q[k][j] = Q[k][j] + alpha * (2 * eij * P[i][k] - beta * Q[k][j])
return P, Q
深度学习时代的转折点:Wide & Deep
谷歌在2016年提出的Wide & Deep模型,首次将记忆性(wide部分)和泛化能力(deep部分)结合。你在用App时点击过某类商品,系统既能记住这个偏好,又能推测你可能喜欢相似品类,这就是它的思路。现在很多电商后台还在沿用这种结构。
序列行为建模:DIEN 提升点击率
用户的行为是有顺序的。比如先看手机壳,再看充电器,最后买了耳机。阿里提出的DIEN(Deep Interest Evolution Network)用GRU结构捕捉这种兴趣演化过程,在真实场景中显著提升了CTR。如果你的推荐系统依赖用户历史行为,这类模型非常值得借鉴。
冷启动问题的新解法:GraphSAGE
新用户没数据怎么办?图神经网络提供了新思路。Stanford提出的GraphSAGE能在没有全局图的情况下生成节点嵌入,适用于动态变化的推荐场景。比如社交推荐中,新人加入后很快就能被纳入推荐链路。
这些论文不只是学术成果,很多已经落地到实际系统中。读一读它们的实现细节,往往能给自己的项目带来启发。与其盲目试错,不如站在已有研究肩膀上往前走几步。