TP=∑t=1Tℓtℓ^t,
FP=∑t=1T(1−ℓt)ℓ^t,
FN=∑t=1Tℓt(1−ℓ^t).
ℓt: true label for pair t.
ℓ^t: estimated label for pair t.
Where:
TP=∑t=1Tℓtℓ^t,
FP=∑t=1T(1−ℓt)ℓ^t,
FN=∑t=1Tℓt(1−ℓ^t).
ℓt: true label for pair t.
ℓ^t: estimated label for pair t.
Where:
α=0: recall,
α=1: precision.
With the purpose of getting Fα, sampling pairs and asking Oracle to estimate is a good choice.
Wait...
Wait...
Since the original distribution is imbalanced, uniformly sampling doesn't work here because of how we calculate Fα (Why?).
Wait...
Since the original distribution is imbalanced, uniformly sampling doesn't work here because of how we calculate Fα (Why?).
Wrong answers don't contribute to F score!
So, why not use bias against bias?
Instead of sampling directly on p(x) to estimate θ=E[f(X)],
i.e. θ^=T1∑i=1Tf(xi),
we draw samples from q(x).
Interestingly, we can still do estimation by θ^IS=T1∑i=1Tq(xi)p(xi)f(xi).
Rewrite Fα,T=α(TP+FP)+(1−α)(TP+FN)TP
to FαAIS=α∑t=1Twtℓ^t+(1−α)∑t=1Twtℓt∑t=1Twtℓtℓ^t
Note:
Rewrite Fα,T=α(TP+FP)+(1−α)(TP+FN)TP
to FαAIS=α∑t=1Twtℓ^t+(1−α)∑t=1Twtℓt∑t=1Twtℓtℓ^t
Find q(zt), how?
Note:
q∗∈argminqVar(F^αAIS[q])
Previous work: q∗(z)∝p(z)⋅A(Fα,pOracle(1∣zt))
wt=q(zt)p(zt)
Note: A(⋅) here stands for ellipsis
q∗∈argminqVar(F^αAIS[q])
wt=q(zt)p(zt)
Note: A(⋅) here stands for ellipsis
As long as we got Fα and pOracle(1∣zt), problem solved.
Previous work: q∗(z)∝p(z)⋅A(Fα,pOracle(1∣zt))
q(z)=ϵ⋅p(z)+(1−ϵ)⋅q∗(z).
Epsilon greedy, multi-armed bandits problem.
Fα and p(1∣z) - unknown!
Approximate them iteratively: For each step t+1, use Fα and p(1∣z) in step t.
Intuitively, we can just use F^αAIS instead of Fα.
There's no way we can do to get the distribution of the oracle without asking them for every z.
But...
There's no way we can do to get the distribution of the oracle without asking them for every z.
But...
Use stratification to approximate is feasible
Stratification is a statistical method to estimate some variable by putting samples into several strata. A.K.A. bin boxes.
Similarity func s:Z→R kicks in.
For each z in Pk, we can use p(1∣Pk) instead of p(1∣z) now.
We treat each p(1∣Pk)∼Bernoulli(πk), so πk∼Beta(α,β).
How to update α and β iteratively? Easy.
if ℓt=1, α+=1
if ℓt=0, β+=1