您好、欢迎来到现金彩票网!
当前位置:双彩网 > 向量搜索 >

从输入到输出带你快速了解搜索全流程

发布时间:2019-06-19 21:06 来源:未知 编辑:admin

  搜索功能作为产品设计中的基础且重要的功能,已经伴随着产品的发展历经了数十年。笔者向我们分析了整个搜索的流程,并做了一个简单的概述。

  通过用户的输入,从海量的数据中能够找到与之匹配的信息的功能,称之为搜索。

  搜索出生的原因是信息过载,只有大量的数据情况下,搜索才能发挥出应有的价值。假设整个世界只有10条新闻,你想知道标题中含有“中国”的新闻,扫一眼就知道结果了,搜索的功能反而鸡肋。

  搜索功能是筛选+Ranking,根据用户的输入确定筛选条件,再根据一定的策略进行Ranking。随着信息的爆炸性以及用户人群的细分,随之诞生了搜索千人千面,结果列表的来源不仅仅跟你的输入相关,还会考虑用户画像,比如你最近的行为带来的一些标签。

  因为搜索所得的数据量实在是太大了,如果不同人群看到的结果都是一样的,是极其没有效率的。想象一下,一个输入条件有10W 条结果,大多数人看到前三页就极其困难了。

  这个时候,用户要么选择放弃搜索;要么选择更精准条件的搜索。第二种方法对用户不是很友好,原因在于用户如何确定真实的搜索意图,不知道该输入什么,无法表述等等。倘若机器可以根据用户的历史进行预测推荐,那么用户的体验会有极大的提升。

  下图是搜索的流程图,虚线框中的主要是偏后台的工作,需要产品经理有适当的技术积累;剩余部分是会和产品、前端有交互的部分,需要产品经理进行产品设计。

  请大家回头看下搜索之所以产生的原因——信息过载,在这里其实就已经隐含了哪些产品需要有搜索功能。划重点:信息。

  因此,但凡涉及到有信息度的,数据量较大的,则可以有搜索功能。比如看视频,视频有发布者、视频名称、参演人等等;比如商品,有风格、有品牌、有类型等等;再比如新闻网站,信息量更直观些,也是可以有搜索功能的。

  那么哪些产品不需要有呢?常见的是工具属性偏强,主操作信息量较少的产品,比如闹钟、拍照类的产品。

  非常重要: 数据量过大,用户目的相对明确,有某一主题或者更具体的要求,搜索可以极大的提高用户体验,比如:搜索引擎、电商网站。

  次级重要: 用户随意性较高,并无较强的目的性,比如:新闻资讯类网站,该部分实效性的要求远高于搜索。

  总结出这几点:决定,搜索的输入(类型)、形式以及输出(主准确?主召回?)。

  下图中的0,1分别代表否、是:Actual是实际情况中的数据,Predict是机器预测的数据。

  准确率=在所有的数据中,机器预测正确的占比;换句话说,对所有数据来说,机器对了多少?

  召回率=在所有准确的数据中,机器预测正确的占比;换句话说,对应该对的数据来说,机器找到了多少个对的?

  输入的类型:文本、语音、图片、二维码等等,由于不同的输入内容,我们对信息的解析,以及后续检索排序都有不同的方法,本文主要讲基于文本(自然语言处理NLP)相关的内容。

  如果用户输入是语音的话,那么第一步需要将语音转化为文本语言,然后继续走NLP相关的路径。

  如果用户输入时图片,那么需要对图片提取特征,理解并进行搜索。如果是二维码的话,直接跳转到页面,或者直接给结果即可。

  在用户进行输入的时候,为了方便用户的收入,或者明确用户的搜索意图,我们可以采用以下方法,这些方法可根据实际的产品形态,选择适合自己的。每个方法带来的效果,相信大家都能自己领悟,我们这里不做详细说明。

  其中,词干化常常出现在英文的信息中,中文中不太常见;停用词是指词语没有明确含义,比如:了,呢;同义词,比如:自然语言处理与NLP;一词多义,比如:苹果【公司/一种水果】;上下位词,比如互联网是互联网游戏的上位词。

  那么字典是用来干嘛的呢,用最通俗的理解就是撞词,如果这个词出现在词表中的,那么这个词所代表的意义就被我们所知道(更厉害一点的就是知识图谱了,这个词的属性,与其他词的关系都可以知道,知识图谱我们之后再讲)。

  通过对词语的理解,我们可以去进行信息检索和排序。当然实际应用中,它不仅仅是撞词那么简单,有更多更深的算法来提高对意图识别的准确度。

  基于向量的信息检索中,标准的做法:余弦相似度,通过计算两个向量的余弦来确定两个文本的相似度。

  该这种类型的问题,一般是依靠知识图谱来查询相关的结果的,这部分的内容我们在知识图谱中再详细讲。

  根据用户的输入,通过查找文档查找段落根据需求决定是否需要段落摘要

  最简单的段落摘要,就是高亮,将命中的前后多少字作为段落摘要的内容,复杂点,可以通过AI来自动生成一些段落摘要。

  排序在整个流程中,分为两种:一种是算法排序,在进行信息筛选的时候,算法已经给了每个结果的数值;第二种是人工干预排序,主要展示在页面中的排序。

  算法的排序结果是机器给的,不同产品时期,算法功力都会对排序产生影响。作为PM,可以把希望的结果以及一些bad case给到,来进行算法的优化。

  页面中的排序,主要是PM根据需求来定的,通过对业务的了解、用户需求的把握,筛选出合理的排序条件。

  在有结果的情况下,作为PM,只需要定义好输出字段即可。目前展示的形式有3种类型:

  由于列表占用空间较多,因此如果有更多的操作或者信息的展示,可以列表来展示;

  最简单直观做法:展示没有任何结果页面,再加上提示“抱歉没有您要搜索的内容,请换个词语试试看”。

  更好的理解用户的输入,建立自己的字典(停用词、同义词等,详见意图识别部分);

  当有内容时告知用户(常见于实效性不强且用户在某方面敏感型的产品,比如地产类、机票低价提醒)

  我们讲,在搜索的时候,假如结果不如意,如何让用户继续留在页面上,并找到自己想要的结果。

  筛选是一个有力的交互过程,意味着用户的需求明确,要求的结果更加精准。我们最怕的是用户不知道自己要什么,因此我们在设计的时,希望通过一系列的小功能,比如筛选比如提示,来让用户明确自己的需求。

  Pinterest的筛选:这个我是想单独讲讲的,这真的是我很喜欢的一个设计。当你输入查询条件后,会自动弹出你的输入+另外一个组合词,真的是比普通的筛选牛了很多。

  组合词比结构化的筛选更多,有些词是用户更常用更多搜索的,但比较难归类到某个类别进行展示。

  当然,你也可以说,在输入时直接自动出来让用户选择,这个当然也没啥问题。面对一些未知数量且模糊的搜索时,用户的输入会先从大到小,Pinterest的做法相当于结果——反馈——新的结果,不断循环,对用户的感知更顺畅更友好,且用户本身对事物的掌控也一直没有被削弱。

  我们讲,在搜索的时候,假如结果不如意,如何让用户继续留在页面上,并找到自己想要的结果。

  我们可以通过分析入口,分析Query,并结合用户画像、用户分类,进行输入分析,了解用户在我们的产品上,输入较多的是哪些类别、哪些内容。接下来的算法策略就可以根据这部分进行一些参考。

  由于A/B testing需要耗费的技术资源较多,大家可以根据自己公司的进度以及资源程度决定是否要做;剩下两个是建议一起做。业务指标来看总的效果,人工评估来发现一些明显的典型case。

  由于时间关系,我们这次的文章中,主要对整个搜索的流程有了一个简单的概述,至于里面的细节,大家可以参考其他文档来做知识的补充。欢迎大家一起探讨。

  备注:关于第四节:输出-无结果-整个流程优化的做法,我是参考woshipm上一位朋友写的。由于时间久远,没有找到链接,如果大家有谁知道的,可以把链接贴到评论中。

http://bluecaleel.com/xiangliangsousuo/185.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有