圖資料庫
常用使用場景
- 社交應用場景:好友推薦,社交關系梳理(粉絲關注),怎麼通過最少的人認識特朗普?
- 知識圖譜:把錯亂的關系網,快速的搜尋出你需要的東西
-
推薦場景:
零售、電商、内容等個性推薦,挖掘使用者需求,提升使用者體驗
- 導航城市規劃:最短路徑
- 金融領域:資産交易圖
- 節點畫像:裝置畫像,使用者畫像等
基本概念
- 節點(V):人、電影、食譜、食材
- 節點屬性(VP):人的歲數、身高、年齡、職業
- 關系(E):人和電影之間的關系(喜歡 ,點贊,評分等)
- 關系屬性(EP):人對電影的評分的分值
- 标簽(Label):對節點和關系進行分類的 使用者(user),裝置(device)
比關系型資料庫更适合做關系資料庫
主體:使用者---食譜
常見的推薦邏輯
- item ==> item
- 根據内容推薦相似食譜(食材、營養、标簽等)
- user ==> item ==> user
- 推薦制作記錄推薦相似使用者
- user ==> item ==> user ==> item
- 根據相似度最高的使用者推薦他常用的食譜
圖資料庫庫中常用的推薦
- 内容過濾
- 協同過濾
- 餘弦相似度
- 皮爾遜相似度
- 領域推薦
内容推薦
顧名思義是根據内容來做為推薦
食譜食材内容相似推薦:I2I
小雞炖蘑菇和香菇炖雞相同食材
可以找到和香菇炖雞食材相同的食譜排序
還可以用食譜标簽、食譜營養成分等内容作為推薦
Jaccard距離 u2i2u
公式:
根據制作過相同食譜的使用者推薦相似使用者
并集:取的是全量食譜
交集:取得是相同制作過的食譜
餘弦相似度 u2i2u
公式:
樣本資料:
使用者A和使用者B算餘弦相似度
合集餘弦:(正确的餘弦相似度)
交集餘弦:(有一定缺失的餘弦相似度)
由于圖資料庫邏輯合并取參數邏輯,損失一部分值的餘弦相似度計算方法
精确度問題
A與C的情況怎麼辦?
制作相同過食譜後
擴大食譜樣本
就是說隻發生在新使用者已經少量制作的使用者上,也就是合集較少的情況,在食譜樣本擴大的時候以及使用者制作過相同食譜之後,兩個影響內插補點會縮小,也就是說使用者越做推薦的越準确。經常制作的使用者,樣闆偏差會被拉小。
皮爾遜相似度 u2i2u
公式:
樣本資料:
使用者A和使用者B算皮爾遜相似度
空值預期為使用者制作的平均次數
合集皮爾遜:
交集皮爾遜:
對比餘弦相似度:
兩個公式差距就是空值預期(零、平均數),公式是可以互推的
領域推薦 u2i2u2i
根據相似度最高的使用者推薦食譜(拿餘弦相似度作為參考)
使用者之間的相似度:
使用者A--->使用者B--->0.617
使用者A--->使用者C--->0.954
使用者A--->使用者D--->0.796
==》取到前兩個相似使用者C、使用者D
==》紅燒肉 =8x0.954+0x0.796=7.632
==》辣椒炒肉 =1x0.954+1x0.796=1.75
==》也就是權重求和排序,權重和大的在前面
良好推薦期望值:
- 功能全面個性化推薦
- 效果精準
- 性能快
實際的推薦場景裡,功能、效果、性能三者相輔相成、也彼此互相影響,很多時候要進行折中的考慮
一、選取相似度算法問題
性能:餘弦相似度>>皮爾遜相似度
準确度:餘弦相似度<皮爾遜相似度
在阿裡雲GDB初始階段我們會使用餘弦相似度來做為使用者之間相似度系數
二、數量級别過大全量計算過慢(資料篩選)
根據相似度最高的使用者推薦食譜
采用資料過濾的方式
萬/十萬/百萬 ==> 找到相同制作食譜最多的人
千/萬==> 協同過濾
十/百==> 權重求和
三、冷資料問題
四、逾時截斷
逾時後選取熱門資料進行補足
作者:xiaospace
來源-微信公衆号:九陽技術團隊
出處:https://mp.weixin.qq.com/s/cq5GNDeT495xVwdAUTavvQ