zoukankan      html  css  js  c++  java
  • ALS算法 (面试准备)

    ALS算法描述:

    1、ALS算法用来补全用户评分矩阵。由于用户评分矩阵比较稀疏,将用户评分矩阵进行分解,变成V和U的乘积。通过求得V和U两个小的矩阵来补全用户评分矩阵。

    2、ALS算法使用交替最小二乘法来进行求解。

    3、ALS分为显示反馈和隐式反馈两种。显示反馈是指用户有明确的评分。对于商品推荐来说,大部分是通过用户的行为,获取隐式反馈的评分。

    隐式反馈评分矩阵需要进行处理,如果有用户评分则置为1,没有则赋值为0。但是对这个处理后的评分矩阵,再有一个置信度来评价这个评分。置信度等于1+a*用户真实评分

    4、ALS的代价函数是估计值和现有的评分值误差的平方和,引入了L2正则

    ALS算法参数:

    参数:
    rating:由用户-物品矩阵构成的训练集
    rank:隐藏因子的个数
    numIterations: 迭代次数
    lambda:正则项的惩罚系数
    alpha: 置信参数
     

    ALS交替最小二乘法求解步骤:

    最小二乘法是通过最小化误差的平方和来寻找和数据最匹配的函数。

    使用交替最小二乘法来求解。步骤是先设置一个X规定,然后求解另一个矩阵Y。然后再固定一个矩阵Y,求解另一个矩阵X。这就是交替二乘法的步骤。

    在矩阵求解的过程中,比如固定Y,求解X的话,目标评分矩阵A。X的每一行可以独立求解,X的第i行和Y的计算得到A的第i行。

    这样的话,对于每一步来说,X或者Y的行或者列都是可以独立并行求解的。这样ALS就可以进行并行化计算了。

  • 相关阅读:
    深入理解JVM之JVM内存区域与内存分配
    Spring MVC配置文件的三个常用配置详解
    spring Bean类自动装载实现
    深入理解Java之线程池
    java 通过反射机制调用某个类的方法
    InvocationHandler中invoke()方法的调用问题
    线程 synchronized锁机制
    Java 并发编程:volatile的使用及其原理
    Java 修饰符
    Set、List、Map的区别和联系
  • 原文地址:https://www.cnblogs.com/earendil/p/8871711.html
Copyright © 2011-2022 走看看