生产型机器学习系统:要提出的问题

本课将重点介绍您应针对生产系统中的数据和模型提出的问题。

每项功能是否实用?

您应持续监控模型,以移除对模型预测能力贡献不大或没有贡献的特征。如果该特征的输入数据突然发生变化,模型的行为也可能会以不理想的方式突然发生变化。

另请考虑以下相关问题:

  • 该功能的实用性是否足以证明添加该功能的费用?

我们总是想向模型添加更多特征。例如,假设您发现添加一项新特征后,模型的预测结果略有改进。预测结果略好一点显然比略差一点要好;不过,额外的功能会增加您的维护负担。

您的数据源是否可靠?

以下是针对输入数据的可靠性询问的一些问题:

  • 信号是否始终可用?信号来源是否不可靠?例如:
    • 信号是否来自在高负载下崩溃的服务器?
    • 信号是否来自每年 8 月都去度假的用户?
  • 计算模型输入数据的系统是否会发生变化?如果是,请执行以下操作:
    • 频率如何?
    • 您如何得知该系统发生变化?

不妨考虑为您从上游进程收到的数据创建自己的副本。然后,仅在您确定可以安全地升级到上游数据的下一个版本时,才执行升级。

您的模型是否属于反馈环?

有时,模型可能会影响自己的训练数据。例如,某些模型的结果反过来会(直接或间接地)成为该模型的输入特征。

有时,一个模型可能会影响另一个模型。例如,假设有以下两个用于预测股票价格的模型:

  • 模型 A,这是一个效果不佳的预测模型。
  • 模型 B。

由于模型 A 存在 bug,因此错误地决定购买股票 X。这些购买交易会推高股票 X 的价格。模型 B 使用股票 X 的价格作为输入特征,因此可能会得出一些关于股票 X 价值的错误结论。因此,模型 B 可以根据模型 A 的错误行为来买入或卖出股票 X 的股票。反过来,模型 B 的行为可能会影响模型 A,可能会触发郁金香热潮或导致公司 X 的股票价格下跌。

练习:检查您的理解情况

以下哪三种模型容易受到反馈环的影响?
交通状况预测模型 - 使用海滩上的人群规模作为特征之一预测海滩附近各个高速公路出口的拥堵情况。
有些准备前往海滩的游客可能会根据交通状况预测结果制定出行计划。如果海滩上人群规模很大且交通预计会拥堵,则许多人可能会另做打算。这样一来,海滩上游客的数量就会减少,进而使模型作出交通畅通的预测,然后又会导致前往海滩的游客增加,这样,这个循环就会反复下去。
图书推荐模型 - 根据小说的受欢迎程度(即图书的购买量)向用户推荐其可能喜欢的小说。
图书推荐有可能吸引用户购买,而且这些额外销量将作为输入项反馈回模型,从而使该模型更有可能在将来推荐同样的图书。
大学排名模型 - 将选择率(即申请某所学校并被录取的学生所占百分比)作为一项学校评分依据。
此模型的排名可能会提高学生对高评分学校的兴趣,从而使这些学校收到的申请增加。如果这些学校继续录取相同数量的学生,则选择性将会提高(录取的学生所占的百分比将会降低)。这将提升这些学校的排名,从而进一步提高潜在学生的兴趣,以此类推...
一种选举结果模型,通过在投票结束后对 2% 的选民进行调查,预测市长竞选的胜出者。
如果此模型直到投票结束之后才发布其预测,则其预测结果不可能影响投票者的行为。
住宅价值预测模型 - 使用建筑面积(以平方米为单位计算的面积)、卧室数量和地理位置作为特征预测房价。
快速更改房屋位置、建筑面积或卧室数量以响应价格预测是不可能的,因此不可能形成反馈环。不过,面积和卧室数量之间可能存在相关性(面积较大的住宅可能有更多房间),因此可能需要将这两者区分开来。
用于检测照片中人物是否在微笑的面部属性模型,该模型会定期使用每月自动更新的照片库数据库进行训练。
此处没有反馈环,因为模型预测不会对照片数据库产生任何影响。不过,输入数据的版本控制在这里是一个问题,因为这些每月更新可能会对模型产生不可预见的影响。