Spark推薦系統中使用者 物品模型

2021-08-13 17:17:33 字數 1585 閱讀 3841

如:

假設使用者和物品數目分別是u和i,那對應的使用者-物品矩陣的維度為u*i。

要找到」使用者-物品」矩陣近似的k維(低階)矩陣,最終是求出如下2個矩陣:

表示使用者的u*k

表示物品的k*i維矩陣。這兩個矩陣也稱為因子矩陣。

因子分解型別也存在某些弱點。相比最鄰近模型,這類模型在理解和可解釋性難度上都有所增加。另外,其模型訓練階段的計算量也很大。

使用者對物品的偏好不會直接給出,而是隱含在使用者與物品的互動之中。二元資料(比如使用者是否**了某個電影或是否購買了某個商品)和計數資料(如使用者**某電影的次數)便是這類資料。

mlib庫實現了乙個特定方法,它將輸入的評級資料視為兩個矩陣:乙個二元偏好矩陣p和乙個信心權重矩陣c。

最小二乘法(alternating least squares,als)是一種求解矩陣分解問題的最優化方法。

als的實現原理是迭代式求解一系列最小二乘回歸問題。

rank:對應als模型中的因子個數,也就是在低階近似矩陣中的隱含特徵個數。

iterations:對應執行時的迭代次數。

lambda:該引數控制模型的正則化過程,從而控制模型的過擬合情況。

package com

.spark

import org.apache

.spark.

import org.apache

.spark

.mllib

.recommendation.

object tuijian

val model=als.train(ratings,50,10,0.01)

model.userfeatures

.count

val predictdrating=model.predict(789,123)

val userid=789

val k=10

val topkrecs=model.recommendproducts(userid,k)

println(topkrecs.mkstring("\n"))

}}

物品推薦是回答如下問題:給定乙個物品,有哪些物品與它最相似。

常見的相似度衡量方法包括皮爾森相關係數(pearson correlation)、針對實數向量的余弦相似度(cosine similarity)和針對二元向量的傑卡德相似係數(jaccard similarity)。

jblas線性代數庫(mllib的依賴庫之一)

基於物品 使用者 的推薦演算法

用mapreduce計算框架實現了3個小demo wordcount 基於物品的推薦演算法 itemcf 和基於使用者的推薦演算法 usercf 連線 map輸入 key longwritable型別,每一行的起始偏移量 value text型別 userid,itemid,score map輸出 ...

協同過濾之基於使用者 物品矩陣推薦系統 待續

先上圖,第乙個是基於物品協同過濾推薦,第二個是基於使用者的協同過濾推薦 這個兩個步驟差不多。先說基於物品的協同過濾,原理就是上面這張圖,下面說步驟 步驟 1 根據使用者對物品的評分構建使用者 物品矩陣 2 建立乙個nn的物品相似度矩陣 在產品 產品協同過濾中的產品之間的相似性值是通過觀察所有對兩個產...

linux系統中使用者

一 使用者身份介紹 1 系統管理員使用者,uid user identification 0,2 系統使用者,uid為1 999,預設的程式都有獨立的系統使用者負責,執行,進而控制被破壞的範圍,3 普通使用者,uid 從1000開始,由管理員建立,用於日常工作的使用者,注 建立使用者時,uid不能重...