NLP(四十七):损失函数
- 三元组损失 triplet loss

设计初衷:
让x与这个跟他同类的点距离更近,跟非同类的点距离更远。
d是距离,m的含义是,当x与x+的距离减去x与x-,如果小于-m时,对损失函数的贡献为0,
如果大于-m时,对损失的贡献大于0.
含义就是:当负例太简单时,不产生损失,这个损失的目标是,挑选困难样本进行分类。
这个损失函数的缺陷:
一个正例只能和一个负例进行对比。效率较低。
这个损失函数,算法如何求解?
2. InfoNCE损失


注意一点:
一个样本点u,一个正样本点和多个负样本点。而不是一个u,分子是u和多个正样本点的内积做exp。
如果对infonce改写,分子内积求和依然可以。但是从infonce的推导上不可以。
为什么?
3. hinge loss

t>0,是一个超参数。
当y<1/t时,l(y)大于0。说明该样本点贡献了损失。
当y>1/t时,l(y)等于0。说明该样本点没有贡献损失。
4. pairwise ranking loss
当两者不是同一个类的时候,如果两个的距离小于m,则贡献了损失,如果大于m则没有贡献损失。
可以从困难样本、简单样本角度来理解,只有困难样本才会拿去训练,简单样本不会拿去训练。
也可以从这个角度理解:当两个不属于同一类别,但是距离又比较近的时候,应该对其进行惩罚,让两者的距离变远。

上面两个式子,可以统一为下式,当y为1时,时positive pair。仅保留了前面那个距离。
当y为0时,仅保留了后面那个式子。

这个损失函数缺点是:每次仅考虑两个样本。
且m是超参数。
5. BPR算法,贝叶斯个性化排序(Bayesian Personalized Ranking, 以下简称BPR)
是用来做矩阵分解的,一般来说是评分矩阵,分解为W矩阵和H矩阵的乘法,求解W矩阵和H矩阵。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧