步驟
TS:用戶打分行為的時間戳
1.抽取用戶行為數小於2000的用戶
2.基於時間戳排序後,劃分訓練樣本和測試樣本(取後2個行為作為測試樣本test_set,剩余的作為訓練樣本train_set)
3.對數據只取UserID,MovieID,Rating(最終分值)
1.對數據中特征進行hash化處理
2.特征hash化的邏輯
hash_fun(特征域=特征值)如:Hash(“user_id=1”)、Hash(“movie_id=1”)
3.hash離散化的作用
a. 更好的稀疏表示。
b. 具有壹定的特征壓縮。
c.能夠方便模型的部署。
在機器學習中,特征哈希是壹種 快速且空間利用率高的特征向量化方法 ,即將任意特征轉換為向量或矩陣中的索引。
它通過對特征應用散列函數並直接使用特征的散列值作為索引來工作,而不是在關聯數組中查找索引。
Example{
“feature”: tf.int64_list,
“label”: tf.float_list
}
隨機初始化壹個隱向量,見PS中
Input層中基於feature去獲取,即pullPS中的隱向量
最後參數的更新返回PS中即push
這是壹個簡單版本的PS,就用了壹個字典存儲。
註意點: 不是壹開始對所有的特征隨機向量,而是用到的時候才隨機產生。
讀取tfrecords的數據,並從PS(參數服務)中取出對應的向量,構建完整的input層
矩陣分解公式:
損失函數
訓練模型,主要考慮訓練數據進行叠代更新參數,然後設置叠代多少次數進行壹次測試集進行測試效果。
MatrixCF模型保存的部分實際上就是特征對應的embedding向量,因此只需要直接保存參數服務器PS中的k,v 到文件中即可。
基於壹種向量相似方法(如cosine)計算向量之間的相似
基於 用戶點擊反饋 的召回策略
基於 用戶直接關聯 相似電影的召回策略