童话说说技术创业美文职业
投稿投诉
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

搜索:由流程框架到实现方法

6月2日 生死族投稿
  本文希望将“搜索”这一功能点进行拆分,尽可能深入阐释本人对它的理解。同时,本文宗旨在于交流,若其中有不足或不准确的地方,欢迎读者批评指正。
  搜索流程框架
  1。产品视角
  “搜索”功能对于前端用户仅是点击输入搜索,三步操作。但如何通过这三步,在海量内容中精准定位用户需求,是“搜索”功能的本质。
  基于本质需求的搜索功能扩展,其实可以很形象得概括为:如何满足以下几类用户的搜索需求。他们对于搜索功能的需求层级是如此完成深入递进的。
  用户1:我知道自己想要什么信息;
  用户2:我知道自己大概想要的是什么信息;
  用户3:我想要信息,但不确定具体哪方面;
  用户4:我现在不想要信息,但可以随便看看;
  用户5:什么都不想要,我也不会点进去的,别打扰我,谢谢。
  2。技术视角
  满足并实现上述需求,光从产品视角拆分完全不够,更需要从技术角度理解搜索功能。我们可以将上图的几步继续拆分,具体的拆分流程框架可以参考下图。
  之后篇幅会按照这张搜索流程框架图的脉络一步步进行讲解。
  点击搜索框
  点击搜索框约等于在产品中找到搜索功能的位置,而搜索功能的位置主要是取决于产品本身对于搜索的依赖程度。由于相关交互的讲解,有大量成熟且优秀的输出,这里我就简单带一下。
  比较常见的搜索入口设计方式有如下几种:
  1。位于页面顶部,导航栏中
  搜索框为与页面顶部的导航栏中间,除了搜索框本身外,往往还有搜索ICON暗文提示词拍照或语音ICON。此类设计适合信息量较大,用户对搜索有强依赖需求的产品。
  下图展示的产品分别为:拉钩、大众点评、携程
  2。位于导航栏中,精简为放大镜ICON
  精简过后的搜索入口相较于搜索栏弱化了不少,适用于已推荐为主搜索为辅的产品。此外,精简后省下的空间,可以放置其他功能模块入口,页面布局更加灵活。
  下图展示的产品分别为:支付宝财富、人人都是产品经理、脉脉
  3。位于页面底部单独的搜索模块
  效果类似于导航栏中的搜索ICON,但较之有更重的业务侧重。将搜索与底部标签放在一起,强化用户对于搜索推荐页独立存在的认知,同时给到此页面承载复杂功能的心理预期。
  在此页面内,往往会将搜索与推荐、筛选、信息流等功能点结合在一起。
  下图展示的产品分别为:拼多多、绿洲、微博
  输入关键词
  设计输入框或搜索页面时,核心思想就是帮助用户更快更好完成输入操作,其次是保留一定的运营能力或业务引导能力。
  现在已有较为成熟的设计方案,可在用户输入关键词的过程中,通过微交互来达到目的。
  1。搜索栏内的引导暗文
  现在采用通知栏搜索框中置设计的产品,往往都会在搜索栏中添加引导暗文。
  它的作用主要有两种:其一,教育新用户可以搜索哪些关键词,熟悉搜索框的操作;其二,承担运营推广职能,将业务需要的内容置于搜索栏内,可有效提高用户的触达率。
  下图展示的产品分别为:拉勾网、今日头条
  2。搜索历史
  搜索历史是用户之前手动输入并搜索过的关键词的汇总,点击后可直接跳转,普遍按照用户搜索的时间顺序进行排序。因为用户往往会重复搜索同一关键词,搜索历史功能可帮助用户更高效地完成操作。
  由于在使用了一段时间产品后搜索历史可能较多,在超过了一定数目后便会收纳展示,或仅展示最近搜索的几个结果。同时搭配上搜索历史删除功能,一般有一键全部删除和逐条删除两种交互方式。
  下图展示的产品分别为:天猫、微博、今日头条
  3。热门搜索
  热门搜索是一种辅助用户搜索的方式,当用户需求并不明确时,可以起到很好的引导效果。
  一般热门中展示的内容可分为两部分:一部分为高频搜索词,便于用户决策;一部分存在一定的运营职能,将活动或是商品关键词作为热搜,提升曝光机会。
  因此在设计时需要考虑到:
  热搜是否具备运营能力;
  运营位与真实热搜位的个数或占比;
  热搜榜的排序规则;
  是否需要增加其他交互元素(TAG、TAB、查看更多)。
  下图展示的产品分别为:华为应用超市、微博、网易云音乐
  4。限定范围的搜索
  由于部分产品的业务线十分庞大,导致搜索结果内容的命中效果不佳。因此有些产品会选择在搜索动作之前完成筛选,这就是限定范围的搜索。
  下图展示的产品分别为:马蜂窝、微信
  Query分析
  用户输入关键词(Query)的过程中,系统会对用户输入的关键词进行分析,做出一系列操作,例如:纠错、改写、补全、近义词、模糊或实时搜索等。
  这不仅能够帮助到用户高效完成搜索内容的正确输入,更对自然语言转化机器语言及信息索引提供了便利,对搜索结果的覆盖率和相关性至关重要。
  以下介绍几种常见的Query分析方式。
  1。Query纠错
  根据用户输入的关键词(Query),搭配一些其他的可用信息,由算法判断用户输入的内容是否为错误关键词。
  若判断为输入错误,则通过噪声信道模型猜测正确的关键词。将用户输入的关键词做模型输入,输出后得到猜测后的关键词。在前端提示用户选择或直接按照正确关键词进行检索。
  纠错的场景主要可以分为:
  同音纠错;
  形似字纠错;
  多字、少字、顺序错误;
  模糊音纠错。
  Case1:
  用户输入,在同音纠错角度发现可能用户想搜索的是,因为你都是英文字母所以不存在形似字,少字角度可以是。
  这些猜测汇聚为候补集,通过噪声模型推分数最高的关键词。
  Case2:
  用户输入今月头条,同音纠错好像没什么联想空间,形似字纠错角度可能是今日头条,少字角度猜测可能是这个月的新闻头条。我们都知道用户想搜的肯定是今日头条。
  Case3:
  也是一样的道理,根据用户输入的上一句,对出下一句。
  2。Query改写
  关键词(Query)改写是通过分析原始关键词,生成一系列与原始关键词相关的信息,作为补充,与原始关键词一起参与搜索,从而得到更加准确的搜索结果。
  自然语言中存在大量的一词多义现象,比如苹果,用户想要的可能是水果也可能是手机等电子产品;比如西红柿和番茄,同一物体有不同的表达方式;又比如搜索酒店,实际的需求并不是了解酒店信息而是预订酒店客房。这些场景语义不确定的场景均可以通过关键词改写的方式来解决。
  关键词改写的常用方法主要有:
  基于关键词的内容;
  基于关键词的点击行为;
  基于语义信息的标签及标注。
  Case1:
  用户输入男士衬衫,算法基于关键词内容和平台自身属性,猜测用户的真实需求是购买衬衫。不再在原关键词的框架内进行联想,而是对关键词进行了扩充改写,增加了长袖商务免烫长袖条纹等维度,帮助用户确定搜索需求。
  Case2:
  用户输入高达,但由于用户的历史操作中点开过包含高达模型的SKU,因此算法对关键词进行了改写,优先推荐和高达模型有关的关键词给到用户。
  这里可以看到前十个改写结果中有7个和高达模型相关,且排序优先级很高。
  切词
  用户在选择好关键词后,后台开始搜索,需要将关键词与词库中的内容或商品进行匹配,这一步叫做检索或索引。
  词库有限,但关键词无限。如何将无限的关键词索引到有限的词库,就需要用到切词。切词的本质即是将关键词按照字符进行拆分,重组为几个字符串的集合。
  以下介绍处理文本时主要涉及到的几个问题:
  1。文本词条化
  主要任务是将一段连续的文本序列拆分成多个子词条,由于语言本身的差异,处理文本的方式也不尽相同。
  由于中文本身含义紧凑且多歧义的特性,一般需要借助NLP对特征进行抽取甚至人工标注,生成对应的词典后利用分词器完成分词。
  2。停用词过滤
  某些情况下,一些常见的词条对于搜索结果匹配的价值并不太大(例如“的”“了”),这些词往往属于超高频词汇,在自然语言中经常会被用到。但被使用的频率越高,它本身的价值也就越小。
  这类没有价值的词条就被称为停用词,需要在检索时自动忽略,可以大大减少索引库产生的压力。
  现有的停用词表从200300词的大停用词表到只有几个词的小停用词表应有尽有。但近年来的趋势是不再使用停用词,通过利用语言的统计特性来更好的处理常见词问题。
  3。词条归一化
  在完成上述两步后,一段文本被分为了多个有效词条。但往往检索时,这些词条还是不能和索引库一一对应,此时就需要词条归一化。它的实质是指将看起来不完全一致的多个词条归纳成同一个等价类的过程。
  在实际场景中,主要包括特殊符号的过滤、大小写归一、繁体转简体、全角转半角等操作。
  Case:
  4。词干提取
  词干提取是英文语料预处理的一个步骤,中文并不需要。本质是去除单词的前后缀得到词根的过程。一些常见的前后缀有第三人称单数、进行式、过去式等。
  Case1:
  、、,词干均可提取为
  词干提取在实现方法上,主要利用规则变化进行词缀的去除和缩减,将词转化为词干,达到词的简化效果。但并不是所有输出的词干都是有意义的。
  比如提取词干后,输出的是,它本身并没有含义,解决上述问题需要依赖词形还原。
  5。词形还原
  词形还原是基于词典,将单词的复杂形态转变为最基础的形态。它不像词干提取,只是简单地将前后缀去掉,而是会根据词典将单词进行转换。
  Case:
  、、都可以转换为
  词形还原在原理上与词干提取的缩减不同,而是采取了转化的方法。需要对词形进行分析,不仅要进行词性识别,还要进行词缀转化,词性标注的准确率直接影响到转化的准确率。
  更重要的是,词形还原后的关键词是具有一定意义、完整的词汇,解决了词干提取后词根无意义的问题。
  倒排索引
  索引类似于一本书的目录,倒排索引是索引技术中的一种,基于关键词主题的属性值进行构建。
  现代的搜索引擎绝大多数都是基于倒排索引来构建,这是因为用户在搜索时往往只会输入主题的某一部分关键词。
  Case:
  下图展示了正向搜索与倒排索引两个流程之间的逆推关系。用户通过搜索高达模型,得到了一个具有如下属性的召回结果。
  逆推过来,用户也可以通过搜索这些属性,召回高达模型。大大加快了检索速度和而效率,也提高了准确度。
  经过倒排索引召回的结果即可称为候补集,再对候补集进行排序操作后,即可输出结果集。结果集就是用户在前端亲眼见到的内容。
  排序
  结果集的排序直接影响到搜索结果质量,越往前的结果就越容易得到用户的点击。好的搜索功能不只是召回结果,还要把最有吸引力的内容优先给到用户。
  搜索排序的基础逻辑如下:用户输入关键词形成多个有效词条,系统会根据数据库中内容是否包含这些词条来决定是否展示,同时根据词条和内容的相关性给要展示的内容一个分值,最后根据分值进行排序。
  Case:
  上面这个例子,用户输入关键词高达,显然优先推送内容1。不仅因为标题中出现了关键字,还因为业务数据表现要远远好于内容2。
  其实,最终影响到排序的,就是取决于文本和业务数据所赋予的权重。这两组数据影响了最终的排序,而如何安排这两组权重,即是搜索引擎对业务的理解。
  但实际情况下,排序算法要面对的场景比距离要复杂得多,有更多维度的数据需要考虑。
  评估结果集效果
  对于最终前端展示的内容,如何评估最终推荐的效果呢?在与策略相关的产品功能(搜索、排序、推荐)中,往往都涉及到机器学习算法,因此评估推荐效果就转化为评估机器学习算法模型的好坏。
  我们一般使用性能度量来量化模型的性能指标。在引入各种率之前,需要先了解它们的本质,也就是混肴矩阵。
  1。混肴矩阵
  如果我们使用的是一个二分类模型,可以将预测情况与实际情况分别分为“真”“假”两种情况,两两混合即可得到四种情况,由这四种场景组成了混肴矩阵。
  为了增强可读性,更清楚分辨预测结果是否正确,我们对上述混肴矩阵进行一定的变形。P(Positive)代表预测为真;N(Negative)代表预测为假;T(True)代表预测与实际相同,预测正确;F(False)代表预测与实际不同,预测错误。
  转化后的混肴矩阵如下图(注意:列标题由“实际情况”变为“预测结果”)。
  转化后矩阵的阅读方式应先看“预测结果”,再看“预测情况”,即可推测出真实情况。
  TP:预测正确,预测情况是P,因此真实情况也是P
  FP:预测锁雾,预测情况是P,因此实际情况是N
  FN:预测错误,预测情况是N,因此实际情况是P
  TN:预测正确,预测情况是N,因此实际情况也是N
  2。召回率、精确率、准确率
  (1)召回率(Recall)
  召回率又叫查全率,它是针对原样本而言的,它的本质是:在实际为P的样本中被预测为P的概率,其公式为:召回率TP(TPFN)
  Case1:若样本集中有100个P,通过模型预测出有40个P,那么召回率为40;
  Case2:在实际应用场景中可以以网贷违约率为例。我们更关心N类用户,他们会造成违约导致公司损失严重。因此我们需要强调召回率,召回率越高,代表实际预测出来的N类用户概率越高,为此不惜牺牲一些P类用户。
  (2)精准率(Precision)
  精准率又叫查准率,它是针对预测结果而言的,它的含义是在所有被预测为P的样本中实际为P的样本的概率,其公式为:精准率TP(TPFP)
  Case:若通过模型预测的结果集中有100个P,而其中实际有60个P,则精准率为60。
  (3)准确率(Accuracy)
  准确率是最常见的评估方式,它的本质是:预测正确的结果占总样本的百分比,其公式为:准确率(TPTN)(TPTNFPFN)
  虽然准确率可以判断总的正确率,但若样本集中P、N样本极度不平衡,准确率结果回含有很大的水分,基本失去参加价值。
  Case:样本中P占90,N占10,我们将模型设置为所有样本均预测为P的策略,则准确率有90那么高,但实际上毫无实际意义。
  (4)总结
  在实际项目中,单方面追求精准率或召回率都是不正确的,理想情况是做到两者都高。
  但鱼和熊掌不可兼得,精准率高了召回率就会低,召回率高了精准率就会低。如果是做搜索,应该优先保证召回率的前提下提升精准率。
  3。F值
  通过上面的公式,可以看到召回率和精准率的分子是相同的,但分母不同。因此对于同一策略模型,同一阈值,可以统计出一组确定的精准率和召回率。
  遍历01之间的所有阈值,就可以画出每个阈值下的关系点,从而得到一条曲线,称之为PR曲线。
  得到了曲线,我们当然希望可以找得到一个精准率和召回率都很高的情况,但实际上很难做到,最好是可以找到二者之间的平衡点。
  这时候就需要用到F1分数,为F分数的特殊情况。F1分数的本质是当召回率与精准率权重相同时,寻找二者能达到的最佳平衡。
  F1的公式:F12PR(PR)
  F的公式:F(12)PR)(2PR)
  图中的“平衡点”即是通过F1计算得出的。
  但往往我们对召回和精准率的权重要求是不同的,因此也往往使用F2或F0。5来评价策略,两者分别表示更重视召回率和准确率。
  4。ROC、AUC
  前文介绍了F值,但大家可以发现它仅能评估单点的效果而无法表示策略的整体效果。这里介绍的ROCAUC是一套成熟的整体策略评估方法。
  (1)真正率(TPR)假正率(FPR)
  但是在正是介绍ROC(ReceiverOperatingCharacteristic)之前,需要先引入两个指标,这两个指标是ROCAUC可以无视样本中P、N不平衡的原因。
  真正率(TPR)TP(TPFN)
  假正率(FPR)FP(FPTN)
  大家可以看到这里又需要用到之前介绍过的转化后混肴矩阵,以防大家忘记我再贴一次图。
  (2)ROC(ReceiverOperatingCharacteristic)
  ROC的主要分析方法是一条ROC曲线,曲线中的每个点的横坐标是FPR、纵坐标是TPR,每个点都描绘了在某一确定阈值下模型中真正的P和错误的P之间的关系。
  因此我们可以遍历01的所有阈值,绘制一条连续的曲线,这就是ROC曲线。
  那么如何通过ROC曲线来判断一个模型性能的好坏呢?回归到我们的目的,当然是尽可能得提高模型预测正确的概率,降低预测错误的概率。
  也就是TPR越高FPR越低,模型性能越就强。对ROC曲线而言,即曲线越陡,越接近坐标左上角,性能越强。
  (3)AUC(AreaUnderCurve)
  如果我们想绘制出ROC曲线上的点,就需要遍历阈值,多次回归模型,这种做法效率非常低。因此我们可以用另外一种方法来代替ROC,即AUC,计算曲线下面积。
  如上图虚线,若我们将对角线连接,它的面积正好是0。5,代表模型完全随机判断,PN概率均为50。若ROC曲线越陡,AUC就越接近正方形,面积越接近1。AUC的值一般都介于0。51之间。
  5。其他评估方式
  除了上述提到的ROCAUC,还有一些其他的评估方式,各有各的优点。
  Preck和MAP:除了考虑召回结果整体准确率之外,还会考虑召回结果的排序
  CGDCGnDCG:之前的指标都是将目标值分为P和N两种情况,但用这种算法可以用更多维度的指标来评估。比如可以将目标值分为Good、Fair、Bad三类,也可以按照评分。
  参考资料
  《精准率、召回率、F1值、ROC、AUC各自的优缺点是什么》https:www。zhihu。comquestion30643044
  《机器学习笔记》https:zhuanlan。zhihu。comp46714763
  《搜索产品经理的日常工作》https:www。douban。comnote693904092
  《GOOGLE官网》https:www。google。comintlzhCNsearchhowsearchworksalgorithms
  《倒排索引》http:www。woshipm。compmd745525。html
  《如何设计一个好的搜索功能》http:www。woshipm。compd1607289。html?sfmobile
  《倒排索引》http:www。woshipm。compmd745525。html
  《如何改写Query》https:www。cnblogs。comadup9709171。html
投诉 评论 转载

B端产品的建设过程中的5个阶段笔者从实际的工作实践出发,对于B端产品整体的建设历程进行了详细地分析与介绍,供大家参考学习。绩效管理系统是公司绩效管理体系落地实施的重要工具,2年前刚从C端产品转战B端产……搜索:由流程框架到实现方法本文希望将“搜索”这一功能点进行拆分,尽可能深入阐释本人对它的理解。同时,本文宗旨在于交流,若其中有不足或不准确的地方,欢迎读者批评指正。搜索流程框架1。产品视角……产品经理必须清楚的【产品需求设计五步法】在针对敏捷版本从需要到设计的过程中,笔者John提炼出了更为有效与针对性的五步方法,其具体整体流程为:“业务方向现状梳理竞品趋势版本梳理产品设计”。在产品经理的日常工作中……视频内容配置平台CMS设计本文提供了CMS平台的设计思路,以及部分思考,笔者目前负责某款视频APP的CMS搭建,接下来谈谈我对CMS系统的理解与总结。1。CMS系统是什么首先介绍一下何为CM……跨文化设计:面向不同文化背景的产品设计当一个产品需要呈现给不同文化背景的用户时,跨文化设计是绕不过去的问题。除了显而易见的语言之外,跨文化设计还有哪些可以考量的地方?当我们在设计一款互联网产品例如网站或App……产品设计原则:技术VP的独家看法产品设计关乎用户体验,最终影响产品的口碑和生存期,在产品经理的角度之外,技术VP是如何看待产品设计呢?作为一个“写的了SQL”、“看得懂代码”、“找得了BUG”的产品狗,……产品设计方法论看不见的设计,才是最好的设计不同的用户需求和认知能力下,每个人看到的对象是不一样的,看不见的设计是指当用户的需求没有激活的时候,这个设计无知无觉,而当用户需求出现的时候,它会立马显现满足需求,这样的设计就……案例解析:UI界面中多变酬赏的运用本文是关于UI界面中设计酬赏的方式以及案例展示,多变酬赏目的:增长用户、保留用户、增加粘性、互利增长。作为我们设计师,首当其中的就是界面的设计效果,但真正能拉动用户多次使……以智能货柜为例,谈谈CV领域“识别错误”的3类场景笔者从工作实践出发,以智能货柜为例,梳理了CV领域识别错误的3类场景,并对这些“错误”给出了自己的建议。与大家分享。一、图像识别任务简介先简单说明下图像识别四大任务……五大模块,解析产品设计中的视觉走查视觉走查一般分为形、色、字、构、质五大模块,而本文也将结合这几点讲讲视觉走查的注意事项。设计评审不通过?经常让你改稿?我们日常在做设计的时候往往会不由自主的套用以往……产品可用性原则:网页设计点睛秘笈网页身为用户接触到的第一入口,直接影响着用户的第一印象,如何设计网页才能提高用户的使用体验,符合心理预期?《点石成金:访客至上的网页设计秘笈》在用户体验领域,可……设计师如何做一份以用户体验为心中的PPT?本文将会从用户体验的角度以汇报总结的内容核心、面向对象、场景分类、内容标准等方面和大家探讨交流,设计师如何做一份以用户体验为心中的PPT?说到以用户为中心的体验设计大家一……
业务架构、信息架构、技术架构三位一体泛泛而谈界面中的斑马纹设计产品经理的核心价值WAP2。0网站分类及其架构浅析手机网站重构经验分享(S60V3篇)互联网产品设计十年如何写PRD(附PRD案例)404页面中的学问《结网》读书笔记统计数据背后的真相读《HowtoliewithstatistAndroid平台按键之殇移动设备的感知设计
互联网金融对商业银行的影响及应对策略学校面试的自我介绍3分钟幸福的钥匙六年级作文白羊座男生喜欢什么样的女生你具备这些特点吗怎样检查自动灭火装置俄宇航员将于4月28日首次运行欧洲机械臂(ERA)超五类线能否支持千兆?云台合作成果丰硕在滇台商台企产品展成功举办我为老师点个赞看到别人家孩子侃侃而谈,掌握以下6步,你孩子也能成为社交达人做冬瓜排骨汤时,牢记1泡3不放,肉香汤鲜,关键还没腥味儿损害消费者应承担什么法律责任

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界