上週我讀過一篇文章,建議將MDP作爲推薦系統的替代解決方案, 該論文的核心是用MDP表示推薦過程,即州,行爲,轉換概率,獎勵功能等。馬爾可夫決策過程:導致不同狀態的相同行動
如果我們爲簡單起見假設單用戶系統,則狀態看起來像k元組(x1, x2, .. , xk)
,其中最後一個元素xk表示用戶購買的最後一個項目。 例如,假設我們當前的狀態爲(x1, x2, x3)
,這意味着用戶按時間順序購買x1,然後x2,然後x3。現在,如果他購買x4,新的狀態將是(x2, x3, x4)
。
現在,文章提出的是,這些狀態轉換是由動作觸發的,其中動作是「向用戶推薦項目x_i」。但問題是這種行爲可能導致多個國家。
例如,如果我們目前的狀態是(x1, x2, x3)
,並採取行動是「推薦×4」的用戶,那麼可能的結果是二分之一的:
用戶接受X4的建議,和新的狀態將(x2, x3, x4)
用戶忽略X4的建議(即買別的東西)和新的狀態將是任何狀態(x2, x3, xi)
其中xi!= X4
我的問題是,是否MDP真正支持相同的動作觸發兩個或多個不同狀態 ?
UPDATE。我認爲這些行爲應該被形成爲「得到物品x_i的推薦並接受它」和「得到物品x_i的推薦並拒絕它」,而不是簡單地「得到物品x_i的推薦」
感謝您的回覆。該論文說這些狀態可能是任意大小的k元組,所以k = 1也是可能的。我還沒有閱讀討論k值選擇的優點/缺點的部分,所以我不能置疑它:)我感興趣的是使用相同的動作來轉換到幾個不同的狀態的可能性。我也讀過維基,但沒有關於它的內容 – mangusta
還有一個Q學習的概念,它定義了一個動作值函數'Q(s,a)'。它將每個狀態動作對映射爲獎勵值,因此我們可以通過比較狀態's'上可用的所有動作'a'的'Q(s,a)'值來選擇狀態's'時的最佳動作。但是,如果同一個動作可能導致不同的狀態,那麼意味着對於所有這些轉換,「Q(s,a)」將是相同的,這有點意義 – mangusta