一个食谱垂直领域的搜索产品

来交代下近况:来了**煮工作一年多了,在经历了半年app迭代功能规划工作之后我终于迎来了第一个高级功能——搜索优化。(不是说其他功能不高级,只是搜索是对我来说全新的领域,跟以往负责的工作大不相同,所以称之为高级)

背景

我所负责的是APP的内容线的工作,核心工作围绕留存率展开。在进行数据分析后发现留存率与用户收藏次数有关,收藏越多,留存率越高。因此提高留存,就要提高收藏。明确了留存的关键行为后,就该去探索用户发生关键行为的核心漏斗。

通过app的流量分析可以知道,大部分流量进入食谱详情页的路径是通过搜索,所以优化“搜索->浏览->收藏”这个路径,预测会得到最大的转化率。(实际上也是的)

过程

首先需要确定搜索的流程,大致确定为三步:

搜索前:热搜词、历史搜索等

搜索时:关键词联想、自动纠错等

搜索后:无结果的推荐、有结果时的排序等

这次挑搜索后的搜索结果排序来详细说说。

第一步:制定排序策略

排序其实就是比大小,所以方法是给排序结果计算分值,根据不同的关键词,搜出来的结果都有自己的分值,只要比较大小就可以算出排序列表。接下来就是如何计算的问题,也就是哪些因素会影响排序分值,请往下看⬇️

第二步:找参数

搜索结果排序这个东西,我在做的时候查阅了很多资料,但大多数资料都比较偏向底层的技术细节,比如说关键词匹配规则,好在市面上有比较成熟的解决方案来解决底层的搜索逻辑,我们产品只需要决定关键词匹配哪些内容,以及赋多少权重即可,更为重要的是除了相关度这个因素之外,搜索结果的排序还受到哪些因素的影响,以及他们是如何影响排序的。

前文有说到,收藏行为是用户留存的关键行为,所以食谱的优质标准中最重要的指标也是收藏率(收藏次数/浏览次数),因此收藏率会是搜索结果排序公式中的一项参数;但是,如果只看收藏率也会有问题,比如当分子分母都非常小的时候,假如浏览次数是2,收藏次数是1,那收藏率就会有50%,这种极端情况出现,为了减少这种极端,会加入另外一个参数,就是收藏次数。于是到现在已经找好了三个参数:相关度、收藏次数、收藏率。

第三步:归一化

定好了参数后,由于这些参数几乎不在一个数量级,无法直接放进公式计算,因此需要先明确他们的范围:相关度数量级大约在100以内;收藏次数非常大,约为好几万,且不可控;收藏率范围在0~1之间。因此我们需要把三个参数归一,便于计算。由于数学一般,当时能想到的方法有两个:一种是对数,一种是分数。我来说下我的理解:拿“收藏次数”这个参数来看,如果用对数的话,可以有一个变量,log2^A,A是收藏次数,如果用这个公式来计算的话,2个收藏跟2000个收藏差别不大,但还是无法避免前文所说“收藏和浏览次数都很小,但收藏率极高”的问题,且范围只是在一定范围内可控,仍然不知道如何跟“收藏率”放在一起计算;于是模仿了“收藏率”公式:收藏次数/浏览次数,收藏次数也按照这样归一:分子是当前食谱的收藏次数,分母是当前搜索结果中的最大收藏次数。这样这个参数就有两个变量,当收藏次数极低时,这个参数很小,收藏率对整个公式的影响不会是致命的。于是仿照这个公式得出“相关度”的归一,得出最终计算排序分值的公式:A*当前相关度/最大相关度+B*当前收藏次数/最大收藏次数+C*当前收藏次数/当前浏览次数,这样保证三个参数的取值范围都是0~1,后续只要根据不同关键词,调整A、B、C三个值,使收藏率高的食谱排在考前的位置即可。

结果和复盘

结果可想而知啦,通过搜索路径产生的收藏转化,提高了30%+。当然这并不是高枕无忧的解决方案,由于我们的排序公式对所有词的搜索结果计算是一视同仁的,但是分析了关键词搜索趋势后发现,搜索词是可以聚类的,并不是没有规律,尤其是像食谱搜索这样的垂直领域,用户对每个(或者说每类)关键词搜出的结果有不同的预期,比如说:用户会搜索食谱类目名称,如“下午茶”、“家常菜”、“创意菜”等,或者按照食材来搜索,如“鸡胸肉”、“三文鱼”等,单看这两种类型的搜索词可以猜测出用户的搜索场景:搜索类目词的用户手上还没买食材,纯粹是来找灵感的,所以对新鲜感的要求比较高,两天来看到同样的东西就会失去热情,所以优化的方向应该是加入一个时间参数,越新的食谱排在越前面;搜索食材词的用户大多已经拿买好了食材,这个时候找到食谱就行,对新鲜感的需求不如类目词,而是需要发掘长尾的食谱,所以此时优化的方向不会加入时间参数,而是在原来的公式上调整权重,让“相关度”的权重更大。

当然这还只是短期的策略,再往后如果资源允许的情况下,会加入协同过滤的算法,是将相似喜好的用户分组对待,更场景化。比如与“我”喜好相似的用户搜索“家常菜”后点击或收藏的食谱,会排在“我”的搜索结果里更靠前的位置。

另外,由于食谱有时令性,用户在夏天搜索“家常菜”和在冬天搜索“家常菜”的诉求也会是不一样的,比如在夏天搜索“家常菜”我可能更想吃“凉菜”,此时如果搜出了很多羊肉汤也是很不合时宜的,因此在排序公式中,参数前面加上“近期该搜索词的**量”作为权重公式,我觉得会更有效率。

但是,在优化了搜索带来了一大波转化后也还是立刻达到瓶颈,原因是用户在进入详情页后,流量就死了,所以下一步我们紧接着就上了“食谱相关推荐”以增加详情页流量,这是另一个有趣的话题,有时间再来写~

(以上)



我可能写得一般,但是也有卑微的版权~

你可能感兴趣的:(一个食谱垂直领域的搜索产品)