3. 采集策略设计:主动采集与被动采集、随机采样与困难样本挖掘、平衡探索与利用

好,咱们进入第三章。这一章我打算聊聊采集策略的设计。说白了,就是解决一个核心问题:数据从哪来,怎么来,才能让模型学得又快又好

我在做数据 pipeline 的时候,发现很多团队一上来就闷头采数据,采了一大堆,结果模型效果还是上不去。为什么?因为策略不对。你想想看,喂给模型的数据,如果全是它已经会的,那它永远学不到新东西。反过来,如果全是它完全看不懂的,那它直接崩溃。

所以,这一章我们拆成三个部分来讲:主动采集 vs 被动采集、随机采样 vs 困难样本挖掘,以及如何平衡探索与利用。

3.1 主动采集 vs 被动采集:谁在驱动数据流?

先问一个问题:你的数据是用户主动给的,还是系统偷偷记下来的?

这两种方式,我分别叫它「主动采集」和「被动采集」。它们没有绝对的好坏,但适用场景完全不同。

主动采集

主动采集,就是用户明确知道自己在贡献数据。比如:

  • 用户给搜索结果点「赞」或「踩」
  • 用户填写反馈表单:「这个回答有用吗?」
  • 用户手动标注图片中的物体

这种数据质量通常很高,因为用户是有意识地在表达偏好。但问题也很明显——采集成本高。用户凭什么帮你干活?你得设计激励机制。

我的经验: 我曾经在一个推荐系统项目里,给用户弹窗问「这个推荐准不准?」。结果点击率不到 0.5%,而且点进来的用户大多是来骂街的。后来我改成在用户完成一次购买后,轻量地问一句「这次推荐帮到你了吗?」,点击率直接翻到 8%。
关键点:时机比形式更重要

被动采集

被动采集,就是系统在后台默默记录用户行为,用户甚至不知道。比如:

  • 用户点击了哪个链接
  • 用户在某个页面停留了多久
  • 用户输入了哪些关键词但没点结果

这种数据量大、成本低,但噪声也大。用户点了一个链接,不代表他喜欢这个结果——可能只是手滑。用户停留时间长,也不代表内容好——可能只是去接了个电话。

注意: 被动采集容易踩的坑是「相关性不等于因果性」。我曾经看到一个团队把「用户停留时间」作为正向信号,结果模型学出来全是长文章,用户根本看不完。后来我们加入了「滚动深度」和「点击后是否返回」作为辅助信号,才把这个问题压下去。

所以,我的建议是:主动采集用来做「定性验证」,被动采集用来做「定量覆盖」。两者结合,才是王道。

3.2 随机采样 vs 困难样本挖掘:数据不是越多越好

好,数据来源搞定了。下一个问题:采哪些数据?

很多人觉得,随机采样最公平。嗯,从统计学的角度讲,随机采样确实能保证无偏。但问题是,模型训练不是做统计调查。模型需要的是「有信息量的样本」。

随机采样

随机采样就是无差别地从数据池里抽。优点是简单、无偏。缺点是:

  • 大量样本是「简单样本」,模型早就学会了
  • 少量「困难样本」可能永远抽不到
  • 训练效率低,浪费计算资源

举个例子。你在训练一个垃圾邮件分类器。随机采样 1000 封邮件,可能 950 封都是「正常邮件」,50 封是「垃圾邮件」。模型学完,准确率 95%,看起来很漂亮。但实际部署时,它把真正的垃圾邮件全放过去了——因为训练时根本没见到多少垃圾邮件样本。

困难样本挖掘

困难样本挖掘,英文叫 Hard Negative Mining 或 Hard Example Mining。核心思想是:专门去找模型当前最容易犯错的那些样本

怎么做?流程一般是:

  1. 用当前模型对未标注数据做一次预测
  2. 找出预测置信度最低的样本(模型最不确定的)
  3. 把这些样本送去人工标注
  4. 用新标注的数据继续训练模型

这样迭代几轮,模型会越来越强。因为它在不断「啃硬骨头」。

核心公式: 困难样本 = 模型预测概率接近 0.5 的样本(二分类场景)
或者:困难样本 = 模型预测结果与真实标签差距最大的样本

我在一个图像识别项目里用过这招。一开始模型对「猫」和「狗」的区分准确率只有 82%。我们随机采了 5000 张图去标注,效果提升到 85%。后来改用困难样本挖掘,只采了 1000 张模型最不确定的图,准确率直接跳到 91%。同样的标注预算,效果差了三倍

3.3 平衡探索与利用:强化学习视角下的采集策略

最后这部分,我想聊聊一个更高级的话题——探索与利用的平衡。这个词你可能在强化学习里听过,但它在数据采集里同样重要。

简单解释一下:

  • 利用(Exploitation):采那些「已知能带来好效果」的数据。比如,模型已经知道某些样本很难,那就继续采类似的。
  • 探索(Exploration):采那些「不确定有没有用」的数据。比如,随机去采一些从未见过的样本类型。

如果只利用不探索,模型会陷入局部最优。如果只探索不利用,模型永远学不到深度。

怎么平衡?我常用的策略有三种:

策略 描述 适用场景
ε-贪心 以 ε 的概率随机探索,以 1-ε 的概率选择当前最优 初期 ε 设大一点(0.3),后期逐渐减小到 0.05
UCB(上置信界) 优先采那些「不确定性高」且「潜在收益大」的样本 样本量充足,需要精细控制时
汤普森采样 用贝叶斯方法,根据后验分布随机采样 数据稀疏,需要概率建模时

我个人最常用的是 ε-贪心,因为它简单、好解释。但要注意,ε 的衰减曲线很关键。我见过一个团队把 ε 设成固定值 0.1,结果模型训练到后期还在大量探索,收敛速度慢得离谱。后来改成指数衰减,效果好多了。

一个小技巧: 你可以把「探索」和「利用」做成两个独立的采集管道。利用管道跑困难样本挖掘,探索管道跑随机采样。最后按比例混合。这样既保证了效率,又不会错过新类型的数据。

3.4 知识体系总览

下面这张图,我把本章的核心逻辑画出来了。你可以把它当作一个决策流程图:

采集策略设计:核心决策流程 数据采集策略 主动采集 vs 被动采集 随机采样 vs 困难挖掘 用户主动反馈 系统后台记录 低置信度样本 高错误率样本 探索 vs 利用 平衡 ε-贪心策略 UCB / 汤普森采样 最终目标:用最少标注预算,获取最大模型收益

嗯,这张图基本把本章的脉络串起来了。从上到下,先决定数据来源(主动/被动),再决定采样方式(随机/困难),最后用探索与利用的机制来动态调整。

最后说一句:没有完美的策略,只有适合当前阶段的策略。项目初期多探索,中期多利用,后期再微调。这个节奏,你慢慢就会找到感觉。


公众号:蓝海资料掘金营,微信deep3321