threejs加载模型挤压变形_FM算法及其变形的理论介绍和代码分析

本文深入介绍FM(Factorization Machines)算法及其变形,包括Field-aware FM、Attention FM、Field-weighted FM、Neural FM和Deep FM。理论部分涉及L-BFGS、OWL-QN优化算法,以及在线学习的FTRL算法。代码分析部分探讨了LIBFFM和DIFACTO的实现细节,展示了FM模型在实际应用中的优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是”一周一更新“专栏的第四篇文章。

前言

本篇文章的目标是从理论和实践的角度来介绍FM算法,及其相应的变形算法。主要分为理论和代码分析两个部分来介绍。

理论部分会先介绍,常用的优化算法,包括离线优化算法L-BFGS和用于解决L1正则的OWL-QN优化算法;再者会介绍在线优化算法,主要是浅析FTRL优化算法,并对在线优化算法背景做一个介绍;接着会具体介绍FM(Factorization Machines)算法及其变形,具体包括Field-aware FM、Attention FM、Field-weighted FM、Neural FM、Deep FM、DifaCTO算法。

代码分析部分会对LIBFFM和分布式的FM算法库DIFACTO进行介绍。下一篇还会介绍基于PS(Parameter Server)实现的分布式FM算法。

目录

  • 理论介绍
    • L-BFGS和OWL-QN优化算法
    • Online-learning优化算法浅析
    • FM算法及其变形优化
  • 代码分析
    • LIBFFM代码分析
    • DIFACTO代码分析

理论介绍

L-BFGS与OWL-QN优化算法

L-BFGS优化算法

1)要了解L-BFGS优化算法,让我们先来回顾一下牛顿优化算法

带有L2正则化的LR表示为:

b274be0af56efdd33155c913b847e279.png

通过二阶泰勒展开后为:

e6451506926878c6b602315e28f815ff.png

则可推导出牛顿法的计算公式为:

dcdb9f27510862718de5e03b8b3bee1f.png

其中,

的公式为:

d7c2a4b15c4bddf26ee04a4be3e46068.png

从上面的推导公式可以看出牛顿法的核心是计算海森矩阵的逆运算,但是在实际场景中,其计算量和存储量都是巨大的,后续的各种二阶优化算法都是从减少计算量和存储量的目标设计的。

2)而L-BFGS算法则是从同时减少计算量和存储量的角度来设计的近似牛顿法,细品,你会发现该算法设计的天才之处。

768f5ce148537b1c97fa1a728b906408.png

L-BFGS优化算法通过两个迭代的计算,通过前

步计算的
,来近似拟合海森矩阵的逆,即减少了每一步需要计算海森矩阵的问题也解决了海森矩阵的存储问题。

L-BFGS优化算法易于做并行化,所以实现大规模的L-BFGS理论上没有任何难度。

OWL-QN优化算法

因为L1正则不可导的问题,OWL-QN算法就是基于L-BFGS算法且可求解L1正则的优化算法。OWL-QN相较于标准的L-BFGS算法主要改进点是提出了伪梯度的概念;即当

,因为在l1规范化在这个点并不可导,所以需要决定这个时候是往小于0方向搜索还是大于0方向搜索。

左右微分的计算公式如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值