负采样
两种负采样
第一种负采样
采样方式为:
<u,i0>,<u,i1>,<u,i2>,<u,i3>,<u,i4>,<u,i5> 其中,i0为正样本,i1, i2,...,i5为负样本。
损失计算方式为
loss⇒loss=−p0Πi=15(1−pi)=−log(p0)−i=1∑5log(1−pi)=−log(1+exp(−s0)1)−i=1∑5log(1−1+exp(−si)1) 第二种负采样
采样方式为:
<u,i0,i1,i2,i3,i4,i5> 其中,i0为正样本,i1, i2,...,i5为负样本。
损失计算方式为
⇒loss=−∑i=05exp(si)exp(s0)loss=−(s0−logi=0∑5exp(si))=−s0+logi=0∑5exp(si) 两种负采样的本质区别
对两种负采样的损失函数分别求梯度。
第一种负采样求梯度
∂s0∂loss∂si∂loss∣i=1,2,...,5=∂s0∂[−log(1+exp(−s0)1)−∑i=15log(1−1+exp(−si)1)]=−p0p0(1−p0)=−1+p0=∂si∂[−log(1+exp(−s0)1)−∑i=15log(1−1+exp(−si)1)]=−1−pipi(1−pi)=pi 其中,上式的推导用到了 sigmoid导数的特点:f′(z)=f(z)(1−f(z))。
注意,这里的
i=0∑5∂si∂loss=−1+i=0∑5pi=0 即所有的变量si的梯度的和不是1
第二种负采样求梯度
∂s0∂loss∂si∂loss∣i=1,2,...,5=∂s0∂[−(s0−log∑i=05exp(si))]=−1+∑i=05exp(si)exp(s0)=−1+p0=∂si∂[−(s0−log∑i=05exp(si))]=∑i=05exp(si)exp(si)=pi 注意:所有变量的梯度值相加等于1:
i=0∑5∂si∂loss=−1+i=0∑5pi=−1+1=0 所以,每个变量si的梯度更新值是相互制约的,总和等于1。
这就是两种负采样的本质区别,即所有的变量si的梯度的和是否等于1。