作者简介
刘洋,1号店搜索部算法工程师,机器学习的爱好者和实践者。上海大学博士,在语义分析、知识发现有深入研究。
电子商务通过服务和商品给用户带来极致体验。其中,服务包括用户的浏览体验、配送体验和客服体验。而商品则包括了商品质量、商品价格以及商品丰富度等。
所谓知己知彼,及时了解友商的商品信息对于电商的发展至关重要。这其中,从海量的商品信息中发现商品间的匹配关系,特别是不同网站间的商品匹配关系,在商品定价、商品选品、类目挂靠等场景中发挥着基础性作用。
电商领域商品匹配问题的特点
1、不同于发现相似商品,发现完全匹配的商品要求商品中所有信息是一致的,没有冲突,可见商品匹配难度高。
2、我们通过商品标题进行商品匹配,商品标题文本短,每个词都很重要。有的时候多一个词、少一个词都可能导致是不匹配的。例如这两组商品,同样是因为“有机”这个词,上面一组商品是匹配的,下面的黑豆和有机黑豆缺是不匹配的。
目前各家网站运营的规范不一样,有的时候人也无法直接从标题中分辨出两个商品是否是匹配的。另外,在我们的场景中,一旦两个商品构成匹配关系,除非商品下架,两个商品的匹配关系不大可能会发生改变。
基于人工规则的商品匹配
通过规则的商品匹配,比较两个商品的主要信息,例如比较判断品牌、口味、重量等信息是否一致,如果都是一致的,则两个商品是匹配的。规则匹配每次都要去分析,两个商品信息中,匹配的有哪些,不匹配的有哪些,用什么规则可以进行区别。
基于特征工程的商品匹配
特征工程是把原始数据转变成特征的过程。这些特征能很好的描述这些数据,利用它们建立的模型在未知数据上的表现性能可以接近最佳性能。基于特征工程的商品匹配,是从两个商品标题中人工定义一些特征,比如从两个商品标题上的品牌是否一致、颜色是否一致、口味是否一致等维度进行打分,利用这些打分特征,通过监督模型进行训练和预测。
纯数据驱动的商品匹配
纯数据驱动的商品匹配,不去人工定义特征,而是将每个词都作为一个特征让模型去学习。如图所示,我们将商品标题中每个词都作为一个特征,特征的数量多,经独热编码后每个标题数据稀疏。
我们选取Factorization Machine(FM)模型,作为纯数据驱动方法使用的模型。因为商品匹配中两两词的特征组合有助于判断商品是否匹配,FM模型适合解决稀疏矩阵特征组合问题。FM模型将特征通过隐向量进行表示,其组合项的参数是两个特征的隐向量的点积,二次项参数个数远少于二阶多项式模型的参数数量,易于训练。另外,FM模型高效,可在线性时间训练和预测。
一组商品是否匹配构成一个样本。如果这两个商品是匹配的,标签是1,否则是0。两个商品标题切分词后的每个词都作为样本特征。同一个词有可能来自1号店商品标题,也有可能来自友商商品标题,这里作为两个不同的特征。
例如特征“480773:YHD_BRAND:康师傅”,480773是特征的编号,“YHD”表示来自一号店商品的特征,“BRAND”是特征的词性表明是品牌词,最后“康师傅”是具体的词。
利用原始FM模型去做纯数据驱动匹配的结果很差,基本处于不可用状态。需要进行优化。优化(1)将FM模型线性项部分去掉。因为线性项的意义是单个特征对商品匹配的贡献。而单纯从一个个特征来看,无法判断两商品是否匹配。于是,我们将线性项部分去掉。
在优化(1)的基础上,优化(2)限定FM模型的组合项(交叉项)部分,组合项的两个特征需要分别来自两个商品,一个商品下的两两特征不进行组合。因为单纯从某个商品下的特征组合,无法判断两商品是否匹配。经过优化,模型性能得到一定提升。
在上述优化基础上,优化(3)继续限定FM模型的组合项部分,组合项的两个特征需要是同一词性,两特征词性不一样不进行组合。因为不同词性的特征组合无法判断两商品是否匹配。经过优化,模型性能进一步得到提升。
针对商品匹配问题,先是去掉了FM模型的线性项,然后对模型的组合项进行了限制。本质上,是通过对问题的思考,人为地加了先验知识,更有针对性地优化模型。
基于上述模型的优化,优化(4)是对特征隐向量的优化。我们希望相同词的特征组合的交叉项系数要大,这就意味着它们的点积要大,两特征的隐向量距离要近。优化(4)将两商品中相同词使用同一隐向量表示,此时两个特征向量距离最近,构成的组合项打分要高。经过改进,模型的性能进一步得到提升。
纯数据驱动的商品匹配的优缺点:
展望
1号店采用了规则匹配、特征工程匹配、纯数据驱动匹配去解决商品匹配问题。目前多是基于文本信息,由于各家网站的运营规范不同,有时仅凭借标题等信息也无法判断两个商品是否匹配。后续期望加入商品图片等商品信息,通过异构信息,进一步提升商品匹配的准确率和召回率,帮助运营人员减少人工成本。