WebSocket是雙向通信協議,模擬Socket協議,可以雙向發送或者接收信息
而Http是單向的
WebSocket是需要瀏覽器和服務器握手進行建立連接的
而http是瀏覽器發起向服務器的連接,服務器預先并不知道這個連接
WebSocket在建立握手時,數據是通過Http傳輸的,但是建立之后,在真正傳輸時是不需要Http協議的
今天完成了推薦算法:下面是個小結
首先得到前端傳過來的要進行推薦的用戶id
1,獲得一個Map<String,Set<Blog>>,存每個用戶對應的交互過的物品的集合,查表
2.根據這個Map,得到從物品到用戶的倒排表,即Map<Integer,ser<User>>,
? 通過遍歷1獲得的Map,遍歷每個用戶對應的每個物品集合,遍歷物品集合中的每個物品,如果物品在倒排表中已經存在,就將當前用戶添加到該物品對應的set<User>中,
如果不存在,就將該物品作為建,創建一個空的用戶集合作為值,并將當前用戶添加到該集合中
3.建立協同過濾矩陣
根據2中得到的物品到用戶的倒排表來統計用戶之間共同交互的物品數量。
Map<String,Map<String,Integer>>
表示某個用戶所對應一個Map,這個Map表示另外一個用戶以及這個用戶和外層的用戶所共同交互的物品數量。
還要得到:每個用戶所交互的物品的總數量。
4.通過余弦相似度來計算用戶之間的相似度。
第三步中得到的協同過濾矩陣就是表達式的分子,分母就是2個用戶的交互過的物品的數量的乘積
5.根據相似度矩陣得到前k個用戶,然后對這 K 個用戶所交互物品中當前用戶未交互過的物品計算相似度分數,即預估當前用戶對該物品的一個分數,最終推薦的候選物品的相似度分數是由多個用戶對該物品分數的一個累加和。