最近工作上一直在做推荐系统的项目,与此同时,自己也同时在学习信贷风控方面的知识,为自己之后的职业发展多做打算。推荐系统和信贷风控两个场景都可以利用机器学习,从大批量数据中学习到用户行为模式,来进行后续用户行为的预测。在学习过程中,自己也发现两者在应用机器学习上存在一些差异,这篇文章整理了这些差异。
样本
样本数量上,信贷风控的样本来源于用户借款后的逾期情况,而推荐系统样本来源于用户在APP的行为,一个用户可以被曝光多条item、点击多条item,每个用户每条item都算单独一条样本,这样导致信贷风控和推荐系统在模型训练样本数量级上会有差异。样本数量上的差异进而导致模型选型上的差距——深度推荐模型在互联网行业搜光推场景上被广泛采用,一部分原因是大数据量的支撑。
特征
信贷风控和推荐系统一个比较大的场景差异是,信贷风控只需要对信贷申请者进行预测,输入到模型侧的信息只有单方面申请者的信息,而推荐系统需要关注物品与用户相互匹配的情况,输入到模型侧的信息需要两方面用户侧和物品侧的信息。这导致推荐系统里面特征之间信息交叉的要求比较大(e.g用户的兴趣与物品属性的交叉),所以推荐系统很多深度模型在结构上强调特征embedding的交叉。
另外,推荐系统效果在特征方面一个很重要的提升方式是,采用时效性更高的特征(e.g. 用户最近浏览过的商品类别),而信贷风控申请者的特征在短期基本不会改变的。
不同于推荐系统基本上只用到公司内部记录的用户行为日志数据,信贷风控还会用到外部的数据,比如通过接口调用外部公司的用户信用分等,这些数据也会作为特征输入到模型中,外部数据的引入使得构建模型时会多出一些工作,例如外部数据的评估,外部数据失效后的备用特征、备用模型替换后评估矫正工作等。
模型
因为业务场景的特殊性,信贷风控对于模型的解释性上有比较高的要求,因此更加“黑盒”的深度模型往往不被采用,相反更加经典的模型例如逻辑回归、决策树更有机会被用到。相反,在推荐系统领域,因为算力增加、样本数据量巨大,主流互联网公司推荐系统基本上都采用深度模型。此外深度模型因为自身的灵活性可以在模型结构上适配各种任务、各种类型数据,比如多目标训练、序列建模等,这些在互联网推荐系统里更加常见,而在信贷风控不太多见。
其它
不论是信贷风控还是推荐系统,使用机器学习模型只是其中一个环节,在模型之外信贷风控和推荐系统各自的处理有所不同。信贷风控模型输出结果往往会作为申请者的信用分数,这里面会涉及到模型分数校准的工作,标准分的转换工作,cut-off选择。推荐系统模型输出的item分数,会作为排序的一个依据,按分数由高到底排序,在呈现给用户之前,会有一些业务规则调整排序结果,例如打散规则(相同主题的新闻不能排在一块),强插规则(广告位置插入指定内容)等。
推荐系统除了模型打分外,还有一些其它方面的工作:前面在讲到特征时,提到推荐系统大体上说包括两大方面,用户和物品,对于同一个用户不可能对系统内所有物品进行打分做排序,因此在送入机器学习模型打分前,还需要有一个召回步骤,筛选出一批用户潜在感兴趣的物品;此外,一个经典的推荐系统问题是推荐系统的冷启动,即在用户/物品/整个系统没有数据积累的情况下,如果进行推荐;更宏观的,像内容平台这样的推荐系统里面除了内容和用户两方面外,还需要考虑内容创作者的因素,如果头部创作者占据大部分曝光,可能会打击中腰部创作者的积极性,不利于推荐系统整个生态,长期生态问题也是一个成熟的推荐系统需要考虑的。这些问题都或多或少与推荐系统需要关注用户、物品两方面有关系,而信贷风控只需要关注单侧用户的信用风险,因此模型之外的环节相对较少。