微软发布机器学习框架ML.NET 0.8,以PFI技术增加模型可解释性

微软更新了开源跨平台机器学习框架ML.NET,发布0.8版本,本次更新主要有四个部分,除了支持新的推荐场景,也以特征重要性增加了模型的可解释性,还让开发者能预览内存内数据集,提升整体可调试性,另外,ML.NET 0.8也强化了一系列API功能。

ML.NET允许开发者创建与使用常见使用场景的机器学习模型,进行情緒分析、问题分类、预测、推荐、欺诈侦测以及图像分类等工作,微软在这次更新更扩张了ML.NET 0.8可以应用的推荐场景。推荐系统可以为产品目录、歌曲或是电影等产品产生推荐列表,在许多网络应用已经广泛的使用这类技术,而ML.NET使用矩阵分解(Matrix Factorization)和场景分解机(Field Aware Factorization Machines)的推荐方法来实现推荐系统,通常场景分解机可以用在比矩阵分解更普遍的使用案例,也能传递额外的元数据。

而在ML.NET 0.8中,微软为矩阵分解增加了额外的推荐场景,现在开发者可以借由产品ID以及共同购买产品的ID推荐产品,也就是说,现在即便只有商店历史订购数据,依然可以使用ML.NET提供产品建议。微软提到,这是一种常见的使用场景,因为多数时候推荐系统并没有可用的评分,而在ML.NET 0.8中,利用历史购买数据依然可以向用户提供,通过经常购买产品所产生的建议列表。

此外,微软在ML.NET 0.8加入了一个方便的调试功能,开发者通过预览数据就能进行调试。在多数的情况下,开发者使用工作管线加载数据时,能审查加载到ML.NET DataView的数据,对调试很有帮助,确保数据经过各种转换步骤后,其处理仍在掌握之中。开发者现在可以审查DataView构架,只要将鼠标停留在IDataView对象上,就能扩展并审查构架属性。

在ML.NET0.8版本中,微软为ML.NET加入了内部使用来解释模型的API,帮助机器学习开发人员,更好地理解模型的整体特征重要性,并创建可被解释的模型。在创建机器学习模型的时候,开发者通常无法简单的预测和评价准确性,而总体特征重要性可以帮助开发者了解,对于整体模型而言最重要的特征是哪些,以便进行良好的预测,例如预测汽车价格时,里程和品牌可能比起颜色还要重要许多。

微软通过置换特征重要性(Permutation Feature Importance,PFI)技术,以实现整体特征重要性评价,PFI会对整个使用案例,将特征值设置为随机值,以评价该特征对模型的影响。微软表示,PFI方法的优点在于它与模型本身无关,可用于评价各种模型,且可以用于任何数据集,而不仅是训练数据集。

ML.NET 0.8也改进了一系列API相关功能,现在开发者可以在DataView中使用过滤器,针对用于训练模型的数据进行过滤,像是在发生数据异常的情况,删除特定数据列中特定边界之外的数值。开发者可以使用FilterByColumn()等过滤器API完成相关的功能。

另外,当估算器要多次迭代数据,开发者也可以选择使用缓存API,暂时存储数据,减少从文件中读取数据的频率,以加快整体训练的执行速度。开发者也可以在IDataView(IDV)中,激活二进制格式保存与加载数据,以加速数据处理效率,微软举例,开发者在将文本特征转为稀疏矢量时,可以存为二进制格式,方便其他开发者重复进行实验。