本节书摘来自华章计算机《大数据架构和算法实现之路:电商系统的技术实战》一书中的第1章,第1.7节,作者 黄 申,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.7 更多的思考
上面几节中讲述了分类这种机器学习方法的基本知识,及其系统实现。不过在实际运用中,我们还需要注意以下几点。
- 合理对待分类的准确性。我们可以看到,无论是何种算法的预测,通常都不可能拥有100%的准确性。在实际运用中,可以结合具体情况灵活运用。例如,本章提到的业务需求:如何将商品放入适合的分类中。我们可以将其看作是一个多分类问题,根据分类的预测值,提供超过1个的分类候选。像之前提到的进口牛奶和非进口纯牛奶的例子,虽然机器无法完全准确地判定其属于两者中的哪一种,但如果同时提供了两者给商家选择,那么用户体验还是相当不错的。
- 标注数据的质量。现实中,由于数据里难免存在一些干扰因素,通常需要假设现有的商品分类信息(也就是标注的训练样本)绝大部分都是正确的。有了这个假设,设计者就可以忽略基于内容特征来分类的结果误差。如果观察发现数据质量达不到要求,无法满足这个假设,那么就不能使用这种自动分类的学习模型。
- 训练样本的数量。一般商品的类目都是分为多个层级的,如图1-32所示,一级类目是“食品、饮料、酒水”,二级类目是“糖果巧克力”,三级类目是“润喉糖”。越是细分的类目,其所包含的商品数量可能就会越少。这也许会导致训练样本不够,分类精度很差的情况。这种情形下,不建议对于过小的分类进行训练和预测。可以考虑对上级类目进行处理。
- 其他可用的表示法和特征。如果只采用文本本身的词包(Bag of Word)表示,有的时候无法获取非常高的精准度。举个例子,在1.6.5节所创建的实时性预测程序中,你输入“牛奶巧克力”和“巧克力牛奶”,系统给出的分类都是“巧克力”,如图1-33所示,这明显是不准确的。也许你会考虑到更复杂的表示方法,例如n元文法(n-gram)或词组,来描述单词出现的先后顺序。除此以外,不仅仅是商品本身的标题和详细描述,还有一些其他的数据可以帮助机器进行分类,例如用户进行关键词搜索的时候,其行为也提供了非常有价值的信息。我们将在第6章讲解有关搜索相关性优化的部分继续探讨这个有趣的话题。