大數據算法->推薦系統經常使用算法之基於內容的推薦系統算法

  港真,本身一直很是但願作算法工程師,因此本身如今開始對如今經常使用的大數據算法進行不斷地學習,今天瞭解到的算法,就是咱們生活中無處不在的推薦系統算法。算法

  其實,向別人推薦商品是一個很常見的現象,好比我用了一個好的商品,向朋友安利之類的。在之前廣告系統不發達的時候,咱們也是靠口口相傳來進行商品的推廣。那麼爲何,如今推薦系統變的很是重要了呢?,在之前,咱們的商品不像如今的物品同樣琳琅滿目,咱們有時間,能夠把商品都瀏覽一遍在進行選擇,由於咱們都想選擇全部商品中最好的,而如今,因爲資源的衆多,咱們不會用大把時間把全部的商品都看一遍,這就須要系統向咱們推薦一些咱們正在尋找的東西,好比網易雲音樂的每日歌曲推薦,淘寶的商品推薦。其實這裏的商品還包含信息,像今日頭條向咱們推薦優質的新聞,以及外國的News Digest,techmeme都致力於將新聞進行過濾,因此推薦系統無處不在。函數

  好了,以上是引言,如今開始學習推薦系統:學習

  目前的推薦系統分爲基於內容的推薦系統和協同過濾模型,以及兩種結合的方式,由於每種方法都有它的優點和劣勢,因此在瞭解完每種算法後,咱們進行概括。大數據

  如下所說的商品包含信息,賣的商品等須要推薦的內容。圖片

  首先咱們明確一下咱們的所要分析的內容,一個是用戶集,也就是咱們要把商品推薦給的人,還有一個項目集,是咱們要推薦的商品,還有一個效用矩陣,代表的是,部分用戶對部分項目的評價,這個評價能夠從用戶在使用過商品直接評分(如買完商品的星級評分,看完電影的星級評分)來得到,或者用戶使用一個商品的頻率(如聽音樂頻繁播放一首歌)等等來學習得到,總之,這個效用矩陣就是來描述用戶對商品的感覺的。對於效用矩陣,咱們提出一個效用函數的概念。即算出某用戶對某商品的滿意程度,據此咱們能夠構建效用矩陣。(能夠理解爲相似於用戶沒有給出具體評分,而咱們能夠根據他的使用習慣,來進行計算出的對商品的評分)。
資源

  因此咱們如今要作的事情就是向用戶推薦他沒有用過,可是可能想用的東西。文檔

  首先咱們來看看基於內容的推薦系統算法是怎麼作的:get

  它基於這樣的思想,舉個例子,假設用戶之前看80-90年代的,香港的,動做片,它就會根據用戶的這個喜愛,在項目集中找出符合這些特徵的影片,推薦給用戶,因此,你們有沒有發現,這樣的推薦系統須要對項目進行特徵化操做,給每一個項目找出其特色,也就是給每一個項目打上標籤,而後根據用戶的喜愛,來進行推薦,這就是基於內容推薦的大體思想。而這一方法的難點在於對項目進行特徵化描述,舉個例子,針對文本進行描述的話,咱們還能夠採用關鍵詞,可是對於圖片來講,計算機就顯得相形見絀了,對於計算機來講,它只認識二進制,而咱們對於圖片內容的分析也比較困難。it

  在這裏:咱們舉個例子來對文本進行特徵化描述,假設咱們有N個文檔,來尋找每一個文檔的關鍵詞。在這裏咱們採用關鍵詞衡量指標:TF-IDF淘寶

  TF就是每一個詞的詞頻,統計一篇文章的每一個詞的詞頻,找出頻率較高的,再除以這篇文檔除該詞以外的最高頻率的詞,來做爲該關鍵詞在該文檔的頻率。之因此要除,是由於,咱們的文檔長度是不一樣的,咱們但願消除不一樣長度文檔所帶來的頻率差別,進而採用這種作法。

  接下來講IDF:首先咱們看IDF是如何計算的:IDF(關鍵詞:i) = log(N/n(i));

  別忘了N是全部文檔的個數,咱們看,當n(i)增大時IDF的值是減少的,這裏的n(i)值得是關鍵詞i所出現的文檔數,在幾個文檔出現,就是幾,那麼這個IDF是幹什麼的呢,你們想一想,好比 a the 這樣的詞,在每篇文檔中出現的頻率都很高,但這不是咱們要找的關鍵詞,但會對咱們的統計產生影響,所以咱們須要將這些詞篩掉,這就是IDF存在的緣由,若是有一個詞他在每一個文檔都出現了,那它做爲某個文檔的關鍵詞可能性就會降低。

  經過那麼關鍵詞I的頻率就能夠表示爲TF*IDF;這樣咱們就能夠真對某文檔創建一個向量。

   當文檔很長的時候,這個向量就會很龐大,這也是這個算法的侷限性。其也有優勢:那就是不依賴其餘用戶的評價,只依賴項目的特徵,好比新到一批電影,該推薦方式就能夠進行推薦,而不須要考慮其餘用戶對這些電影的評價,而採用協同過濾的話,因爲這些影片是新來的,沒有用戶打分,因此較難進行推薦,還有就是基於內容推薦的項目特徵較爲集中。推薦的內容都較爲類似,用戶接受度高,但也影響了用戶選擇的多樣性。

  那麼下篇文章咱們來看一下協同過濾模型是如何處理的。

相關文章
相關標籤/搜索