公式算法IR

公式算法

位置索引

positional index 位置索引

考察格式是提供某个单词的索引表,然后给出一个短语句子让你找会在哪个doc里出现。

解法就是查位置,查对应位置关系就好,简单

<friend: 22980;
d1: 1, 6, 10, 16;
d2: 28, 97, 138, 143, 150, 151;
d3: 25, 30, 31, 65, 188, 209;
d4: 4, 34, 119, 121, 159, 177;
d5: 55;
…> 查找a friend in need is a friend indeed
首先friend应该在2及以后的位置,然后应该相距4个值,相减为5即可。所以选d2

向量空间相关

0-1简易

introduction

就是给出一些doc内的语句和查询语句,然后计算对应的cos值
去停词,全取,小写,得vector,得cos。

不考虑stemming,不考虑地名等,不考虑去除‘s

image

TF-IDF

TF-IDF

和0-1一样,只是不用01表示

image

image

BM25

公式:

s i m B M 25 ( d j , q ) ∼ ∑ k i ∈ d j ∧ k i ∈ q f i , j × ( 1 + k ) f i , j + k ( ( 1 − b ) + b × l e n ( d j ) a v g _ d o c l e n ) × l o g 2 ( N − n i + 0.5 n i + 0.5 ) sim_{BM25}(d_{j},q)\sim\sum_{k_{i}\in d_{j}\wedge k_{i}\in q}\frac{f_{i,j}\times(1+k)}{f_{i,j}+k\left((1-b)+\frac{b\times len(d_{j})}{avg\_doclen}\right)}\times log_2\left(\frac{N-n_{i}+0.5}{n_{i}+0.5}\right) simBM25(dj,q)kidjkiqfi,j+k((1b)+avg_doclenb×len(dj))fi,j×(1+k)×log2(ni+0.5Nni+0.5)

P@n,R-precision,MAP。很简单

Single value metric 单值度量 基于RelRet

image

bpref

image

更多采取bpref10

NDCG

  1. 有一个G列表表示收益,各位置对应的值就是rank值

  2. 有一个CG列表表示累计收益,各位置对应的值就是自己的rank加上上一层的CG值。 C G [ i ] = { G [ 1 ] , i = 1 ; G [ i ] + C G [ i − 1 ] , i > 1 CG[i]=\begin{cases}G[1],&i=1;\\G[i]+CG[i-1],&i>1\end{cases} CG[i]={G[1],G[i]+CG[i1],i=1;i>1但是有一个弊端,就是CG越累积肯定是越大的,所以越往后越大,但是后面那些相关性不大的因此收获更大的rank,不大好,所以要加一个新list DCG discounted cg

  3. DCG的值就是改进后的,第一层的值是本身,以后的值都是自己的值除以log2i加上上一层的DCG。 D C G [ i ] = { G [ 1 ] , i = 1 ; G [ i ] l o g 2 i + D C G [ i − 1 ] , i > 1 DCG[i]=\begin{cases}G[1], & i=1;\\ {\frac{G[i]}{log_2i}}+DCG[i-1], & i>1\end{cases} DCG[i]={G[1],log2iG[i]+DCG[i1],i=1;i>1

    1. 考虑了两个因素:相关性(relevance)和排名(position)。DCG 越高,说明系统返回的结果越符合用户的需求。然而,DCG 的值依赖于查询和文档的数量,因此很难在不同查询之间进行比较。
    2. 相关doc越多,收益越大,越早期的doc贡献越大
    3. 但是不好比较,最好变成0-1的结果,所以NDCG应运而生
    4. 但是变成NDCG前,有一个新指标IDCG即理想DCG
  4. IDCG的值应该是根据Rel的rank从大到小往后排列,如果Rel的长度小于Ret的话,后面的就补0

image

例题

image

序号docPbprefGCGDCGIGIDCGNDCG
1d120000330
2d10.51-1/8333360.5
3d190.3303337.890.38
4d150.2503328.890.34
5d20.203329.750.31
6d40.167033210.530.28
7d81/7033110.880.28
8d90.125033111.220.27
9d60.11033011.220.27
10d140.1033011.220.27
11d32/111-6/8253.58011.220.32
12d50.167053.58011.220.32
13d163/131-6/8384.39011.220.39
14d182/71-6/8194.65011.220.41
15d134/15094.65011.220.41
16d200.25094.65011.220.41
17d75/171-8/81104.9011.220.44
18d110.331-8/82125.38011.220.48
  • precision: 6/18 = 0.33
  • recall: 6/8 = 0.75
  • R-precision: P@8 = 0.125
  • MAP: P@2+P@11+P@13+P@14+P@17+P@18 = 0.2282
  • bpref: 1-1/8+1-6/8+1-6/8+1-6/8+1-1+1-1 = 13/8 => 13/64 = 0.203125
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值