推薦系統算法解說

推薦實例擴展【轉】

7.一、閱讀推薦html

先來看一段文字(摘自36kr):web

」北京十分科技也很是看好閱讀推薦類的應用,他們花了很是大的精力(一年60人團隊),纔在今天推出了iPhone 版「酷雲閱讀」。算法

爲何要投入這麼多人去作這個閱讀應用?CEO 李鵬告訴我,這個團隊超過一半的人都在作後臺相關的東西,包括語義分析、機器學習等算法。他們的目的是將互聯網「語義化」之後,把人的興趣明確,最後把每一個人感興趣的內容推薦給相關的人。在iPhone 上,酷雲的大體作法和Zite iPad 版相似,用戶的行爲也是有「喜歡」、「不喜歡」,以及點擊相應的媒體來源或者相關的標籤來告訴酷雲你但願之後看到更多這些內容。數據庫

這個目的是大部分閱讀推薦應用都有的,可是酷雲的作法彷佛更加變態。他們除了天天要抓取來自互聯網的超過10萬篇文章以外,還對全國200個的電視臺播出的視頻內容進行了索引,以便用戶也能夠經過文字搜索出視頻、以及對視頻內容進行同樣的推薦。大體作法是先把這些節目都錄製下來,而後把聲音轉文字,最後創建摘要和索引。「編程

    通常的推薦系統應用的算法是有上文所述的什麼協同過濾那般複雜呢?如下是援引自本人1月21日所發在微博上的文字:
    一、大多數推薦閱讀應用通常會給文章根據內容打上標籤:算法,iphone(點擊至關於爲此標籤加分加權重),並邀請對文章做出評價:喜歡,或不喜歡。每一次點擊都被推薦系統記錄了下來,最終漸漸造成用戶的標籤tag雲(與此同時,還可基於相同或類似的標籤tag尋找類似用戶,從而基於用戶推薦),然後系統每檢索一篇新的文章,提取出文章的關鍵字,匹配用戶的標籤取向,進行推送。
    二、目前手機上的新聞閱讀作到了分類,如科技,教育,但通常不會採起如網頁那般評分表態,因此也就沒法記錄用戶的行爲特徵,也就不會有新的文章出來後後續的推薦閱讀服務,因而造就了一批手機推薦閱讀的問世,如 @酷雲閱讀 ,指閱等。
     三、但通常用戶的習慣是看完一段新聞便完事了,擇日要看則擇日看。例若有幾個用戶願意爲了評價一篇文章而特意去註冊一個賬號呢?如何儘可能讓用戶付出額外代價去使用這類閱讀器,改變用戶習慣,我的認爲,是關鍵。
    而後我還對上面的那句:先把這些視頻節目都錄製下來,而後把聲音轉文字有點疑問。咱們已經知道若是是音樂的話像豆瓣FM多是以下的作法:

 

  1. 你喜歡一些歌曲,而我也喜歡一些歌曲,若是你我喜歡的歌曲中有不少是重複相似的,則系統會把你我定義爲好友,即類似用戶,基於用戶的協同過濾推薦:朋友喜歡,你也可能喜歡 ;
  2. 還有一個就是針對歌曲的推薦,你喜歡一首歌曲A,而另外一首歌曲B與歌曲A相似(如都是有關愛情、感傷一類的),因此係統猜想你也可能喜歡B,而把B推薦給你。這就是基於項目(物品)的協同過濾推薦。

根據所聽歌曲的重複相似斷定爲好友從而基於用戶的協同過濾進行推薦,經過某些歌曲是差很少相似的來基於項目的協同過濾進行推薦,但問題出來了,重複的好說,同一首歌曲同一個歌手嘛,可那些類似音樂歌曲又如何定義斷定呢?經過系統去分析歌曲的頻譜?區別各個歌曲節奏的快慢,音頻?此舉雖然看起來有效,但實際實行起來不太現實。數據結構

    我以爲應該是爲那些音樂打上標籤tag(估計視頻也是這麼作的,便於往後查找索引。全視頻的實錄目前以爲仍是不靠譜),如打上「愛情」「感傷」一類的tag,然後tag相同的則可斷定爲類似歌曲。但關鍵是怎麼打?語音識別?
 
7.二、標籤tag怎麼打
    初期能夠人肉,爬蟲,買數據庫,等流量上來了,能夠考慮ugc。所謂ugc,用戶產生內容。可是用戶通常不太可能本身給音樂打標籤,太繁瑣了(如最近的新浪微博的每條微博內容下多了一個「加標籤」的提示,但有多少用戶願去理它呢?),固然有的系統也會爲你自動產生一些標籤tag(固然,你也能夠自行加上一些標籤),如新浪博客:
    如何作到的呢?個人想法是,
  1. 應該是系統在背後掃描你的文章一遍,而後提取一些關鍵詞做爲tag,供你選擇。取哪些關鍵詞呢?固然是取高頻詞。掃描整篇文章,統計每一個單詞出現的頻率。
  2. 而後取其前TOP K,如上面截圖中的「算法」在那篇文章中出現了4次,「博客」出現了3次,因此係統爲你自動匹配這些標籤。
  3. 至於採起何種數據結構或方法來統計這些關鍵詞的頻率呢。通常的應用hash+堆(11、從頭至尾完全解析Hash表算法),或trie樹(從Trie樹談到後綴樹)都可。但當trie樹面對的是漢字中文的時候,就比較麻煩了。因此hash+堆是比較理想的選擇。
    一樣,針對視頻的話,應該也是相似的:一、經過系統或機器讀取視頻內容,把視頻轉換爲文字,而後提取其中頻率出現高的關鍵詞(如何提取關鍵詞呢,這就涉及到一個關鍵問題了:分詞。本blog往後闡述),把提取出來的這些關鍵詞做爲此視頻的標籤tag;二、而後針對這些tag創建索引摘要(什麼樣的索引?倒排索引。至於什麼是倒排索引,參考編程藝術第二十四章: 第二十3、四章:楊氏矩陣查找,倒排索引關鍵詞Hash不重複編碼實踐),最終方便於往後用戶或系統的查找(此節系與編程藝術內的朋友討論整理總結而出)。
    具體細節後續闡述。
 

八、參考文獻

  1. 本人1月7日,1月21日的發表的微博(掛在本blog左側邊欄);
  2. 探索推薦引擎內部的祕密,做者:趙晨婷,馬春娥;
  3. 集體智慧編程,TobySeganra著。
  4. 推薦系統之協同過濾概述
  5. http://www.cnblogs.com/leoo2sk/
  6. Mitchell, Tom M. Machine Learning. McGraw-Hill, 1997(機器學習領域的開山之做).
  7. http://zh.wikipedia.org/wiki/%E5%86%B3%E7%AD%96%E6%A0%91。
  8. http://www.36kr.com/p/75415.html
  9. 智能web算法,第三章推薦系統(實現了用戶及項目的類似度的計算,值得一看)
相關文章
相關標籤/搜索