个性化推荐本质上是一个主动帮助目标用户找到目标商品的过程,商品在被推荐系统呈现到用户面前之前,往往经历以下几个步骤:
初步召回进入候选池——按用户喜爱程度/消费意愿大小排序——在此基础上按人工规则策略重排序——以某种展示形式推出过程。
大家耳熟能详的协同过滤、矩阵分解、基于内容的CB等推荐法指的都是在物品初步召回进入候选池这个过程中使用的方法。
其中协同过滤是个性化推荐最基本的方法,也是本文要讲解的方法。
其他方法的理解可等待该系列的后续文章
产品经理的推荐总结(三)——详细理解以用户画像为主的基于内容的推荐算法
产品经理的推荐总结(四)——规则与策略在推荐中的应用与作用
早期的协同过滤包含以用户为基础的协同过滤,即user-based的协同过滤(user-cf)和以物品/项目为基础的协同过滤,即item-based的协同过滤(item-cf)。
无论是user-cf还是item-cf都统称为以记忆为基础(Memory based)的协同过滤。
在后来的Netflix竞赛中,涌现了基于矩阵分解的算法,这种算法被广泛应用,其模型被称之为LFM模型,即为隐因子或者隐语义模型。
协同过滤一路发展过来,获得了很多拓展和补充。
一.如何理解以及区分同以记忆为基础的user-cf和item-cf?
这种算法的思想是这样的:推荐系统有两个服务对象,一个是用户,一个是物品,用户与物品之间是需要关联的桥梁媒介的,这个桥梁也只有两个选择,一个是用户,一个是物品。user-cf与item-cf的本质区别就在于是选择用户作为用户-物品关系的桥梁,还是物品作为用户-物品关系的桥梁。
以下用“目标用户”“目标物品”“桥梁用户”“桥梁物品”描述算法概念。
uesr-cf选择用户作为用户-物品关系桥梁
选择用户作为桥梁,需要完成两个步骤:
1.建立目标用户与桥梁用户的关系。
2.建立桥梁用户与目标物品的关系。
以上两步完成,便能成功的关联目标用户与目标物品。
目标用户与桥梁用户的关系如何确立:我们认为喜爱同样物品的用户具有共同之处,此处的“喜爱同样的物品”便是目标用户与桥梁用户的“相似”关系。
桥梁用户与目标物品的关系如何确定:我们认为桥梁用户喜爱某目标物品,此处的“喜爱”即代表桥梁用户与目标商品的关系。
示意图如下:
选择物品作为桥梁,也需要完成两个步骤:
1.建立目标用户与桥梁物品的关系。
2.建立桥梁物品与目标物品的关系。
以上两步完成,便能成功关联目标用户与目标物品。
这里目标用户与桥梁物品,桥梁物品与目标物品的关系,跟上面的有相似之处。
目标用户与桥梁物品的关系如何确立:我们认为目标用户喜爱桥梁物品,此处的“喜爱”即代表目标用户与桥梁商品的关系。
桥梁物品与目标物品的关系如何确定:我们认为被同样用户喜爱的物品也会有共同之处,此处“被同样用户喜爱”便是桥梁物品与目标物品的“相似”关系。
示意图如下:
对比两个图可以很清晰的看出,基于记忆的协同过滤的原理都存在非常惊人的相同之处,这种相同之处可以抽象出统一的逻辑,在这种逻辑的具化过程中,两种协同过滤泽呈现出具有对称美感的异同之处。
相同之处一:
都需要建立目标用户与目标商品之间的关系。
异同之处一:
user-cf 中间关系桥梁为“user”。
item-cf 中间关系桥梁为“item” 。
相同之处二:
相同类型的目标的关系靠共同喜爱的物品或被共同用户喜爱,不同类型的目标关系靠用户对物品的单项喜爱。
异同之处二:
user-cf 相同类型的资源关系体现在目标用户与桥梁用户之间,靠“共同喜爱的商品”建立。
item-cf 相同类型的资源关系体现在桥梁物品与目标物品之间,靠“被共同的用户喜爱”建立。
不同类型的资源关系,都指的是用户资源与物品资源的关系,靠“用户单向喜欢物品”建立。
相同之处三:
无论是user-cf还是item-cf,使用到的都是用户的行为数据,“喜爱”可以代表“点击”“收藏”“购买”等行为,并不涉及用户或者物品的内容属性数据。
两种基于记忆的协同过滤在使用场景上有各自的优势和劣势,为什么会存在这种优势与劣势,大家可以试试根据原理图分析一下。
二.如何理解基于矩阵分解的lfm模型
如果我们能得到一个用户-物品的评分矩阵,包含所有用户、所有物品,以及用户与物品一对一的单向打分。那就能轻松的完成将目标商品推荐给目标用户的目的。而在实际收集数据的过程中,发现每个用户的行为有限,因此只能得到一张稀疏的用户对物品打分表,如下图所示。
LFM模型的思想是将每个用户喜欢某个物品拆成两个环节:第一个环节是某个用户喜欢某种元素,第二个环节是这个元素被某个物品拥有。这里的“元素”不需要人为标注与构建,称之为“潜在因子”。
通过这个理论,采用矩阵分解的方法将用户-物品矩阵拆分“用户-潜在因子”矩阵”和“潜在因子-物品”矩阵,求解得到潜在因子和用户、物品的关系,将剩余的“空白打分栏”补充完整,就是lfm模型要解决的问题。
以上就是推荐方法中最常用的协同过滤法。
网友评论