基礎推薦引擎的工程實現

2021-10-23 06:45:44 字數 1933 閱讀 7981

接收請求

處理請求

返回結果

另一種就是離線處理(長期興趣),兩者結合就是整個推薦系統

一致性雜湊演算法在2023年由麻省理工學院提出的一種分布式雜湊(dht)實現演算法,設計目標是為了解決網際網路中的熱點(hot spot)問題,初衷和carp十分類似。

一致性雜湊修正了carp使用的簡單雜湊演算法帶來的問題,使得分布式雜湊(dht)可以在p2p環境中真正得到應用。

在採用一致性雜湊演算法的分布式集群中將新的機器加入,其原理是通過使用與物件儲存一樣的hash演算法將機器也對映到環中(一般情況下對機器的hash計算是採用機器的ip或者機器唯一的別名作為輸入值)

然後以順時針的方向計算,將所有物件儲存到離自己最近的機器中。

以上面的分布為例,如果node2出現故障被刪除了,那麼按照順時針遷移的方法,object3將會被遷移到node3中,這樣僅僅是object3的對映位置發生了變化,其它的物件沒有任何的改動。

如下圖:

如果往集群中新增乙個新的節點node4,通過對應的雜湊演算法得到key4,並對映到環中,

如下圖:

平衡性(balance):平衡性是指雜湊的結果能夠盡可能分布到所有的緩衝中去,這樣可以使得所有的緩衝空間都得到利用。很多雜湊演算法都能夠滿足這一條件。

單調性(monotonicity):單調性是指如果已經有一些內容通過雜湊分派到了相應的緩衝中,又有新的緩衝加入到系統中。雜湊的結果應能夠保證原有已分配的內容可以被對映到原有的或者新的緩衝中去,而不會被對映到舊的緩衝集合中的其他緩衝區

分散性(spread):在分布式環境中,終端有可能看不到所有的緩嚴,u定只所吧的繆共中的一部分。當終端希望通過雜湊過程將內容對映到緩衝上時,由於不同終端所見的緩衝範圍有可能不同,從而導致雜湊的結果不一致,最終的結果是相同的內容被不同的終新全1端對映到不同的緩衝區中。這種情況顯然是應該避免的,因為它導致相同內容被不同緩衝中去,降低了系統儲存的效率。分散性的定義就是上述情況發生的嚴重程度。好的雜湊演算法應能夠盡量避免不一致的情況發笙,也就是盡量降低分散性。

負載(load):負載問題實際上是從另乙個角度看待分散性問題。既然不同的終端可能將相同的內容對映到不同的緩衝區中,那麼對於乙個特定的緩衝區而言,也可能被不同的使用者對映為不同的內容。與分散性一樣,這種情況也是應當避免的,因此好的雜湊演算法應能夠盡量降低緩衝的負荷。

Mapreduce 推薦引擎

購買過該商品的顧客還購買過哪些商品 給乙個商品,推薦購買過這個商品的使用者經常購買的五件產品 輸出是鍵值對,鍵是商品,值是5個商品的列表 map1 key userid value userid購買過的產品 map userid,item reduce1 reduce userid,item i1,...

推薦引擎分類介紹

搜尋引擎是當前快速查詢目標資訊的最好途徑。在使用者對自己需求很明確時,用搜尋引擎可以方便地通過關鍵字快速找到自己需要的資訊。但搜尋引擎並不能完全滿足使用者對資訊發現的需求,因為在很多情況下,使用者其實並不明確自己的需要,或者他們的需求很難用簡單的關鍵字來表述,又或者他們需要更加符合他們個人口味和喜好...

推薦引擎分為哪幾類,個性化推薦引擎的介紹

在資訊時代的今天,大資料為使用者獲取方方面面的資訊提高了效率,更可以智慧型的幫助使用者從海量內容中快速找到想要閱讀的資訊,或者從海量商品中快速找到想要購買的商品。推薦引擎的發展讓選擇不明確的使用者更加了解她們的需求和喜好。下面以內容產品和電商產品為例,談談推薦引擎在產品中發揮的巨大作用。一 推薦引擎...