第 33 条规则:如果您根据 1 月 5 日之前的数据生成模型,则根据 1 月 6 日及之后的数据测试模型。
一般来说,要衡量模型的效果,应使用在训练模型所有数据对应的日期之后的日期收集的数据,因为这样能更好地反映系统应用到生产时的行为。如果您根据 1 月 5 日之前的数据生成模型,则根据 1 月 6 日及之后的数据测试模型。您一般会发现,使用新数据时模型的效果不如原来好,但应该不会太糟。由于可能存在的一些日常影响,您可能没有预测到平均点击率或转化率,但曲线下面积(表示正分类样本的分数高于负分类样本的概率)应该非常接近。
第 34 条规则:在有关过滤的二元分类(例如,垃圾邮件检测或确定有趣的电子邮件)中,在短期内小小牺牲一下效果,以获得非常纯净的数据。
在过滤任务中,标记为负分类的样本不会向用户显示。假设您的过滤器在应用时可屏蔽 75% 的负分类样本。您可能会希望从向用户显示的实例中提取额外的训练数据。例如,如果用户将您的过滤器未屏蔽的电子邮件标记为垃圾邮件,那么您可能想要从中学习规律。
但这种方法会引入采样偏差。如果您改为在应用期间将所有流量的 1% 标记为“预留”,并向用户发送所有预留样本,则您可以收集更纯净的数据。现在,过滤器屏蔽了至少 74% 的负分类样本。这些预留样本可以成为训练数据。
请注意,如果过滤器屏蔽了 95% 或以上的负分类样本,则此方法的可行性会降低。即便如此,如果您希望衡量应用效果,可以进行更低比例的采样(比如 0.1% 或 0.001%)。一万个样本足以非常准确地评估效果。
第 35 条规则:注意排名问题中存在的固有偏差。
当您彻底改变排名算法,导致出现不同的排名结果时,实际上改变了您的算法以后会处理的数据。这时,就会出现固有偏差,您应该围绕这种偏差来设计模型。具体方法有多种。以下是让您的模型青睐已见过的数据的方法。
对覆盖更多查询的特征(而不是仅覆盖一个查询的特征)进行更高的正则化。通过这种方式,模型将青睐专门针对一个或几个查询的特征,而不是泛化到所有查询的特征。这种方法有助于防止十分热门的查询结果显示到不相关的查询中。请注意,这与以下更为传统的建议相左:对具有更多唯一值的特征列进行更高的正则化。
仅允许特征具有正权重。这样一来,就可确保任何好特征都比“未知”特征合适。
不选择只处理文档数据的特征。这是第一条规则的极端版本。例如,即使指定应用是热门下载应用(无论查询是什么),您也不想在所有地方都展示它。如果不选择只处理文档数据的特征,这一点很容易做到。您之所以不想在所有地方展示某个特定的热门应用,是因为让用户可以找到所有所需应用至关重要。例如,如果一位用户搜索“赏鸟应用”,他/她可能会下载“愤怒的小鸟”,但那绝对不是他/她想要的应用。展示此类应用可能会提高下载率,但最终却未能满足用户的需求。
第 36 条规则:通过位置特征避免出现反馈环。