個性推薦算法說的不少了,經常使用的模型是:算法
U*V= Q框架
其中Q是評分表,通常共3列:用戶id,物品id,評分值函數
U是用戶特徵表,V是物品特徵表。學習
算法的最終目標就是從Q算出U和V。那麼Spark Mllib裏有ALS算法能夠作矩陣分解,其基本原理是最小交叉二乘法,用到了Breeze庫的矩陣函數庫。所謂交叉二乘就是輪流固定U或V,來算出V或U。好比第一輪固定U,來算出V,第二輪固定算出的V,來算出U。直到最後偏差收斂。優化
Spark裏主要是用RDD框架來對數據分塊計算,達到並行的特色。.net
而Tensorflow裏用深度學習的方法來實現矩陣分解就更簡便了,其基本原理是根據U*V和Q的差值來自動優化,深度學習的特色就是隻要你搭建好了學習模型,那麼只要自動訓練就能夠找到最優解,所以實現起來也很方便。blog
TensorFlow的代碼能夠參考:get
https://blog.csdn.net/m0_38045485/article/details/81174728深度學習