Welcome

首页 / 软件开发 / 数据结构与算法 / 有监督下垂直搜索引擎排序算法的设计思路

有监督下垂直搜索引擎排序算法的设计思路2011-09-30 博客园 xiaotie本文是很久之前写的,刚才翻硬盘翻到了,现在放出来。这只是一个形式化思路,暂时没时间去实现 ,我简单验证过这个形式化过程,暂时还没发现问题,但不保证这个过程没有问题。如果您发现了问题, 还请指正,谢谢!

垂直搜索领域目前没有通用的判断排序结果优劣的标准,为此引入监督者这一角色,希望设计算法, 使该算法对搜索引擎的排序结果尽量接近监督者的排序结果。

引入1位专家作为监督者S。S选择关键词K。输入K,检索得到M条结果,然后在M条结果中随机选择N个 结果,得到序列SR={R0,R1,……,Rn-1}。

S根据经验,对这N个结果进行排序。得到序列SS={……,Si,j,…… },其中 ,Si,j的脚标i代表Si,j在源序列SR中的位置,j代表序列 Si,j在SS中的位置。如S4,2代表这个任务在源序列对应为 R4,在新序列SS中排第3(脚标是2,但因为元素脚标是从0起始的,因此排第3位 。)。

定义函数 ΦS(Rj)为Rj在序列SS中的的位置。假设 序列SS={S5,0, S2,1,……,S74,312},则有 ΦS(R5)=0; ΦS(R2)=1; ΦS (R74)=312;

令X是一种排序算法,X对序列SR排序得到序列SX。ΦX (Rj)为Rj在序列SX中的位置。

令(Rm,Rn)为SR中不同元素的组合序列。这些序列组成集合:

C = {(Rm,Rn)| m≠n , Rm∈SR,Rn∈ SR }。

令ΩX(Rm,Rn)= -sign(ΦX(Rm)- ΦX(Rn))。

其中,

ΩX(Rm,Rn) >0,意味着排序算法X将Rm排在 Rn的前面。

令EX,S,R是C中X排序结果和S排序结果不一致的序列的集合:

EX,S,R= {(Rm,Rn)| (Rm,Rn) ∈C, ΩX(Rm,Rn) ≠ ΩS(Rm,Rn)} 。

令λ(Rm,Rn)是X排序结果和S排序结果不一致的代价函数,采用以下的代价函数:

λ(Rm,Rn)=|m-n|

令总代价 Λ(EX,S,R) =Σλ(Rm,Rn),(Rm,Rn) ∈ EX,S,R