场感知分解机

数据挖掘 机器学习 推荐系统
2021-10-13 05:53:52

谁能解释场感知分解机(FFM)与标准分解机(FM)的比较?

标准: http ://www.ismll.uni-hildesheim.de/pub/pdfs/Rendle2010FM.pdf

“领域意识​​”: http ://www.csie.ntu.edu.tw/~r01922136/kaggle-2014-criteo.pdf

3个回答

假设(在单热编码之前)您有一组预测变量/字段 Z(比如电影类型、用户性别和用户种族)。进一步假设,每个预测变量zZ 可以承担其中之一 kz价值观。在 one-hot 编码之后,您将拥有一组新的二进制特征X 大小的 K:=zZkz.

在具有所有交互作用的模型中,您必须估计交互作用系数矩阵 Q, 其中有 K×(K+1)/2 独特的条款。

分解机将结构放在矩阵上 Q,并假设 QWTW, 在哪里 W 有维度 l×K, 和 1lK用户指定的一些数字。我们估计W 代替 Q.

场感知分解机将结构置于 Q也是。它分区Q 基于块 z(原始特征)。如果qzi,zj 表示 zi,zjQ, 我们假设 qzi,zj 来自 zi,zjWjTWi, 在哪里 Wi 有维度 l×K. 与 FM 一样,我们估计Wi 代替 Q.

FM分解 Q 拥有 K×l参数。“场感知” FM 具有K×l×|Z|参数。具有所有交互作用的模型具有K×(K+1)/2 参数。

看来您要进行高级描述。如果您参考原始帖子幻灯片中链接的幻灯片,则可以比较 FM(幻灯片 11)与 FFM(幻灯片 12)。

举个简单的例子,如果您正在了解用户和电影,FM 可能具有以下因素:

w_{user_1}*w_{movie_1}*... + w{user_1}*w_{genre_1}*...

FFM 将具有:

w_{user_1, movies}*w_{movie_1, users}*... + w{user_1, genres}*w_{genre_1, users}*...

关键区别在于,在 FMw_{user_1}中,两个术语的系数相同——用户只有一个概念。在 FFM 中,您可以为每个上下文学习一个单独w_{user_1}的内容,例如它是否与电影或流派交互。请注意,它不是针对每个特定的电影或流派单独学习的,而是针对电影和流派的一般学习。也就是说,它为每种类型的交互分别学习用户的上下文。

另请注意,w_{movie_1}因为w_{movie_1, users}该术语正在与w_{user_1}用户交互。

标准分解机器也有字段。这里的“新奇”似乎是 GBDT 特性的使用和散列技巧的应用。似乎效果不是很好:在最后一张幻灯片上查看性能的分钟范围。