1. 程式人生 > >ALS演算法的基本思想

ALS演算法的基本思想

SparkALS演算法基本思想

ALS演算法是基於模型的推薦演算法。起基本思想是對稀疏矩陣進行模型分解,評估出缺失項的值,以此來得到一個基本的訓練模型。然後依照此模型可以針對新的使用者和物品資料進行評估。ALS是採用交替的最小二乘法來算出缺失項的。交替的最小二乘法是在最小二乘法的基礎上發展而來的。由於本人數學有限,就大體的介紹下最小二乘法的思想

最小二乘法

以下是使用者A、B、C對物品A、B、C的打分

使用者\物品 物品A(id=1) 物品B(id=7)) 物品C(id=9)
使用者A(id=4) 5 ? 4
使用者B(id=2) ? ? 3
使用者C(id=3) 1 3 5

上圖的矩陣可以按照(使用者id,物品id)=評分的方式,在一個X/Y軸的一個點,只不過這些點有的有具體的值,有的沒有,那麼我們可以根據已經有值的點計算出一個函式F,使得這個函式F的曲線近似的穿插這些點,並使這些點的真值(表中的評分)與函式F測算值的方差之和最小(可以認為方差之和為0)。這樣就可以獲得一個方差函式FF,針對方差函式FF求偏導,就可以計算出函式F。
描述的不太清楚,可以參見部落格http://blog.csdn.net/yauphy1/article/details/43735763

相關推薦

python-GBDT演算法基本思想

GBDT的基本思想是:“積矽步以致千里” 也就是說我每次都只學習一點,然後一步步的接近最終要預測的值(完全是gradient的思想),換句話說,我們先用一個初始值來學習一顆決策樹,葉子出可以得到預測值,以及預測之後的殘差,然後後面的決策樹就要基於前面決策樹的殘差

分治演算法基本思想和典型案例

1 演算法思想  分而治之方法與軟體設計的模組化方法非常相似。為了解決一個大的問題,可以: 1) 把它分成兩個或多個更小的問題; 2) 分別解決每個小問題; 3) 把各小問題的解答組合起來,即可得到原問題的解答。小問題通常與原問題相似,可以遞迴地使用分而治之策略來解決。

ALS演算法基本思想

SparkALS演算法基本思想 ALS演算法是基於模型的推薦演算法。起基本思想是對稀疏矩陣進行模型分解,評估出缺失項的值,以此來得到一個基本的訓練模型。然後依照此模型可以針對新的使用者和物品資料進行評估。ALS是採用交替的最小二乘法來算出缺失項的。交替的最小二

深度學習中目標檢測演算法 RCNN、Fast RCNN、Faster RCNN 的基本思想

前言 影象分類,檢測及分割是計算機視覺領域的三大任務。即影象理解的三個層次: 分類(Classification),即是將影象結構化為某一類別的資訊,用事先確定好的類別(string)或例項ID來描述圖片。這一任務是最簡單、最基礎的影象理解任務,也是深度學習模型最先取得突

java演算法之動態規劃基本思想以及具體案例

一、基本概念     動態規劃過程是:每次決策依賴於當前狀態,又隨即引起狀態的轉移。一個決策序列就是在變化的狀態中產生出來的,所以,這種多階段最優化決策解決問題的過程就稱為動態規劃。 二、基本思想與策略     基本思想與分治法類似,也是將待求解的問題分解為若干個子問題(階

spark mllib中ALS演算法思想

對於一個users-products-rating的評分資料集,ALS會建立一個user*product的m*n的矩陣其中,m為users的數量,n為products的數量但是在這個資料集中,並不是每個使用者都對每個產品進行過評分,所以這個矩陣往往是稀疏的,使用者i對產品j

氣泡排序演算法基本思想

1.氣泡排序的基本思想 氣泡排序是交換排序中一種簡單的排序方法。 它的基本思想是對所有相鄰記錄的關鍵字值進行比效,如果是逆順(a[j]>a[j+1]),則將其交換,最終達到有 序化; 其處理過程為:  (1)將整個待排序的記錄序列劃分成有序區和無序區,初始狀態有序

記憶體管理的基本思想演算法

介紹作業系統是如何來管理記憶體資源。 層次化儲存體結構 計算機的儲存體系 暫存器(register) 在CPU內部,非常快速,昂貴 快取記憶體(cache) 非常快速,昂貴,容量小,易失性 主存(RAM) 中等速度,中等價格,易失性

Java面向對象的基本思想理解

java的oop部分1、封裝:把一些數據類型(屬性)和有關數據類型的操作(方法)封裝起來,形成一個不可分開的實體(類);給內部的屬性私有化,提供公開的方法。當外部需要訪問時,可以不用管實體內部的具體邏輯關系,通過對象調用類內部的方法就行了; 優點:信息隱藏(安全性)、簡化操作; 例子:一個賬戶類,

樹鏈剖分的基本思想

一個 概念 span fat 基本 clas 同時 如果 i節點 一、樹鏈剖分的作用   通常是求樹上u到v的路徑節點之和   這個問題很容易可以想到設f[i]表示根節點到i節點的節點之和   t=lca(u,v),然後可以把u->v劃分為u->t+t->

數據庫Sharding的基本思想和切分策略

生成策略 UNC 第一個 這一 分配 方案 減少 能夠 開發 目前絕大多數應用采取的兩種分庫分表規則 mod方式 dayofweek系列日期方式(所有星期1的數據在一個庫/表,或所有?月份的數據在一個庫表) 這兩種方式有個本質的特點,就是離散性加周期性。 例如以一個表的

面向物件基本思想概述

面向物件的基本思想   面向物件是一種新興的程式設計方法,或者是一種新的程式設計規範(paradigm),其基本思想是使用物件、類、繼承、封裝、訊息等基本概念來進行程式設計。從現實世界中客觀存在的事物(即物件)出發來構造軟體系統,並且在系統構造中儘可能運用人類的自然思維方式。開發一個軟體是為

Java中的HashCode 1 之hash演算法基本原理

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

ALS演算法理解和引數調優

在上一篇博文中我們一起學習瞭如何用spark構建一套歌手推薦系統,在模型訓練的時候,我們用到的是ALS演算法,這篇博文我們就一起來學習一下ALS演算法的原理吧。ALS演算法全稱是Alternating Least Squares,從協同過濾的分類來說,這裡的ALS演算法是同時基於使用者和

BitMap演算法基本操作

上篇我們講了BitMap是如何對資料進行儲存的,沒看過的可以看一下 BitMap演算法介紹 這篇我們來講一下BitMap這個資料結構的程式碼實現。 回顧下資料的儲存原理 一個二進位制位對應一個非負數n,如果n存在,則對應的二進位制位的值為1,否則為0。 這個時候,我們的

Dijkstra演算法思想和數學歸納法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

pose machine論文基本思想和全文翻譯

pose machine論文基本思想和全文翻譯 基本思想 網路分為多個層級多個stage,每個層級的輸入是一個patch(影象的部分),即從影象中以點z(x,y)為中心得到的一個矩形框(可以設定不同的大小)。第一個stage的層級1將從patch得到的特徵

資料結構一(資料結構與演算法基本含義)

1.1 基礎概念 ● 資料元素       ● 是組成資料的,有一定意義的單位       ● 在計算機中通常作為整體處理       ● 也叫做結點或記

資料結構與演算法——基本概念與術語

概述  資料、資料元素、資料物件 資料(data)是對客觀事物的符號表示,在電腦科學中是指所有能輸入到計算機中並被計算機程式處理的程式的總稱。 資料元素(data element)是資料的基本單位,在計算機程式中通常作為一個整體進行考慮和處理。一個數據元素可由若干個資料項(data ite

銀行家演算法基本原理

銀行家把一定數量的資金供多個使用者週轉使用。 當顧客對資金的最大申請量不超過銀行家現金時,就可接納,顧客可以分期借款; 但借款總數不能超過最大申請量,銀行家對顧客的借款可以推遲支付,但總能在有限的時間裡得到借款; 當顧客得到全部資金後,他一定能在有限時間裡面歸還所有資金。 Max:執