上QQ阅读APP看书,第一时间看更新
4.3 离线协同过滤算法的工程实现
虽然协同过滤算法原理非常简单,但是在大规模用户及海量标的物场景下,单机是难以解决计算问题的,我们必须借助分布式技术来实现大规模计算,让整个算法可以应对大规模数据的挑战。本节基于主流的Spark分布式计算平台相关的技术来详细讲解协同过滤算法的离线(批处理)实现思路(读者可以阅读本章参考文献[1],[2],[3],[4]来了解协同过滤算法原理及工业应用),同时会在下一节讲解在近实时场景下如何在工程上实现协同过滤算法。
要说明的是,这里只讲解基于标的物的协同过滤算法的工程实现方案,基于用户的协同过滤思路完全一样,不再赘述。
为了简单起见,我们可以将推荐过程拆解为两个阶段,先计算相似度,再为用户推荐。下面分别介绍这两个步骤的工程实现。