搜索引擎排序算法详解

搜索引擎排序算法详解
搜索和推荐区别:
搜索是一个非常主动的行为,并且用户的需求十分明确,在搜索引擎提供的结果里,用户也能通过浏览和点击来明确的判断是否满足了用户需求 。然而,推荐系统接受信息是被动的,需求也都是模糊而不明确的 。以“逛”商城为例 , 在用户进入商场的时候,如果需求不明确,这个时候需要推荐系统,来告诉用户有哪些优质的商品、哪些合适的内容等,但如果用户已经非常明确当下需要购买哪个品牌、什么型号的商品时,直接去找对应的店铺就行 , 这时就是搜索了 。
一般的搜索引擎在检索过程中需要考虑两个因素:1)相关性 2)重要性
1)相关性
相关性是指返回结果和输入query关键词是否相关 , 这是搜索引擎基本问题之一,目前常用的算法有BM25和空间向量模型 , 这两个算法ElasticSearch都支持,一般商业搜索引擎都用BM25算法,BM25算法会计算每个doc和query的相关性分数,我们使用Dscore表示 。
2)重要性
重要性是指doc被信赖的程度,我们应该把最被用户信赖的doc返回给用户,而不是让用户自己鉴别,尤其是在商品充分竞争的电商搜索,我们必须赋予商品合理的重要性分数,才能保证搜索结果的优质,重要性分又叫做静态分,使用Tscore表示 。
搜索引擎最终的排序依据是:
Score=Dscore*Tscore
即综合考虑静态分和动态分,给用户相关且重要的doc
动态分数Dscore计算:
搜索关键词为“睡眠”
从搜索解释可以看出ES默认的搜索算法是BM25:
【搜索引擎排序算法详解】静态分Tscore计算:
静态计算过程需要解决2个问题:1)稳定性 。静态分的计算不可以通过增加单一指标线性增加分值(比如刷单对搜索引擎的质量的影响)2)区分度 。在保证稳定性的基础上doc静态分要有足够的区分度可以保证同样搜索的条件下,排在前面的doc的质量比排在后面的质量高 。
我们假设商品的静态分有4个决定性因素,1、日期 2、点赞量 3、评论量 4、分享量
Tscore=日期衰减系数*+b*g+c*h)
日期衰减系数=1/log
说明:发帖越早 衰减越大
a,b,c是权重参数,用于平衡各个指标的影响程度 。f,g,h是代表函数用于把原始的指标转化成合理的度量 。
a,b,c是权重参数由变异系数法获得:
变异系数法是直接利用各项指标所包含的信息,通过计算得到指标的权重 。是一种客观赋权的方法 。此方法的基本做法是:在评价指标体系中,指标取值差异越大的指标,也就是越难以实现的指标 , 这样的指标更能反映被评价单位的差异 。
由于评价指标体系中的各项指标的量纲不同,不宜直接比较其差别程度 。为了消除各项评价指标的量纲不同的影响 , 需要用各项指标的变异系数来衡量各项指标取值的差异程度 。各项指标的变异系数公式如下:
Vi是第i项指标的变异系数,
σi是第i项指标的标准差,
Xi是第i项指标的平均值 。
各项指标的权重为:
通过以上算法可以获取a,b,c的值 。
f , g,h通过log-zscore归一化获得 。
最终可以获得Tscore值 。
然后通过 Score=Dscore*Tscore可以获取到最终排序 。
你也许会问,怎么才能变得成功与富有?答案其实非常简单,那就是每天进步一点点 。
以上就是朝夕生活(www.30zx.com)关于“搜索引擎排序算法详解”的详细内容,希望对大家有所帮助!

猜你喜欢