我有一個很多用戶(超過1000萬)的列表,每個用戶都有一個用戶標識,後面跟着10個浮點數字,表示他們的偏好。我想用基於mapreduce的餘弦相似度高效地計算用戶相似度矩陣。但是,由於這些值是浮點數,因此很難確定mapreduce框架中的鍵。有什麼建議麼?mapreduce計算用戶相似度矩陣的方法
0
A
回答
2
我認爲最簡單的解決方案是Mahout庫。 Mahout中有幾個map-reduce相似性矩陣作業可能適用於您的用例。
第一個是Mahout的ItemSimilarityJob
,它是其推薦系統庫的一部分。該作業的具體信息可以參見here。您只需提供所需格式的輸入數據,並選擇您的VectorSimilarityMeasure
(對於您的情況將爲SIMILARITY_COSINE)以及任何其他優化。由於您正在計算基於10個浮點值的偏好向量來計算用戶 - 用戶相似度,因此您可以做的是爲矢量的索引分配一個簡單的1至10數字哈希,並生成一個簡單的.csv文件vectorIndex,userID,decimalValue作爲Mahout項目相似度作業(用戶ID是數值Int或Long值)的輸入。結果輸出應該是一個由用戶標識,用戶標識和相似性組成的選項卡分隔文本文件。
第二種解決方案可能是包含在其數學庫中的Mahout的RowSimilarityJob
。我從來沒有用過它,但可以找到一些信息here並在此previous stackoverflow thread。而不是.csv作爲輸入,您需要將輸入數據翻譯爲DistributedRowMatrix
,其中userID是矩陣的行。我相信,輸出也將是一個DistributedRowMatrix
序列文件,其中包含您正在尋找的用戶 - 用戶相似性數據。
我想哪個解決方案更好取決於你喜歡什麼輸入/輸出格式。祝一切順利。
相關問題
- 1. 計算稀疏矩陣的相似度
- 2. 矩陣計算使用hadoop mapreduce
- 3. 如何使用兩個矩陣計算餘弦相似度
- 4. 方法來計算相似度
- 5. 如何基於共生矩陣計算相似度?
- 6. 高效地計算和存儲相似度矩陣
- 7. 本徵稀疏矩陣乘法似乎計算全矩陣
- 8. 轉置矩陣與計算逆矩陣的計算強度
- 9. 行計算相關/協方差矩陣的有效方法
- 10. 構造相似度矩陣的最有效方法
- 11. 使用Lucene計算文檔相似度的更好方法
- 12. 計算矩陣的相關矩陣與應用
- 13. 計算餘弦相似度
- 14. 協方差矩陣計算
- 15. R字符串相似度矩陣
- 16. Python:餘弦相似度m * n矩陣
- 17. 計算一個大矩陣內出現的矩陣的算法
- 18. 矩陣計算
- 19. 矩陣計算
- 20. 計算矩陣
- 21. 計算高維數據相似度的最有效方法
- 22. 優化相關矩陣的計算
- 23. python中的矩陣相關計算
- 24. 計算矩陣的相關性
- 25. 矩陣計算的高效算法
- 26. 使用word2vec來計算用戶之間的相似度
- 27. 使用Python計算餘弦相似度
- 28. 使用Excel計算協方差矩陣
- 29. 使用VBA計算協方差矩陣
- 30. 文字相似度算法