ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 1057|回复: 3

[转载] 苏宁:海量商品查找利器—搜索系统

[复制链接]
认证徽章
论坛徽章:
0
发表于 2017-11-29 14:37 | 显示全部楼层 |阅读模式
本帖最后由 猫乐大人 于 2017-11-29 14:37 编辑

一:搜索系统概要
         互联网崛起过程中,搜索起到了至关重要的作用,我们熟知的google、百度都是全网类的搜索引擎,他们在互联网发展过程中起到有力的推动作用。在电子商务的垂直领域里,搜索是一个无处不在的工具,更是每个电商平台的主要流量入口。它集成了海量数据处理与查询、机器学习、深度学习等各种技术。对时效性、并发性具有非常高的要求。苏宁易购搜索是一个集商品、推荐、金融、虚拟用品+功能的垂直类电商搜索引擎。
      苏宁搜索系统主要经历以下三个阶段:一、2008年到2011年商业版的搜索引擎,二、2011年到2015年基于开源的打造的搜索引擎,2016年走向自主研发之路,打造符合苏宁业务模式的高性能搜索引擎。无论是基于开源,还是基于自主研发,搜索系统在历年大促中(如:苏宁818、苏宁11.11 O2O购物节),经历起千万级UV、亿级PV情况下,实现零问题零事故,有力保障大促完美达成。

二:搜索系统架构
   搜索主要分为离线计算+线上实时计算两个部分,离线计算主要包括全量的数据加工、处理以及数据索引生成。线上实时计算主要包括流式计算,准实时增量索引、实时用户query分析、查询响应、排序等功能。整个架构如下:
1.jpg

该架构特点:
     1:采用轻倒排机制,实现倒排索引准实时更新。
     2:定期切换线上状态,同步周期内索引,降低SMART-SHARD倒排长度。
     3:采用大量正排缓存,使得无需索引数据实现准实时更新,助推排序时效性。
     4:增加cache机制,在引擎机器故障情况下,机房内缓冲作用。有效降低机房内事故率。
     5:搜索支撑系统提供周边系统接口信息统一接入,降低过多请求数。
     6:query分析针对用户query进行中心词识别、类目预测、成分识别、纠错、扩展、个性化标签等一系列query分析功能。个性化标签内容这里是单独放在个性化服务系统中进行处理的,需要query分析系统进行调用与包装。
基于以上特点,搜索采用短链+正排实现索引更新秒级更新,确保流入搜索的数据可以快速索引并及时对用户进行响应,今年11.11 苏宁O2O购物节当天,在无缓存亿级访问情况下,实现数亿价格变化的更新。在排序层面,目前易购底层排序主要基于规则、基于机器学习(LTR)排序。在上层由政策、营销策略、以及店铺、品牌、品类多样性的排序规则(当然,类似上层这样的排序会在单独的排序系统进行处理,在上层架构中没有体现出来)。其中机器学习训练的数据,采取的是半年内数据,这里数据是有区分的,不是笼统的半年数据,有些数据其实只有一个季度的数据,一些快消品、季节相关的商品,苏宁搜索在选取数据的时候进行比较精细的选取。如果采用太笼统数据,实验发现效果与采用人工拟合权重排序出来的效果差别不是特别大。下面着重介绍下搜索几个利器:

1:搜索利器-用户反馈系统
那么当用户访问搜索系统的时候,苏宁搜索系统需要知道用户的点击、访问、购买等情况,如果拿不到这些数据,搜索仅仅是一个静态的输出式引擎,这当然不是我们所追求的目标,我们期望的系统是一个可与与用户进行互动式的系统。通过用户过往的行为数据、以及当前的行为数据去调整搜索排序,确保给用户一个更合理的排序结果。该系统的整体架构如下:
2.jpg

系统特点:
1:实时采集用户行为(点击、翻页、收藏、购买….等行为)
2:数据流向,将实时的用户行为数据与历史数据结合产生报表供产品/运营使用
3:实时数据处理用于反馈影响线上排序
4:由于底层排序规则由不同模块组成,所以这里就需要有一个路由规则,通过该路由规则,将一定比例的用户分配到不同的排序规则上面。

2:搜索利器-用户意图识别系统
意图分析整体架构如下:
3.jpg

该系统结合用户行为采集、商品数据、人工序列标注(包括机器自动序列标注)、类别关系模型以及商品信息团。实现分类预测、品类扩展、成分识别等功能。核心算法采用CRF(条件随机场)实现中心词识别。经过多年语料积累与数据规整,线上识别率高达98%以上。当然,机器学习的结果过于依赖数据,也会导致学习出模型预测出的分类具有马太效应,在机器学习上层的人工规则,还是很有必要的。

整个处理流程如下:
4.jpg

3:搜索利器-反作弊系统
整体如下图:
5.jpg

商品曝光与排序,对商家来说是非常重要的,排序靠前,得到的流量就会很大,但排前面的商品确不一定是用户需要的商品,中间可能存在恶意点击、刷单等行为。反作弊系统就显得至关重要。怎么能准确识别哪些流量是有问题的?就成为该系统设计的关键点。
该系统识别可能比较通俗易懂,因为该系统就是一个二分类的问题,可以通过一个二分类的算法(LR OR NBM啊都可以实现),针对输入的数据进行分类。输出要么作弊,要么不作弊。该系统为了降低识错率。采用了黑白两类分类器。最大程度的降低识错率。

4:搜索利器-LTR
早期搜索的排序,那叫一个累,一个线性公式,一堆待排序因子,每个因子嘛,拍拍脑袋,权重就这么出来了,带来的结果就是,这个商家反馈,那个反馈。然后就是分析师不断的调整。累又不讨好。为了降低人为的调整因子权重,就需要结合用户行为,收集query-docList数据进行标注。基于海量数据,采用机器学习方法,拟合出每个因子的权重。如下:
6.jpg


目前这个处理还是离线拟合出来,每一天为周期进行更新。所以还是有弊端的,比如一天内热品如何快速体现出来,该模式还有很大提升空间。但是为了让热销品快速露出,目前还是需要经过运营反馈,通过规则模块实现快速调整。


三:搜索系统智能化应用

这里的智能化应用并不一定是我们理解苹果Siri,微软小冰。这里我们将简化用户操作,降低运维成本,从经验拍板到数据支撑这一个过程叫做搜索智能化应用。这里主要举两个例子:一是价格区间划分、二是默认选中。


1:搜索的价格区间划分:
7.jpg

该功能的价格区间制定经历了几个阶段,最初,采用暴力的5等分法,该方案满足价格区间划分的需求,但是如果价格区间跨度大,使得价格区间划分不合理问题明显;到中期对价格数据建立聚类(kmeans)模型,利用该模型进行价格区间段划分,同时对数据进行去噪处理,在一定程度上解决了初期的问题,但会造成某些数据的大部分可能集中在一个区间,致使有些区间没有数据,该模型还有一个弊端,完全是基于数据进行划分,忽略用户的行为,划分的区间也许在数字上面感觉比较客观,但并不一定是用户喜欢的区间段;为了改进这样弊端,搜索团队糅和用户行为,综合用户筛选便捷性、企业盈利与商户满意度三个角度为优化目标,提取相应的特征,建立策略优化模型P(价格区间|用户,企业,商户),制定量化指标,面向指标的提升,不断进行策略模型的迭代与更新,使得策略逐渐趋于成熟。主要的流程如下:

Ø  收集用户行为和商品的有关数据;

Ø  将数据进行融合并转化为特征

Ø  Isolation Forest进行异常数据检测并进行剔除;

Ø  模型训练,包括训练-测试和模型选择环节;

Ø  将已训练模型部署到在线服务系统,并用于离线处理;
这个处理过程中,干扰最大的就是数据噪点,有些数据离散程度非常的高,如何选取数据,将会决定该功能好坏。如何处理掉这些噪点数据成为该功能成功的关键点。经过不断的采样,不断处理,最终在实验中发现,采样Isolation Forest进行异常数据的检测并剔除可以达到预期的效果。
9.jpg 12.jpg

如上图,左边图使用Isolation Forest进行异常数据识别,其实红色点是异常点,蓝色是正常点;右边图是剔除异常值后的数据。

2:默认过滤/选中功能
10.jpg

该功能底层都是采用用户行为数据、内网品牌、品类库,结合外网品牌、品类库。这个过程要解决的问题很多,比如关键字召回过多分类的时候,应该选择哪一个分类?搜索一个品牌名,但是该品牌在我们的意识中又是品类的时候,该如何处理?这其中都是要解决的难点,我们也踩过很多坑,比如以前搜索小米,按照内网用户行为与数据,那么小米手机这个品牌的用户行为甚至在某些周期内是压倒性的倾向。但是我们意识里面小米不一定就是手机,甚至是粮油,米之类的商品。这个时候,我们采取的方案有:采用商品数据、拉长用户周期、选中被叉掉后行为反馈加权、外网品牌品类库抓取与完善、品类品牌规则模板、人工辅助纠正等一系列手段。尽可能将默认选中状态更加合理准确。当然了,没有一成不变的数据,也没有以不变应万变的功能,跟数据做斗争类似那句谚语:道高一尺,魔高一丈。数据在变,方法在变,我们做不到以不变应万变,但我们可以不断为数据而改变。


四:场景搜索应用


1:图像搜索:
在有些场景下,用户无法表达自己的意图或者用户表达了自己的意图,但是用户的表达辞藻过于个性化,最终导致引擎没有输出、要么输出的结果太差强人意。再比如我们在大街上,看到别人穿着漂亮的衣服,上去询问又担心尴尬。那么在这个时候,如果你手握一部手机,通过简单的拍照,就可以检索到同款式商品。这样的功能是不是想想都很激动,这个技术就是图像识别技术,应用到搜索场景下,就是图像检索。通过图像检索,将相似度高的商品进行召回。下图是苏宁图像搜索效果展示:
11.jpg

当然了,图像识别的技术应用很广,比如现在的无人店、无人车、无人机与无人配送等各个领域。


2:(搜索+)服务:
搜索+ 服务,我们都知道搜索可以检索网页,检索商品,因为海量,所以搜索。互联网的爆发,导致用户可用功能、可用产品,也在爆发。搜索+的意义就是可以搜索商品,也可以搜索功能。让用户用最短的时间找到最好的商品,最常用的功能。如下图:
13.png
一:搜索+之精准商品查询
当一个用户,打开搜索,没有产生点击行为,直至快要翻页,是让用户继续翻页?还是在该场景下提示用户“有更精准化的召回功能,可以尝试使用该功能,里面有你想要的商品”,那么这个产品就要具备识别用户意图与用户自然语言表达的能力,同时采用商品多维度的标签去提醒用户,为什么召回这样的商品。因此让用户更自然的表达自己的想法,可以涵盖更多的信息量,会融入更多的情感因素在其中。让用户的需求表达更加清晰。同时采用多维化的用户分析与丰富的商品内容展示,给用户精准化的商品召回。下图就是搜索创新的精准化搜索:
14.png
该产品,目前已经对外使用与验证。 搜索+之功能检索,目前仍在验证中,敬请期待!

认证徽章
论坛徽章:
0
发表于 2017-11-29 14:42 | 显示全部楼层
占个沙发先~~

使用道具 举报

回复
论坛徽章:
0
发表于 2017-12-4 19:37 | 显示全部楼层

回帖奖励 +1

好文章

使用道具 举报

回复
论坛徽章:
0
发表于 2017-12-14 15:39 | 显示全部楼层
这么好的架构文章居然没人顶?把图片整清晰点就更好了。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表