机器学习12推荐系统
推薦系統(tǒng)(Recommender Systems)?
推薦系統(tǒng)根據(jù)瀏覽用戶過去買過什么書,或過去評(píng)價(jià)過什么電影來判斷并推薦新產(chǎn)品給用戶。
這些系統(tǒng)會(huì)為像亞馬遜和網(wǎng)飛這樣的公司帶來很大一部分收入。
因此,對(duì)推薦系統(tǒng)性能的改善,將對(duì)這些企業(yè)的有實(shí)質(zhì)性和直接的影響。
對(duì)機(jī)器學(xué)習(xí)來說,特征是很重要的,你所選擇的特征,將對(duì)你學(xué)習(xí)算法的性能有很大的影響。因此,在機(jī)器學(xué)習(xí)中有一種大思想,它針對(duì)一些問題,可能并不是所有的問題,而是一些問題,有算法可以為你自動(dòng)學(xué)習(xí)一套好的特征。推薦系統(tǒng)就是一個(gè)例子。
例子:?我們有 5 部電影和 4 個(gè)用戶, 我們要求用戶為電影打分。 ?
基于內(nèi)容的推薦系統(tǒng)(Content Based Recommendations)
在一個(gè)基于內(nèi)容的推薦系統(tǒng)算法中,假設(shè)對(duì)于希望推薦的東西有一些數(shù)據(jù),這些數(shù)據(jù)是有關(guān)這些東西的特征。
在例子中,假設(shè)每部電影都有兩個(gè)特征,如 x1代表浪漫程度,x2?代表動(dòng)作程度。
下面我們要基于這些特征來構(gòu)建一個(gè)推薦系統(tǒng)算法。?
假設(shè)我們采用線性回歸模型,可以針對(duì)每一個(gè)用戶都訓(xùn)練一個(gè)線性回歸模型。
代價(jià)函數(shù):
上面的代價(jià)函數(shù)只是針對(duì)一個(gè)用戶的, 為了學(xué)習(xí)所有用戶, 我們將所有用戶的代價(jià)函數(shù)求和:
如果要用梯度下降法來求解最優(yōu)解,我們計(jì)算代價(jià)函數(shù)的偏導(dǎo)數(shù)后得到梯度下降的更新公式為:
在之前的基于內(nèi)容的推薦系統(tǒng)中,對(duì)于每一部電影,我們都掌握了可用的特征,使用這些特征訓(xùn)練出了每一個(gè)用戶的參數(shù)。
相反地,如果我們擁有用戶的參數(shù),我們可以學(xué)習(xí)得出電影的特征。
首先,用戶要對(duì)擁有特征的電影進(jìn)行評(píng)分,此時(shí)就可以學(xué)習(xí)出用戶的偏好參數(shù)。
之后,上線新電影時(shí),用戶對(duì)其觀看并打分,此時(shí)針對(duì)這個(gè)新電影,就可以根據(jù)用戶的偏好參數(shù)來自動(dòng)學(xué)習(xí)出電影的特征。
—————————————————————————————————————————————————————————
協(xié)同過濾(Collaborative Filtering)
但是如果我們既沒有用戶的參數(shù),也沒有電影的特征,這兩種方法都不可行了。
協(xié)同過濾算法可以同時(shí)學(xué)習(xí)這兩者。
優(yōu)化目標(biāo)改為同時(shí)針對(duì) x 和 θ 進(jìn)行:
對(duì)代價(jià)函數(shù)求偏導(dǎo)數(shù)的結(jié)果如下:
注:在協(xié)同過濾從算法中,我們通常不使用bias項(xiàng),如果需要的話,算法會(huì)自動(dòng)學(xué)得。 ?
協(xié)同過濾算法使用步驟如下:
對(duì)于電影 x(i)和另一電影 x(j),依據(jù)兩部電影特征向量之間的距離 ||x(i)-x(j)|| 的大小,可以判斷它們是否為同一類電影。
小結(jié):
—————————————————————————————————————————————————————————
舉例子: ?
1.當(dāng)給出一件產(chǎn)品時(shí),你能否找到與之相關(guān)的其它產(chǎn)品。?
2.一位用戶最近看上一件產(chǎn)品,有沒有其它相關(guān)的產(chǎn)品,你可以推薦給他。?
我將要做的是:實(shí)現(xiàn)一種選擇的方法,寫出協(xié)同過濾算法的預(yù)測(cè)情況。?
我們有關(guān)于五部電影的數(shù)據(jù)集,我將要做的是,將這些用戶的電影評(píng)分,進(jìn)行分組并存到一個(gè)矩陣中。?
我們有五部電影,以及四位用戶,那么這個(gè)矩陣 Y 就是一個(gè) 5 行 4 列的矩陣,它將這些電影的用戶評(píng)分?jǐn)?shù)據(jù)都存在矩陣?yán)?#xff1a;
推出評(píng)分:
找到相關(guān)影片:
現(xiàn)在既然你已經(jīng)對(duì)特征參數(shù)向量進(jìn)行了學(xué)習(xí),那么我們就會(huì)有一個(gè)很方便的方法來度量?jī)刹侩娪爸g的相似性。
例如說:電影 i 有一個(gè)特征向量 x(i),你是否能找到一部不同的電影?j,保證兩部電影的特征向量之間的距離 x(i)和 x(j)很小,那就能很有力地表明電影 i 和電影 j?在某種程度上有相似,至少在某種意義上,某些人喜歡電影 i,或許更有可能也對(duì)電影 j 感興趣。?
總結(jié)一下, 當(dāng)用戶在看某部電影 i 的時(shí)候,如果你想找 5 部與電影非常相似的電影,為了能給用戶推薦 5 部新電影,你需要做的是找出電影 j,在這些不同的電影中與我們要找的電影 i 的距離最小,這樣你就能給你的用戶推薦幾部不同的電影了。?
通過這個(gè)方法, 希望你能知道, 如何進(jìn)行一個(gè)向量化的計(jì)算來對(duì)所有的用戶和所有的電影進(jìn)行評(píng)分計(jì)算。 同時(shí)希望你也能掌握, 通過學(xué)習(xí)特征參數(shù), 來找到相關(guān)電影和產(chǎn)品的方法。
實(shí)現(xiàn)細(xì)節(jié):均值歸一(Implementational Detail_ Mean Normalization)
總結(jié)
以上是生活随笔為你收集整理的机器学习12推荐系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习11主成分分析
- 下一篇: 操作系统01概述