广义上搜索引擎的“相关推荐”包含这么几个模块:
1、suggest模块:输入query(关键词)过程中出现在搜索框下方的智能推荐。
2、相关搜索模块:就是搜索结果底部的那堆文字链模块。
3、右侧相关推荐模块:出现在搜索结果右上角的图文推荐模块。
以上三个模块所起到的作用各不相同,下面逐个拆解。
suggest模块
与其它2个模块不同,suggest是在搜索结果展示之前出现,所以它起到的主要作用是在用户完成输入query之前命中用户的搜索需求,从而减少用户的输入成本。
如用户输入“4”时,推荐“4399小游戏”;输入“明朝”时,推荐“明朝那些事”;输入“校花”时,推荐“校花的贴身高手”等等。
为了命中用户需求的概率更高,suggest需要重点满足几个条件:
1、要相关,符合用户输入习惯,这是最基本的。
2、要足够热门,同等情况下搜索量越高越好,这里的搜索量指的是较长一段时间内的均值。
3、要足够多样化,集中于某个特定的主题,不如分散到多个主题。如搜索“明朝那些事”,全部出在线阅读、txt下载、有声阅读这些下位需求,不如适当穿插“明朝那些事2(3、4)”等。
4、适当关注时效性。推荐的时候需要考虑近期搜索量增长很快的一些query,如搜索“刘晓庆”,前段时间刘晓庆吐槽机场面条贵那个事件就需要推荐。
5、如果技术允许,可以参考用户的搜索日志做个性化推荐,这或许是目前各搜索引擎提升空间最大的地方,上面4个方面各主要搜索引擎都做的不错了。有机会可以针对suggest的个性化专门写一篇文章来分析。
相关搜索模块
该模块的典型使用场景是用户输入query后在搜索结果中没有发现自己需要的内容,在拉到搜索结果底部时点击相关搜索继续寻找自己需要的内容。
做好该模块的要素大体上和suggest差不多,相关性、热门度、多样性、时效性等都挺重要。但因为相关搜索模块是在搜索结果显示后才出现的,所以根据搜索结果对用户需求的满足程度不同,出现的相关搜索推荐也有所差异。
1、当用户需求满足度较好时,和query语义重复的推荐要做打压,多推荐一些和query互补或者领域相关的内容。如“花千骨”,主需求是在线观看该电视剧,当然搜索结果满足的非常好。那么“花千骨全集”、“花千骨在线观看”等语义重复的推荐就不要出了。这时适当偏离主需求的推荐就可以推荐,如“花千骨2015”、“花千骨 优酷”、“花千骨小说”以及类型相似的电视剧如“琅琊榜”、“云中歌”等。
2、当用户需求满足度较差时,和query语义重复的推荐就不能盲目打压。比如很典型的盗版电影需求,如目前网上还没有免费正版资源的煎饼侠。用户搜索“煎饼侠免费版”,如果用户需求满足度较差(这很可能发生),那么推荐“煎饼侠在线观看”、“煎饼侠西瓜影音”等就很合适,因为对这类需求,query稍微做一些更改搜索结果就会有很大的不同,满足用户需求的可能性就更高。此时就不能对原语义做太多的偏离,如弱需求“煎饼侠票房”、“煎饼侠演员表”等就不要做太多推荐,至少位置要尽可能靠后;同样类型相似的影视“屌丝男士”、“港囧”等都需要做适当打压。
右侧相关推荐
该模块独特的地方有两个方面:
1、其它2个模块都是纯文本展示形式,该模块是唯一使用图文展现形式的模块。
2、其它2个模块着重于文本相关,通俗点说就是和原query都有重复的文字;而该模块更注重领域相关,在文本上基本和原query无重复的地方,起到的更多的是发现探索的作用。
如果说搜索引擎目前还只是做到符合用户预期,那么未来超出用户预期的部分最有可能是通过这个模块来提供。一个典型的场景是某个新人刚进入互联网行业,某段时间对行业资讯非常感兴趣,刚开始它只知道虎嗅网,在搜索引擎中搜索“虎嗅网”的过程中,他发现了右侧推荐的一堆相关的提供行业资讯的网站,雷锋网,36氪,pingwest,知乎,果壳等,这就是典型的超出用户预期。
做好该模块的难度较大,因为数据的选择范围太广,但最少需要做到以下几点:
1、最基本的是要基础领域相关,这个普通的用户都可以感知到,技术难度也不大。
2、推荐的粒度要细,不要太粗放。比如“科比”这个query,他的首要标签是NBA球星,其次才是篮球标签,所以推荐的时候要优先推荐相关的NBA球星,如果一上来就推荐篮球相关的技术、相关篮球术语等,那么粒度就有些太过于粗放,点击自然就不会太高。
3、做好基础质量,尤其是图片质量。图片是吸引用户点击的最主要因素,所以图片起码要做到清晰相关,目前各大搜索引擎做的都不是太好,相对而言百度要好一些。要做好这一点需要重点在数据源上下功夫。
但正如前面所说,做好这个模块的难度很大,并且人工评判主观性太强,比较合理的策略是在做好基础相关(各大引擎目前做的都还不错)的情况下,不断调整策略,根据点击率的变化来评判一个策略的好坏。策略可以是针对所有query,也可以是针对某一类query,如“影视”、“人物”、“小说”等。
当然,最终判定某个模块是否优秀,或者策略升级是否有效,最终还是要用数据说话。比如点击率是否提升,从该模块带过去的搜索量占总搜索量的比例是否提高等等。