3路分解机

数据挖掘 机器学习
2021-09-26 05:30:47

因式分解机是对不同特征之间的交互进行建模的好方法,其方式比成熟的二次交互更有效。存在像 libFM 和 Vowpal Wabbit 的--lrq选项这样的高效实现。

我的问题是关于高阶交互:FM 论文提到将其扩展到高阶(Tensor FM?)“很容易”,请参阅。方程。(5) 在论文中。3路分解机有什么好的实现吗?

[从交叉验证移动]

2个回答

我最近启动了polylearn,这是一个 scikit-learn-contrib 包,用于在 Python 和 Cython 中高效实现分解机器和多项式网络。Polylearn 目前使用 polylearn 网站上引用的论文中描述的方法为 2 阶和 3 阶分解机以及任意阶多项式网络协调下降求解器。

我目前正在使用 SG 和 CD 风格算法实现任意高阶 FM,使用最近的这篇论文中的方法,我应该在一周内准备好它。

Polylearn 还没有发布,所以我很想听听关于 API 和功能的任何反馈,以便在 0.1 发布之前完成!

张量流实现 https://github.com/geffy/tffm/

它支持任意阶 (>=2) 分解机、密集和稀疏输入。界面采用 Scikit-learn 风格。

请参阅带有示例的 Jupyter 笔记本