DoorDash使用貝葉斯演算法為客人推薦菜譜

banq發表於2016-12-22
機器學習正在讓人們在餐館點菜變得容易和輕鬆。 可為每個使用者建立個性化的體驗,透過根據人們的點菜歷史訂單為餐館提供推薦建議。

透過建模菜餚之間的相似性,這樣如果你喜歡某些美食,就可以推薦其他什麼美食。

要做到這一點,主要是基於訂單使用了貝葉斯網路結構學習。貝葉斯網路是一種機率圖模型,它表示兩個變數之間及其在圖結構中的依賴性之間的關係。 比如,如果有“西班牙人”和“Tapas”變數,就能表示它們之間的機率分佈,也就是說如果你喜歡西班牙食​​物,你很可能喜歡Tapas。

貝葉斯網路結構學習演算法找到資料中所有變數之間的聯合機率分佈的緊湊表示。簡單來說,根據你過去不同的點菜機率,能推薦找到某種型別的美食。 而使用這些干涉資料將能讓我們獲得真正的因果關係,從而我們可以看到菜餚之間的關係,但我們不能確保箭頭就代表因果關係。

為了學習網路結構,我們使用一個爬坡的做法(hill climbing approach) ,得到下圖, 您可以嘗試使用自己的資料這種技術bnlearn R包。 (雖然貝葉斯網路可以表示反向關係,但我們只在下面的圖表中顯示正向關係。)

[img index=1]

快速看看這張圖,其顯示一些有趣的關係。如果你喜歡義大利,你可能會喜歡比薩或麵食。但在這裡也有一些令人驚訝的結果:例如,如果你喜歡快餐,結果你可能也喜歡中國食物。

在未來,我們希望使用此型別的模型來向特定使用者推薦某些促銷或新餐館。 例如,如果我們想要一個特定的泰國餐廳,我們可以看到,這可能是喜歡亞洲食品相關的任何人。


DoorDash Blog — How to get from Salad to Sushi in

相關文章