自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

實時推薦場景中的圖形數據庫用例

譯文 精選
數據庫 其他數據庫
本文在介紹圖形數據庫和推薦系統(tǒng)的基本概念的基礎上,詳細討論了圖形分解技術、PageRank算法、以及協(xié)同過濾等方法,以及如何使用NebulaGraph圖形數據庫,去構建實時推薦系統(tǒng)。

?譯者 | 陳峻

審校 | 孫淑娟

本文在介紹圖形數據庫和推薦系統(tǒng)的基本概念的基礎上,詳細討論了圖形分解技術、PageRank算法、以及協(xié)同過濾等方法,以及如何使用NebulaGraph圖形數據庫,去構建實時推薦系統(tǒng)。  

實時推薦是當今零售行業(yè)非常熱門的話題,其目標是為了方便用戶在電商網站上搜索了產品之后,應用程序立即為他們提供個性化的推薦。這是一項具有挑戰(zhàn)性的任務,畢竟用戶尚未決定要購買哪種產品,因此應用系統(tǒng)需要深入了解他們的偏好和行為。

為了實現這一目標,實時推薦系統(tǒng)需要能夠以接近實時的速度處理海量數據。實時系統(tǒng)通常作為電商網站或移動應用的一部分,可以根據用戶當前的行為,推薦相關的產品。例如,一個正在銷售鞋履的電商網站,可能做到在用戶查看“男士運動鞋”頁面時,恰到好處地向其展示不同款式的鞋子。

而由于圖形技術具有預測用戶行為,并據此提出建議的能力,因此它是實時推薦的不錯選擇。其中,以NebulaGraph為代表的圖形數據庫,就提供了一種靈活的數據模型,可以被用來表示實體之間的各種類型關系。此類關系不僅包括典型的“產品”和“用戶”之間的關系,還包括其他對于應用而言非常重要的關系。例如,您可以使用圖形數據庫,來表示復雜的用戶分組(例如“各種朋友”)、以及產品類別(例如“各種書籍”)。只要兩個實體之間有邊(edge),就可以使用圖形技術來表示。

其實,圖形數據庫比關系數據庫更善于表示各種類型的關系。例如,如果您有大量具有相似興趣、但屬于不同組的用戶,那么在關系數據庫中,就需要為每個組創(chuàng)建一個單獨的表,然后在查詢的時候,將他們連接到一個大的數據表中。相反,在圖形數據庫中,每個用戶可能有多個邊,以代表他們在不同組中的興趣。

一、什么是圖形數據庫?

圖形數據庫不同于大多數人熟悉的傳統(tǒng)關系數據庫管理系統(tǒng)(RDBMS)。RDBMS是將數據存儲在一個由列和行組成的表中,彼此之間幾乎不存在任何關系。而圖形數據庫在最初被設計的時候,就側重于數據集之間的關系。因此,它們具有更強大和更專業(yè)的處理能力。值得注意的是,此處的“圖形”其實是表示兩個事物之間關系的圖表。也就是說,圖形數據庫就是用來解釋數據之間關系的數據庫。下圖展示了典型的圖形數據庫—NebulaGraph的復雜架構和設計。

圖片

為了避免數據集彼此之間形成無用的孤島,圖形數據庫可以將多個數據集之間的點連接起來,揭示它們之間的重要關系。目前,圖形數據庫已經得到了廣泛使用。

二、什么是實時推薦系統(tǒng)?

推薦系統(tǒng)主要用于預測客戶的偏好,并為他們提供可能喜歡的產品或服務。此類系統(tǒng)往往被用于包括零售、媒體、娛樂、旅游、以及公共服務等各個行業(yè),通過為客戶提供個性化的建議,來幫助公司降低成本,并增加收入。例如,Netflix會使用某種算法,來根據您之前看過的電影,推薦后續(xù)的影片;Amazon也會使用推薦,來幫助購物者找到他們可能感興趣、甚至會購買的新產品;Facebook則使用自己的算法,根據您的興趣喜好,向您展示相關的廣告信息。

三、為何要使用NebulaGraph進行實時推薦?

目前,在各種真實的應用環(huán)境中,數據挖掘的相關技術已能夠給圖形數據庫帶來大幅的性能提升。而作為一個高性能的線性可擴展類圖形數據庫,NebulaGraph可以通過無共享(shared-nothing)的分布式模型被使用在不同的場景中。其背后的目標是釋放那些呈指數級增長的連接數據的能力。相對其他競品圖形數據庫而言,NebulaGraph可以安全地處理數據集的大小,并在速度上提升約兩倍左右。下圖展示了NebulaGraph的基本工作原理??偟恼f來:

  • 它是唯一可以存儲和處理具有數萬億個關系連接、以及數十億個數據點的數據庫
  • 它旨在確保和實現無中斷的、可擴展和恢復的最佳業(yè)務連續(xù)性

圖片

四、圖形技術在推薦中的應用

推薦系統(tǒng)旨在根據用戶的品味和偏好,為他們提供個性化的推薦。例如,應用可以通過用戶在電商網站上的購物習慣,來提取和表示他們在電影和書籍領域的偏好特征。

通常,推薦系統(tǒng)主要有兩大類:協(xié)同過濾(Collaborative Filtering,CF)方法和基于模型(model-based)的方法。而為了在不知道用戶和電影屬性的情況下,預測電影的評分,以KNN為代表的協(xié)同過濾方法,需要與基于模型的方法相結合,形成圖形分解(graph factorization)方法,以提高評分記錄在稀疏時的預測準確性。

作為一種基于圖形的模型,圖形分解方法可用于表示用戶偏好,以及用戶、項目和屬性之間的關系。其目標是從用戶評分和推薦中提取潛在特征,以便這些特征可以被用于以無監(jiān)督的方式,實現對用戶偏好的預測。

圖形分解需要通過將原始數據集分解為更小的數據集、或集群來完成。而由于圖形數據庫能夠支持高度連接的數據結構和數據點之間的關系,因此圖形分解的過程往往需要使用圖形數據庫來實現。目前,圖形分解方法已經被廣泛地應用于許多在線推薦系統(tǒng)中。

五、如何使用NebulaGraph來構建推薦系統(tǒng)?

下面,我將向您介紹如何使用NebulaGraph之類的圖形數據庫來構建推薦系統(tǒng)。

1.定義數據模型

我們首先需要為推薦系統(tǒng)定義數據模型,以告知系統(tǒng)需要推薦什么類型的數據。如果想推薦電影的話,那么電影便可被我們作為實體。然后是定義需要那些與實體相關的信息。例如,如果您準備構建一個書籍推薦系統(tǒng),那么您就需要知道它屬于什么類型、或者是用什么語言編寫的。而對于電影領域,我們只需要獲取名稱、發(fā)行年份、類別、以及國家等即可。下圖展示了我們的電影實體的相關定義:

圖片

2.定義關系

接下來,我們需要做的是定義電影和用戶(或人)之間存在什么類型的關系。通常,此類關系有兩種:用戶喜歡該電影和用戶看過該電影(或用戶沒有看過電影)。在本例中,我們將把其簡化為用戶喜歡的電影。

假設有兩個用戶James和Kelsey,他們都是科幻電影A的粉絲。那么該電影就屬于科幻題材的類別。如果James同時也喜歡科幻電影B,而Kelsey并沒有看過,那么我們就并不知道kelsey是否喜歡科幻電影B。

圖片

使用上述數據圖建模,我們可以很容易地發(fā)現由于James和Kelsey喜歡同樣類別的事物,其中就包括了科幻電影B,因此Kelsey也可能會喜歡科幻電影B。推薦系統(tǒng)則會向Kelsey推薦科幻電影B。

圖片

3.提出建議

我們可以使用各種圖形算法,在圖形數據庫中提出建議。

PageRank算法常被用于對于搜索結果中的網頁進行排名。通過使用該算法,我們可以確定當有人搜索Google、或任何其他主流搜索引擎時,應首先為其推薦顯示哪些網頁,以及判定哪些網站的受歡迎程度更高。PageRank背后的基本思想是,下一個將要連接跳轉的頁面,會比當前的頁面更重要。也就是說,如果每個人都被鏈接到某個相同的鞋類購買網站的頁面,那么就意味著系統(tǒng)判斷該頁面會比其他網站更重要。而且被鏈接過來的人越多,則意味著其獲得的權重越高??梢哉f,一個網站的受歡迎程度是通過它指向(和被引用)的鏈接數量來衡量的。同理,在看電影方面,一個人既可以繼續(xù)觀看相似類別的電影(即延續(xù)他的興趣愛好),也可以跳轉去看完全不同類型的隨機影片??梢?,電影流行度的判斷就建立在將給定電影,與其同類進行數字哈希的結果上。

協(xié)同過濾算法是一種基于用戶、項目及其連接信息的推薦系統(tǒng)方法。其判斷的前提是:相似的用戶群往往有著相似的興趣。該方法通過查看現有用戶及其臨近用戶的興趣,來進行推薦。

六、小結

綜上所述,由于圖形數據庫可以表示推薦系統(tǒng)中用戶和產品之間的關系,因此它們可以被用來構建實時推薦系統(tǒng)。同時,由于能夠針對強大的數據分析提供支持,圖形數據庫能夠讓推薦系統(tǒng)更加廣泛地分析具有不同偏好的用戶和產品。

原文鏈接:https://itnext.io/use-cases-of-graph-databases-in-real-time-recommendation-db222a8b2c83

譯者介紹

陳峻 (Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項目實施經驗,善于對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗。?

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2020-03-03 09:17:27

圖形數據庫數據庫

2019-08-02 10:00:03

數據庫圖形數據庫

2023-03-31 08:00:00

數據庫分布式系統(tǒng)

2013-06-28 11:28:21

Facebook數據庫大數據

2012-03-08 09:17:45

圖形數據庫Trinity

2021-03-07 16:35:37

圖形數據庫數據庫

2023-04-15 20:33:35

圖形數據庫數據庫

2015-10-22 10:44:50

2020-11-10 22:46:41

圖形數據庫數據庫擴展

2023-01-24 16:03:43

2011-09-22 16:46:02

Neo4j圖形數據庫數據庫

2011-04-14 10:36:36

2017-12-02 12:25:07

AWS數據庫

2011-05-26 10:01:16

Oracle數據庫ODU

2010-07-22 17:57:40

2009-04-07 13:42:41

OracleStatspack診斷

2011-06-07 17:01:44

2019-10-21 09:55:12

數據庫PostgreSQL Oracle

2010-07-06 15:57:58

UML圖形

2013-02-27 10:23:55

NoSQL數據庫
點贊
收藏

51CTO技術棧公眾號