推荐系统与深度学习千字文——FFM模型原理

上一篇我们讲解了FM模型:

推荐系统与深度学习(一)——FM模型原理

从FM的公式我们可以看出:

推荐系统与深度学习千字文——FFM模型原理_第1张图片

    FM中每个特征所对应的向量是唯一的:

    Vi是Xi的向量化表达,多个特征相乘的时候,只需要将Vi相乘,这一模型的优势在于考虑高维特征组合的情况下最小化运算量,但是问题也是有的:

    这一模型没有考虑各个特征之间的关系,而不同特征之间的关系恰巧是不一样的。

    例如:

推荐系统与深度学习千字文——FFM模型原理_第2张图片

    Publisher与Advertisor可能是正相关/强相关,Publisher与Gender可能是负相关/弱相关;ESPN体育类型的网站上发布Nike商品点击量会很高,放其他商品就未必了。

 

FFM——场域

 

    这样的思考引发大家对特征关系向量的研究,引出了“场域”的概念,每个特征都有一个场域f(场域f有k个维度),这个场域f代表两个特征之间的关系:

推荐系统与深度学习千字文——FFM模型原理_第3张图片

    原则上每个特征与其他n-1个特征存在相互关系,即n-1个场域f,每个场域f是一个Vij向量:

推荐系统与深度学习千字文——FFM模型原理_第4张图片

    从上图逻辑看,每个特征所对应的数据从FM中的一个k维向量变成了一个n-1*k维的矩阵,两个特征运算的时候,只需要从矩阵中找到与之对应的向量相乘就可以了,如下面FFM模型:

推荐系统与深度学习千字文——FFM模型原理_第5张图片

    不同的特征组合会有不同的场域向量进行计算。

    损失函数的计算,FM与FFM模型就一致了。

 

FM与FFM进行比较

 

    两两特征组合的算法方面,FFM和FM则是完全相同的,区别就是每个特征对应的特征embedding个数不同;FM每个特征只有一个共享的embedding向量,而对于FFM的一个特征,则有(N-1)个特征embedding向量,用于和不同的特征域特征组合时使用。

    FFM运算量非常大,需要计算的参数有nfk个,复杂度为O(k*n2);而FM中需要计算的参数有nk个,复杂度为O(k*n),在模型训练过程中n的数量非常大,所以,扩大f倍的情况下运算量指数型增加,而且容易过拟合,为减少运算量可以适当减少k的大小。

    FM与FFM都可以用在推荐系统中,主要应用场景可以在召回排序方面,有兴趣可以查验知乎上的文章:https://zhuanlan.zhihu.com/p/59528983

推荐系统与深度学习千字文——FFM模型原理_第6张图片

    FM/FFM主要应用场景为CTR预估,在计算广告领域非常有效,是对LR模型的升级。

欢迎大家关注公众号:

 

你可能感兴趣的:(推荐算法专栏,推荐系统,深度学习)