zoukankan      html  css  js  c++  java
  • Factorization Machines 因子分解机

    Factorization Machines (FM)

    首先这种算法是一种有监督的机器学习模型,既可以用在分类问题也可以用在回归问题当中,它是一种非线性的模型,相比逻辑回归具备了二阶交叉特征表达能力(不易拓展到三阶以上)。可以通过stochastic(随机) gradient descent (SGD), alternative least square (ALS), or Markov chain Monte Carlo (MCMC)方法进行训练。这种算法某种程度算作SVD算法的拓展,可以将稀疏向量表达的某一维特征转换为隐稠密向量(通过学习得出,在某些神经网络中充当embedding层便于网络接入),两个稠密向量的内积是他们的权重。它的变种为field-aware factorization machines (FFM),提高了特征交叉能力,但是复杂度达到O(n^2)。

    组合特征与辛普森悖论

    一所美国高校的两个学院,分别是法学院和商学院。新学期招生,人们怀疑这两个学院有性别歧视。现作如下统计:

    法学院

    性别 录取 拒收 总数 录取比例
    男生 8 45 53 15.1%
    女生 51 101 152 33.6%
    合计 59 146 205


    商学院

    性别 录取 拒收 总数 录取比例
    男生 201 50 251 80.1%
    女生 92 9 101 91.1%
    合计 293 59 352

    根据上面两个表格来看,女生在两个学院都被优先录取,即女生的录取比率较高。现在将两学院的数据汇总:

    性别 录取 拒收 总数 录取比例
    男生 209 95 304 68.8%
    女生 143 110 253 56.5%
    合计 352 205 557

    在总评中,女生的录取比率反而比男生低。这个例子说明,简单的将分组数据相加汇总,是不能反映真实情况的。

    将学院与性别组成[学院, 性别]二阶交叉特征,相比于将数据聚合后分析,可以丢失更少的信息

    Intuition behind Factorization

    用户电影评分:

    希望找到两个隐矩阵,他们相乘可以尽可能的接近打分矩阵

     

    预测矩阵:

    所以我们的目标就变成了找到P和Q使得偏差最小, 方法就是利用gradient descent使得以下的损失函数减到最小

    训练过后(O(kn)复杂度),用户电影喜好矩阵将被填满,这样就可以降序推荐给用户了。

    recommendation example of user-movie:

    https://www.coursera.org/learn/sas-viya-rest-api-python-r/lecture/TjYut/demo-modeling-sparse-data-using-the-python-api

    https://zh.wikipedia.org/wiki/%E8%BE%9B%E6%99%AE%E6%A3%AE%E6%82%96%E8%AE%BA

    https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/

    https://www.coursera.org/learn/sas-viya-rest-api-python-r/lecture/8V2LI/factorization-machines-for-recommendation

    https://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf

    转载请注明出处: https://www.cnblogs.com/lnas01/p/13179336.html

  • 相关阅读:
    eclipse如何导入项目
    CBC和CTR解密模式——C++实现
    安装java之后没有jre目录
    对称密钥解密——C++方法
    使用Eclipse时一些报错
    C/C++文件I/O操作
    获取string的长度
    新建ftp快捷方式
    一些IT书籍
    C语言获得数组长度的函数
  • 原文地址:https://www.cnblogs.com/lnas01/p/13179336.html
Copyright © 2011-2022 走看看