基于语义相似度的商品搜索推荐实践

基于语义相似度的商品搜索推荐实践

    • 一、背景
    • 二、推荐目标
    • 三、推荐架构
    • 三、实时算法层介绍
      • 1. Query分词
      • 2. 意图识别
      • 3. 粗排
      • 4. 精排
      • 5. 重排
    • 四、后续优化
      • 1. 用户反馈数据运用
      • 2. 线上效果提升的关键因素

一、背景

搜索是一个发现用户主动兴趣的场景,query是用户兴趣的浓缩表达,用户输入的query可认为是一种ugc,在电商类产品中,普遍存在ugc推荐场景,因而query的推荐也扮演着不可小觑的角色,在产品中,我们在搜索栏为用户推荐Query。在NLP领域,语义相似度的计算一直是个难题:搜索场景下query和Doc的语义相似度、feeds场景下Doc和Doc的语义相似度、机器翻译场景下A句子和B句子的语义相似度等等。

二、推荐目标

全局目标是提升商品CTR和用户体验,分解为:

  • 推荐与商品相关的query
  • 增强曝光query集合的多样性,提升用户体验
  • 提升CTR,同时提升跳转到搜索页,在搜索结果页的内容点击率

三、推荐架构

本文主要介绍【实时算法层】
基于语义相似度的商品搜索推荐实践_第1张图片

三、实时算法层介绍

1. Query分词

使用HanLP开源分词框架,同时例行化添加新词到词库。一方面可通过用户输入的 Query词补充词库,另一方面可通过用户点击的商品与用户输入的Query分词进行向量相似度计算,从而可筛选出Query分词的同义词。

2. 意图识别

意图识别,即将输入de Query词识别为指定的大、中、小类,意图识别本身也是一个分类问题,其实方法和分类模型的方法大同小异。
常用的方法有:

  • 基于词典模板的规则分类
  • 基于过往日志匹配(适用于搜索引擎)
  • 基于分类模型进行意图识别

这三种方式基本上是目前比较主流的方法,现在进行意图识别的难点主要是两点,一点是数据来源的匮乏,因为方法已经比较固定,基本都是有监督学习,需要很多的标记数据,现在我们常用的数据要么就是找专业标记团队去买,要么就是自己去爬。第二点是尽管是分类工作,但是意图识别分类种类很多,并且要求的准确性,拓展性都不是之前的分类可比的,这一点也是很困难的。
针对Query大部分是比较简短的词组合,而不是真实语法的句子,目前生产线上使用的是通过TensorFlow实现FastText文本分类,在TenserFlow+Docker环境中训练FastText文本分类模型。模型的详细使用可通过相关文章了解。
基于语义相似度的商品搜索推荐实践_第2张图片

3. 粗排

粗排也即召回数量为1K左右的候选集。采用ElasticSearch作为粗排阶段的存储与运营工具。

  • 召回方式:
召回方式 描述 用到的倒排池
关键词召回 与Query中分析得到的大、中、小类或意图同义词匹配的Doc,被召回 关键词倒排
  • 召回排序:基于word2vec计算每个分词关键词的语意相似度+热度,将离线或实时计算好的关键词+分数索引到ElasricSearch,指定时间段周期性更新,召回时默认按照打分字段的得分降序排序,取top n

4. 精排

精排层理论上应该实验多个不同类型的算法对比评估择优,这里我们只采用了DSSMs(双塔网络架构系列)

  • 为什么DSSM
    DSSM应用在IR场景的Rank问题,给定一个query,计算doc与这个query的语义相关性,刚好满足我们的使用场景,因而doc与query的相关性也可由DSSM计算。
  • DSSM 简介
    DSSM由微软于2013年提出的双塔网络框架,已发展出多个变体版本,即DSSMs,在检索与推荐场景的众多算法当中,占用一席之位。论文很多,就不加个人解读了,相关paper:
  1. DSSM Learning Deep Structured Semantic Models for Web Search using Clickthrough Data
  2. CLSM A Latent Semantic Model with Convolutional-Pooling Structure for Information Retrieval
  3. DSSM-LSTM Semantic Modelling with Long-Short-Term Memory for Information Retrieval
  4. MV-DSSM A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems
  5. 深度学习解决NLP问题:语义相似度计算

采用DSSM计算每个Doc与当前Query的相关性,相关性越高,点击可能越大

5. 重排

重排目标是增强曝光query的多样性,同时兼顾点击率高的往前排,增加佣金、价格等其他维度分数后的重排,主要工作如下:

  • 实时聚类+随机挑选:目标是将精排后的Doc做下分类,每个分类再挑出其中一条query,这样可以保障推荐的多样性,如关于口罩的Query,大致效果如下。
分类(按query表达意图聚类) 示例 挑选
聚类1(服饰内衣) 简约秋冬男士口罩、保暖秋冬女士口罩 保暖秋冬女士口罩
聚类2(医药保健) 口罩滤片、医用口罩、PM25口罩 医用口罩
聚类3(毛绒布艺) 可爱毛绒渔夫帽、儿童保暖口罩 儿童保暖口罩

四、后续优化

1. 用户反馈数据运用

  • 在召回环节,不同关键词召回结果的质量有好有坏,利用线上数据,对关键词加权召回
  • 利用线上点击数据,group by关键词计算出每个关键词对推荐点击转化率,获取一批低质量关键词,然后人工提取停用词和优化词库

2. 线上效果提升的关键因素

  • 词库的覆盖面和精度:明星、体育、综艺、电影、游戏、动漫等词库等覆盖、看点标签、主题词
  • 关键信息提取环节:召回是用提取等关键信息去倒排池检索,所以这个环节直接影响召回质量
  • 精排算法选取即特征的选择:结合场景选择候选算法,然后结合线下线上数据评估
  • 数据分析挖掘:结合用户反馈数据,充分利用数据分析,迭代优化各个环节,数据涨跌知其然,知其所以然

你可能感兴趣的:(大数据,广告推荐)