首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >干货 | 机器学习在1号店商品匹配中的实践

干货 | 机器学习在1号店商品匹配中的实践

作者头像
携程技术
发布2018-03-16 11:55:23
3.1K0
发布2018-03-16 11:55:23
举报
文章被收录于专栏:携程技术携程技术

作者简介

刘洋,1号店搜索部算法工程师,机器学习的爱好者和实践者。上海大学博士,在语义分析、知识发现有深入研究。

电子商务通过服务和商品给用户带来极致体验。其中,服务包括用户的浏览体验、配送体验和客服体验。而商品则包括了商品质量、商品价格以及商品丰富度等。

所谓知己知彼,及时了解友商的商品信息对于电商的发展至关重要。这其中,从海量的商品信息中发现商品间的匹配关系,特别是不同网站间的商品匹配关系,在商品定价、商品选品、类目挂靠等场景中发挥着基础性作用。

电商领域商品匹配问题的特点

1、不同于发现相似商品,发现完全匹配的商品要求商品中所有信息是一致的,没有冲突,可见商品匹配难度高。

2、我们通过商品标题进行商品匹配,商品标题文本短,每个词都很重要。有的时候多一个词、少一个词都可能导致是不匹配的。例如这两组商品,同样是因为“有机”这个词,上面一组商品是匹配的,下面的黑豆和有机黑豆缺是不匹配的。

目前各家网站运营的规范不一样,有的时候人也无法直接从标题中分辨出两个商品是否是匹配的。另外,在我们的场景中,一旦两个商品构成匹配关系,除非商品下架,两个商品的匹配关系不大可能会发生改变。

基于人工规则的商品匹配

通过规则的商品匹配,比较两个商品的主要信息,例如比较判断品牌、口味、重量等信息是否一致,如果都是一致的,则两个商品是匹配的。规则匹配每次都要去分析,两个商品信息中,匹配的有哪些,不匹配的有哪些,用什么规则可以进行区别。

  • 优点:易于干预,匹配错误的Case易于调整。
  • 缺点:当规则的树分叉到达一定量级时人工维护规则模型会变得很困难,并且树分叉的优先级难以判定。

基于特征工程的商品匹配

特征工程是把原始数据转变成特征的过程。这些特征能很好的描述这些数据,利用它们建立的模型在未知数据上的表现性能可以接近最佳性能。基于特征工程的商品匹配,是从两个商品标题中人工定义一些特征,比如从两个商品标题上的品牌是否一致、颜色是否一致、口味是否一致等维度进行打分,利用这些打分特征,通过监督模型进行训练和预测。

  • 优点:关注在特征和模型,选择的特征越好,模型越简单,最终性能也就越好。
  • 缺点:发现好特征比较困难,如果特征构建做的不好,会直接影响模型性能。

纯数据驱动的商品匹配

纯数据驱动的商品匹配,不去人工定义特征,而是将每个词都作为一个特征让模型去学习。如图所示,我们将商品标题中每个词都作为一个特征,特征的数量多,经独热编码后每个标题数据稀疏。

我们选取Factorization Machine(FM)模型,作为纯数据驱动方法使用的模型。因为商品匹配中两两词的特征组合有助于判断商品是否匹配,FM模型适合解决稀疏矩阵特征组合问题。FM模型将特征通过隐向量进行表示,其组合项的参数是两个特征的隐向量的点积,二次项参数个数远少于二阶多项式模型的参数数量,易于训练。另外,FM模型高效,可在线性时间训练和预测。

  • 训练样本

一组商品是否匹配构成一个样本。如果这两个商品是匹配的,标签是1,否则是0。两个商品标题切分词后的每个词都作为样本特征。同一个词有可能来自1号店商品标题,也有可能来自友商商品标题,这里作为两个不同的特征。

例如特征“480773:YHD_BRAND:康师傅”,480773是特征的编号,“YHD”表示来自一号店商品的特征,“BRAND”是特征的词性表明是品牌词,最后“康师傅”是具体的词。

  • 训练技巧
  1. 避免失衡的正负样本比例。我们的场景正负样本比例在1:70左右,训练中每轮都对负样本进行采样,使得每轮训练使用的正负样本比例在1:2、1:3;
  2. 随机梯度下降需要打乱样本顺序。对每轮训练使用的正负样本顺序都进行了shuffle。
  3. 确保训练充分。每轮训练后模型在训练集、测试集上的评价指标进行输出。
  • 纯数据驱动的商品匹配优化(1)——线性项部分去除

利用原始FM模型去做纯数据驱动匹配的结果很差,基本处于不可用状态。需要进行优化。优化(1)将FM模型线性项部分去掉。因为线性项的意义是单个特征对商品匹配的贡献。而单纯从一个个特征来看,无法判断两商品是否匹配。于是,我们将线性项部分去掉。

  • 纯数据驱动的商品匹配优化(2)——交叉项限定在两个商品的特征间进行组合

在优化(1)的基础上,优化(2)限定FM模型的组合项(交叉项)部分,组合项的两个特征需要分别来自两个商品,一个商品下的两两特征不进行组合。因为单纯从某个商品下的特征组合,无法判断两商品是否匹配。经过优化,模型性能得到一定提升。

  • 纯数据驱动的商品匹配优化(3)——交叉项限定在同一词性的特征间进行组合

在上述优化基础上,优化(3)继续限定FM模型的组合项部分,组合项的两个特征需要是同一词性,两特征词性不一样不进行组合。因为不同词性的特征组合无法判断两商品是否匹配。经过优化,模型性能进一步得到提升。

针对商品匹配问题,先是去掉了FM模型的线性项,然后对模型的组合项进行了限制。本质上,是通过对问题的思考,人为地加了先验知识,更有针对性地优化模型。

  • 纯数据驱动的商品匹配优化(4)——相同词使用同一隐向量表示

基于上述模型的优化,优化(4)是对特征隐向量的优化。我们希望相同词的特征组合的交叉项系数要大,这就意味着它们的点积要大,两特征的隐向量距离要近。优化(4)将两商品中相同词使用同一隐向量表示,此时两个特征向量距离最近,构成的组合项打分要高。经过改进,模型的性能进一步得到提升。

纯数据驱动的商品匹配的优缺点:

  • 优点:不需要人工去定义特征。
  • 缺点:干预难,对于错误样本难以进行有效干预。

展望

1号店采用了规则匹配、特征工程匹配、纯数据驱动匹配去解决商品匹配问题。目前多是基于文本信息,由于各家网站的运营规范不同,有时仅凭借标题等信息也无法判断两个商品是否匹配。后续期望加入商品图片等商品信息,通过异构信息,进一步提升商品匹配的准确率和召回率,帮助运营人员减少人工成本。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 携程技术中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档