如上图,盘算两个句嵌入 u \pmb u u和 v \pmb v v之间的间隔(1-余弦相似度),然后使用参考2中提出的对比丧失函数作为目标函数:
L = y × 1 2 ( distance ( u , v ) ) 2 + ( 1 − y ) × 1 2 { max ( 0 , m − distance ( u , v ) ) } 2 \mathcal L= y\times \frac{1}{2} (\text{distance}(\pmb u,\pmb v))^2 + (1-y)\times \frac{1}{2} \{ \max(0, m - \text{distance}(\pmb u,\pmb v)) \}^2\\ L=y×21(distance(u,v))2+(1−y)×21{max(0,m−distance(u,v))}2
这里的 y y y是真实标签,相似为1,不相似为0; m m m表示margin(隔断值),默以为0.5。
这里 m m m的意思是,如果 u \pmb u u和 v \pmb v v不相似( y = 0 y=0 y=0),那么它们之间的间隔只要充足大,大于即是隔断值0.5就好了。假设间隔为0.6,那么 max ( 0 , 0.5 − 0.6 ) = 0 \max(0,0.5-0.6)=0 max(0,0.5−0.6)=0,如果间隔不敷大( 0.2 0.2 0.2),那么 max ( 0 , 0.5 − 0.2 ) = 0.3 \max(0,0.5-0.2)=0.3 max(0,0.5−0.2)=0.3,就会产生丧失值。
整个公式的目的是拉近相似的文本对,推远不相似的文本对到一定程度就可以了。实现的时间 max \max max可以用relu来表示。
实现