專題直播:http://labs.chinamobile.com/focus/imic_2012
程序員
2012年8月21日至8月22日,中國移動在北京國際會議中心舉辦「第六屆移動互聯網國際研討會」,聚焦於雲、管、端、「臺」,更普遍、更深刻地探索構建合做雙贏的產業新生態,打造移動互聯新生活。如下爲Hulu軟件研究人員項亮發表演講。 算法
如下爲演講速記:
網絡
謝謝你們來聽咱們的報告。以前的嘉賓都講了不少界面怎麼設計、產品怎麼定義之類的,我今天給你們分享一些算法方面的東西。首先關於推薦系統。這是我今天的主要內容,關於推薦系統,什麼是推薦系統?你們有兩種不一樣的認識,從狹義的方面來說,你們會認爲好比說亞馬遜首頁給你推薦,這個就叫作推薦系統,其餘的都不算,這個在我看來,其實推薦系統給他一個比較明確的定義,就是可以經過用戶行爲的變化,來改變用戶瀏覽所看到的東西的東西,就叫作推薦系統,好比說你在網上買了一雙鞋,而後你買完鞋之後去了一個頁面,發現這個頁面和別人不同,是跟你剛剛買鞋這個行爲發生的變化很是相關的一種變化,這是推薦系統所產生的。
iphone
推薦系統有一些任務,首先推薦系統在整個網站裏面,它鏈接了三方面的參與者。首先是用戶,而後是物品,我要賣的東西,而後還有網站自己,對這三方面的人,或者是說提供這些東西的這些提供商來講,這些系統須要解決三個問題,第一個是咱們知道如今的社會是一個信息擴展社會。會在網站上看到各類各樣的東西,特別是網店興起以後你們的選擇範圍比之前大不少,因此如何從這些海量的商品中或者是信息中找到用戶感興趣的信息,是推薦系統的第一個任務。
工具
第二個任務是推薦系統在知足用戶的同時,也要知足物品的提供商,好比說咱們Hulu最主要的提供商是賣電視的,像美國的福克斯,CPS,這些內容提供商。咱們必需要把他們很長遠的電影給推薦出去,不能說他賣一千部電影,咱們只推薦一部,其餘的不放這是一個推薦任務。另一個是不少網站有不少搜索,還有各類各樣的排行榜,爲何要用推薦系統,若是其餘的產品可以帶來推薦系統,可以帶來的全部好處,就沒有必要用推薦系統,因此說推薦系統的第三個任務是要幫助使用他的網站增長他的用戶粘性。
測試
這個推薦系統誕生從正式的學術上的誕生起源於1994年,當時美國的一些研究人員發表了一篇論文,從論文開始產生了一個詞,推薦系統才正式誕生,從誕生到如今已經用了不少的領域。特別是近幾年應用的領域不少,像電子商務裏面有淘寶,噹噹等等,音樂上就有豆瓣電臺之類的,另外像社交網絡有新浪微博。還有像本地服務中的大衆點評。這裏截取了推薦系統的界面,來講明它的應用。剛剛說了對推薦系統有比較狹義的認識,我截屏截出來的東西就叫作推薦系統,好比說Hulu的首頁裏面,上面是Hulu的,下面是亞馬遜裏面的,亞馬遜裏面會根據你之前看過的書,買過的書給你推薦一些書,這是根據用戶個性化的行爲給用戶推薦物品這是一個比較狹義的推薦系統。
優化
這是咱們在移動互聯網上作的一個個性化推薦的產品,你們知道這個在看視頻網站這件事情上,有不少的設備均可以看視頻網站,好比說iphone和Ipad,家裏面的電視,包括機頂盒都會用來看視頻,根據咱們的研究發現,在設備上看視頻和在網站上看視頻有很是大的不一樣點。在設備上看視頻的用戶更須要一種工具幫助他們發現他們個性化的,所喜歡的東西。由於在設備上,你們知道輸入是很是困難的,用戶的興趣也是很不明確的。基於這些咱們在這個設備上設計了一個和網站上徹底不同的應用。你們看到整個第一屏的全部東西,從最上面的,若是對美劇看興趣的都知道,最上面有一個電影,這個裏面展現不少的美劇。下面也是一些個性化的,告訴客戶你以前看過什麼東西。下面是根據你用戶的行爲給你作的推薦。再下面是一些其餘的好友給你作的推薦。咱們在設備應用上加入了更多的個性化的元素。
網站
跟咱們同樣的,亞馬遜也是,你們若是看到亞馬遜在網站上的首頁,會發現有各類各樣的繁雜的分類目錄,最近改過版,比之前好多了,可是在手機上只有一個搜索和推薦。其實就知足了用戶的需求,一種是用戶有明確的目的,我今天想買一個襪子我就去搜索了,另外是客戶不知道幹什麼,就想買一個東西,就去推薦。這是中國的大衆點評。主要是考慮用戶所處的上下文,好比說他所處的時間和地點,給他推薦的餐館之類的。
設計
這個豆瓣也是同樣,音樂能夠是是推薦最適合的場景。在我看來一個好的推薦系統,最好的場景是用戶極端的無聊,極端的不知道本身想幹什麼,這種狀況下你聽音樂,不多有人說我今天就要聽這麼一個音樂,不會有這樣一我的。你們就是說我只是想聽音樂,我不知道我想聽什麼,你按照個人風格給我推薦就能夠了。豆瓣電臺在iphone上的界面,把手機打開,登上豆瓣電臺,戴上耳機就能夠聽了,你不告訴他你想聽什麼,他也不讓你有選擇。你也沒辦法搜索我想聽什麼。
視頻
除了這個以前的個性化推薦之外,還有相關的產品,相關物品推薦,好比說你在Hulu上看到了一個電影,咱們會給你推薦類似的東西,或者是說你在亞馬遜上買了一本書,咱們會給你推薦一些類似的書。其實這個用的範圍更普遍。不少的網站沒有個性化的推薦,也就是說首頁沒有推薦,可是每個商品的頁面都有推薦。並且這個推薦給電子商務網站帶來的銷售量的增長也是有很大的影響的。
好比說我以前聽過一個電商網站的說法,有一個應用叫作打包銷售。主要的方法是大家買了一本書以後,下面會有一個界面,你買這本書和那本書一塊兒買能夠便宜多少錢,這對銷售額的增加頗有用的,這也是有相關推薦的,這是在亞馬遜上買程序員修煉之道以後,告訴你應該買這本書的人,也買了其餘的什麼東西。另外這個是視頻網站上每看完一個視頻之後,會彈出一個框,你們上優酷和奇藝也能夠看到,這樣能夠增長用戶的視頻瀏覽時間。
再說這個推薦系統有什麼算法以前,咱們說一下評測。咱們設計一個任何東西以前,咱們要了解他的評測指標。若是你沒有目的,就沒有方法直線你的目的。對於評測有三種評測方法。第一種是離線實驗,咱們搞一個數據集,咱們本身在這定一些指標,去優化,若是你們作過數據挖掘和記憶蒐集會知道我優化一個指標,而後第二種是說你離線實驗,以後你以爲這個離線效果已經很好,爲何要先作離線實驗呢,由於沒有任何成本,只須要一個研究人員搞一個數據集,搞幾天就能夠出來了,可是弄出來以後,只是說離線指標要好,可是離線指標好不表明你上線就可以獲得商業上的增加。第二步就是咱們要作用戶調查,咱們花錢僱一幫人來推這個系統,你用這個爽不爽之類的東西。你須要花錢僱人,這個才能幫你填這些調查表格,最後你用戶調查,離線實驗感受都很爽,你就能夠放在線上作測試之類的。這固然是實驗方法了。
關於在線評測的實驗指標,一個是點擊率一個是轉化率。可是這兩個率的定義,對不一樣的網站是不同的。點擊率比較容易定義,用戶點的東西。可是對於轉化率來講,電商網站和視頻網站的轉化率就不同了。電商的轉化率是定單,真正從這個用戶這賺多少錢了。對於視頻來講的話,看你的影視模式,你靠放廣告的話,就要讓用戶的觀看時間變長就知道了。你們知道優酷,你多看一個視頻就能夠多看一個廣告,你最終的光看時長越長的話,轉換率就越高,還分爲短時間的轉化率和長期的轉化率。
好比說咱們以前在實驗中發現,美國的用戶,我不知道中國用戶有沒有這種特色。他們平時不怎麼看電影,週末會看電影。你平時給他積攢的電影他會積攢到週末看。若是記錄了那一天的轉化率的話,可能算不出轉化,可是若是時間日後的話,會發如今必定時間內會轉化的。
離線指標很是多了,這個指標多得讓人以爲你不知道以哪個目標做爲優化爲主。其中一個比較著名的是推薦的準確率,主要是描述了推薦系統預測一件事情的能力。好比說我推薦系統預測你明天會去買一雙鞋,你明天真的去買一雙鞋了,就叫作預測準確了。不少時候不能表明推薦系統的真實的能力,由於推薦系統,包括咱們設計不少離線算法預測正確的都是很是顯而易見的事情,好比說我預測你明天會吃飯,明天太陽從東邊升起。不少時間咱們所評測的準確率高的推薦系統,是由於他預測到了顯而易見的事情,對於不顯而易見的事情,不少系統沒有預測準。
覆蓋度呢,我前面說這個用戶系統對內容和提供商來講都是很重要的,好比說之前一千本書,你只把其中的十本推薦給了客戶,另外的沒有給客戶推薦,那麼你的覆蓋率是1%。也就是說覆蓋率描述了這個系統,是否能夠把常規的系統推薦給用戶的能力。
多樣性是說用戶看到的推薦結果是多樣的,爲何是多樣的呢。你們以爲這只是這個研究人員追求的指標,我以爲應該多樣就應該多樣。其實不是這樣的,由於用戶的興趣自己是多樣的。而咱們推薦系統的能力,並不能知道用戶在當時和當地須要什麼東西。那麼爲了解決我不知道他在當時當地須要什麼東西的問題,咱們最簡單的解決方案,咱們把他可能喜歡的各類各樣的東西都弄出來,讓他本身選擇一個,好比說這我的曾經喜歡這個劉德華的歌,也喜歡張學友的歌,今天這個客戶來了,他可能也是想找劉德華,可是你並不知道他今天只是想找劉德華,因此你要使你的結果多樣,使他可以更容易的擊中他的興趣。
新穎性和準確率有一點關係,不少的推薦系統只是把一些顯而易見的東西預測出來了,因此新穎性是考量了把一些用戶不知道的,好比說用戶每天吃飯,今天也吃飯,這個沒意義,若是客戶每天吃飯,今天沒吃飯你告訴他,這個會很新穎。
另外信任度呢,你們知道推薦這個東西和社交網絡同樣都是一個線下活動的線上表現。好比說現實生活中會交朋友,好比說趙本山的賣柺,會推薦一個拐給你,如何認爲我要買這個拐呢,必須有一個信任度,一樣一個東西,趙本山賣給你你可能會買,可是我賣給你你並不必定會買。個人推薦結果是同樣的,可是你給用戶的信任度不一樣,會影響用戶的最後決策。信任度的下一個是可解決性,主要是說提升推薦系統信任度的方法,是讓你的結果能夠解釋,告訴用戶爲何推薦這個東西,用戶不少時候知道這個緣由之後能夠更好的相信你的結果,最後一個指標是你的系統能不能受到一些攻擊,我這我的,我本身賣鞋的,我想把個人鞋每天弄到首頁上,我攻擊你的系統。你的系統在這種攻擊下怎麼樣應對。
而後主要的方法有這麼五種,有內容過濾,協同過濾,根據用戶的行爲進行郭彤,社會化過濾,上下文相關推薦。內容過濾最簡單的,一個用戶看過大話西遊,無間道以後,看過色戒,還會看什麼,最有可能看臨歧的電影,這是由劉德華和梁朝偉和周星弛三人合演的,這是一個內容推薦的例子。
而後機遇用戶協同過濾,給用戶推薦他有類似興趣的其餘用戶喜歡的物品。好比說我都知道看過金庸全集一之後會看金庸全集二,可是沒有人知道喜歡啤酒的人會買尿布,這件事以前你們不知道。可是最後經過協同過濾挖掘數據之後才知道,社會化過濾,好比說在新浪微博上也有的,第一種給用戶推薦好友喜歡的物品,第二種是給用戶推薦好友。給用戶推薦好友最典型的應用是像你們都要找工做,找工做人脈很重要,這個時候推薦好友和重要。
最後這個是上下文的推薦,這幅圖表現什麼事情呢,像你們都看過了希爾頓和他的朋友在家裏面看電影,這個包含了不少上下文,第一個是在家裏面看的,地點,第二個是和什麼人看,和朋友,沒有說時間,能夠說是晚上看的,通常的PC確定放在家裏面,因此在PC上放的時候,確定在同一個時間,同一個地方,同一個什麼什麼,通常不會和好友圍着PC看,可是移動設備不同,能夠變化的,能夠經過GPS數據很容易拿到的,因此上下文決定了對推薦效果很大的影響。
最後說一下咱們前面提到了不少推薦算法,可是有一些很好,有一些在某種程度上好,可是怎麼樣才能讓這些算法發揮最大的做用呢。咱們要把這個推薦算法融合一下,不只要融合算法,還要融合各類行爲。咱們說推薦系統就是用戶的行爲了,用戶的行爲很是的。因此好的推薦算法,應該融合用戶的各類各樣的行爲,利用各類各樣不一樣的算法給用戶推薦一個結果。
我前面講了不少,推薦系統也有不少挑戰,好比說冷啓動,優化目標,我前面那麼多指標,哪一些指標更重要,還有異購的,多源的數據,各類各樣的數據。最後是前面不少人提到了產品設計,和用戶界面怎麼作。
推薦系統和移動互聯網來講,個人經驗並非特別多,我只是總結了一些移動互聯網的特色。第一個是用戶大部分的時候都是處於無聊的心態,大部分都是處於地鐵上或者是電梯裏看移動互聯網,不多有人在工做的時候看,屏幕很小,不少人說過了。第三個是移動設備上輸入文字很困難,你們以爲Ipad和iphone很能夠,可是要想在電視上輸入一句話很難。用戶通常是處在通常的明確上下文當中,用戶的設備是各類各樣的,好比說有安卓和iphone等等。最後是用戶的數據比PC上更豐富,由於有各類各樣的數據。個人演講到這裏,謝謝你們。
(本文爲現場速記稿,不表明移動Labs及中國移動觀點)