对于计算广告系统,一个可以携带广告请求的用户流量到达后台时,系统需要在较短时间(一般要求不超过 100ms)内返回一个或多个排序好的广告列表;在广告系统中,一般最后一步的排序 score=bid*pctralpha
;其中 alpha 参数控制排序倾向,如果 alpha<1
,则倾向于 pctr,否则倾向于 bid;这里的核心因子 pctr 就是通常所说的点击率(predicted click through rate)。
对于推荐系统,也有类似的需求,当用户请求到达后台的时候,我们需要返回一个排序好的文章列表或者 feeds 列表。早期的推荐系统主要以协同过滤和基于内容的推荐为主,近年来推荐系统的主流形式也变成和广告类似的两步走模式:先召回一个候选队列,然后排序;在排序这一步有很多种不同的策略,比如 pair-wise 的一些分类算法之类,但更多还是类似 facebook、youtube 之类的计算一个分数,然后排序;这个分数里往往也少不了 item 的 pctr 这个关键因子。
- problem formulation:回归问题 vs 分类问题
第一种是将其看做一个分类问题;因为我们原始的日志是曝光和点击;通过简单的归约以后,把点击看做正样本,曝光看做负样本的话,基于一段时间的数据样本,可以训练一个分类器。形式化来说,假设用户 u、物品 i,上下文 c,曝光和点击类别 e,每个样本可以看成一个<u,i,c|e>
的元组;其中 e 的取值只有 0、1 两种,这时候对每一个用户、物品、上下文组合<u,i,c>,
需要一个模型来对其分类,是点击还是不点击;
另一种假设每个<u,i,c>
可以预测一个 ctr(0-1 之间的值),这时候就变成了一个回归问题。在实际业务中,不同的问题定义方式不仅决定了可以使用模型的范围,甚至决定了本质效果的差异。某个领域机器学习方法的进步,往往不只是模型的进步,有时候是先有问题定义的进步,然后才有模型和算法的进步;而问题定义的进步来源于对业务场景的理解。
原文地址:https://www.cnblogs.com/wzdLY/p/10132980.html