在学习推荐系统的时候,一方面搞不清楚推荐系统和机器学习的差别,一方面搞不清楚 CTR 预估和推荐系统的差别。。。这学的也太费劲了。。。
下面的答案来自知乎,这是链接,我从中选取了自认为说的比较有道理的几个答案。
答案一
正好在计算广告和推荐系统两个领域都有从业经验,就答一下这个问题。
题目问的是CTR和推荐算法的“本质”区别,那么我们就得往“本质”上说,什么算法原理上的区别,系统设计上的区别,应用场景上的区别,那怎么算本质的区别呢?顶多算是方法上的区别。
CTR和推荐算法的本质区别只能有一个,就是
CTR最终预测的是那个有物理意义的数值Click Through Rate;
推荐算法最终产生的是一个推荐列表,是一个item的相对位置。
正是因为这样的本质区别,才衍生出了后续的差别。比如我们说协同过滤,为什么这是一个推荐算法,不能是一个CTR模型?就是因为协同过滤是通过相似性得到一个推荐列表,而相似性本身并没有CTR的物理含义。
有同学说CTR和推荐算法都有召回层,排序预估层,这算什么CTR算法和推荐算法的联系呢,这顶多算是计算广告系统和推荐系统的区别联系。
当然CTR预估模型可以用于推荐系统,因为推荐系统把CTR预估模型产生的CTR值当作排序的依据,但我们在本质上要明白,推荐系统并不care那个排序依据有没有物理意义。
反过来,无法预测CTR的推荐算法并不能直接应用在计算广告系统中,因为计算广告系统需要CTR预估值有精准的物理意义来参与bidding,预算控制等模块,这里仅有相对位置的关系是远远不够的。
答案二
ctr预估只是推荐系统中的一环。一般推荐系统包括召回,精排(ctr预估),rerank(机制策略)。
召回和精排的打分集合是不一样的。召回针对的是全部item,而精排针对的是召回输出的item。因此召回一般是在全部item集合上构建训练样本,而精排一般是基于展现样本来构建训练样本,而这部分样本本身是有偏的。即使精排有能力对全体item进行打分,由于只基于展现样本训练,对于没有展现过的item,预估会有偏差,可能会有问题。因此现阶段需要依赖召回通过各种召回方式来对item进行过滤筛选。但是后面算力足够了,这个问题是不是就不能解了呢?我觉得未必不能解。只不过在算力还没达到的时候,大家的精力暂时不在这个地方。另外推荐系统的排序目标一般是多种多样的,以阿里电商推荐为例,一个主要排序目标是gmv(ctr×cvr×price),同时要兼顾用户体验,考虑多样性等指标,这些仅仅靠一个ctr预估模型是无法做到的。