閱讀、電影和音樂的推薦演算法,哪一個更難做?為什麼?
首先,如果以準確度為基本判斷標準。
其次,這幾類應用的商業化結果很不同,可能還反映出同樣是不完全準確的推薦結果,在不同領域內、被用戶接納的程度也不同的問題。都算進推薦演算法難不難做的大範疇里吧。
最最根本的,我們先假設三個推薦系統手上的用戶歷史數據量一樣大。因為對推薦系統,歷史數據量直接決定結果。
如果只根據用戶歷史數據,例如喜歡看《肖申克救贖》的人大部分也喜歡看《飛越瘋人院》,這個推薦系統技術叫collaborative filtering (CF)。對CF來說,每一個待推薦對象只是一個抽象編號,並沒有實際意義,所以書、音樂、電影,並無區別。
再複雜點,除了給三個系統等量的用戶歷史數據,每個推薦系統還會再考慮出版標籤:比如書的作者、出版社;音樂的作詞、作曲、風格、發行商;電影的導演、編劇、主角、配角。在這種情況下,獲得的信息量越多越准。此處的熵是嚴格資訊理論定義的熵。按經驗粗略估算,我覺得電影的出版標籤信息可能是最大的,音樂次之,書最少。所以難度遞增。
再往下,我們來談談最近幾年比較熱的直接對媒體內容進行分析。在這裡,情況就正好反過來了。對動輒兩小時的電影做視頻分析,從中抽出靠譜的表達,這事兒在學術圈裡目前還挺有挑戰的。目前對音頻的特徵分析雖然也像視頻一樣距離人腦還有些距離,但畢竟一首歌才幾兆大,所以工程上難度低很多,而且已經有人有不錯的結果了 【NIPS : Conferences : 2013 : Program : Deep content-based music recommendation】。至於書,字元是一個比聲音或圖像方便得多的格式,自然語言處理在這方面要成熟得多。所以也最容易抽出有意義的內容信息。
但是,除了高大上的視頻、音頻分析技術之外,對於電影和音樂,我們還能找得到劇本和歌詞。這些內容相對比較容易處理。
如果要我把最後這些因素綜合在一起看,就真的要具體情況具體分析了。拿不出具體的實驗數據我胡亂估計一下,難度會是 書 &< 電影 &< 音樂 (因為電影劇本相比音樂台詞的文字量大很多)。當然,現實生活中,不同公司,不同行業之間,最顯著的差別永遠是開篇說的最基本的——用戶歷史數據量的差異。所以這也就是為什麼在近年來,大數據越來越成為各個公司的技術壁壘,而單一的具體技術卻越來越缺乏競爭力。首先正面回答問題,個人認為無論是基於用戶行為(協同過濾),還是基於內容相似度的推薦演算法,難度從高到底都依次是:音樂-閱讀-電影。
原因如下:
1. 觸發行為的原因和成本不一樣,反映真實喜好的程度不一樣。聽一首歌的時間一般只要4-6分鐘,觸發你聽一首歌曲的原因各種各樣,真心喜歡、旋律優美、朋友推薦、綜藝節目、配樂好聽、歌詞漂亮等等。假設你所有的聽歌行為都發生在一個網站或終端App上,其實你的行為也是很碎片的,很難判斷你真正的喜好。閱讀的門檻次之,很多書翻個十幾分鐘、半個小時就可以翻完,引發的原因也多樣,比如求知、打發時間、被推薦,所以行為相對不那麼容易產生,行為對興趣的反映基本上有價值。看一部電影基本需要花2個小時左右,不是出於興趣不太可能輕易去看,行為比較固定、有規律且更真實表達你對電影的興趣。2. 三種內容形態各自相似度的分化程度不一樣,樹枝分叉的廣度和長度不一樣。音樂分類的維度最廣,每個維度下的標籤多,主要的音樂維度有風格、主題、地域、音色、場景、情緒、樂器、語言,每個維度下延伸的二級標籤三級標籤成千上萬個;圖書從類型、主題、地域幾個維度基本能分清楚;電影從題材、地域兩個維度基本能劃分比較清楚了。只要框在一個大維度里的圖書和電影,相似度基本不會相差太遠。你會去區分兩性情感圖書下面的婚姻和戀愛嗎?電影的地域特點就更強了,美國基本是大片,歐洲基本是文藝片,日本基本是動畫、倫理片。又或者,你看愛情喜劇片,會區分是歐美還是日韓么?不太會吧,評分高的都感興趣。哈哈,說到這裡,發現電影的評分其實也是一個強有力的分類。閱讀受評分的影響相對較小,音樂基本不會受評分影響。但是,決定寫這個答案時又突然想到,個性化推薦是有悖論的。悖論在於:
1. 基於用戶碎片化、隨機的操作建立起來的客觀的推薦機制無法切中用戶受不同時間、場景和心情影響的某個時刻的主觀需求。舉兩個栗子:第一個,與音樂有關,我最近每天午睡時會在幾個午休靜心的歌單間隨機聽(午睡半個小時,大概能聽5-6首歌),然後網易雲音樂給我推送的每日推薦歌單(9月25日)里一半是班得瑞、純音樂和其他節奏舒緩的歌曲。網易雲音樂的1周熱評專題做的很有意思,每周翻翻,碰到有趣的評論就會聽1-2首,主要是流行歌,於是每日推薦歌單一半是流行歌。基於用戶的行為推薦相似的結果,這個機制很客觀吧,但是,我並不認為推薦的結果符合預期,因為旋律緩慢的歌曲只是我某個特定時刻需要的,流行歌曲我只是因為點評有趣,好奇才去聽,並不是真正喜歡。如果你給我推薦平時聽的最多的民謠歌曲,我一定會喜出望外,太懂我了好嘛!第二個,與閱讀有關,最近在多看閱讀閑逛,在限免專區下了一堆情感類心靈雞湯書(庄雅婷、丁丁張)以及果殼科普讀物,地鐵、排隊、睡前打發時間。但是,我不希望多看接下來給我繼續推薦這類圖書(這個多慮了,多看目前沒有個性化推薦模塊),因為我恰好只是這段時間對這個品類感興趣而已,下一刻或許我會想看《三體》或文史哲。2. 推薦的粒度和維度不一樣,效果也不一樣,基於用戶的單個行為或操作推薦的結果接受度會高很多。比如,你在看庄雅婷的《那些有傷的年輕人》,給你推薦庄雅婷的其他書,或其他相似作家的書;你在聽日系小清新,給你推薦小清新歌單。這些推薦結果緊跟你當下的行為路徑,你會覺得需求被命中了,更重要的是幫你擴大了當下的興趣範圍,你很有可能順著推薦的結果翻翻翻,發現驚喜的內容。從我的經驗來看,閱讀最難做,其次是音樂,最容易做的是電影。當然是在有大量數據的前提之下。
從幾個領域的特點來看:
1. 電影的item數量相對較少,而且優秀的電影有很長的生存周期,加上用戶行為(觀看、評分)對電影社區、視頻網站或者訂票網站上來講都很很好獲取的,所以特別適合做協同過濾。
即使不是大熱的電影,也可以從導演、類型、主演等方面做基於內容的推薦,這些都是結構化信息,因此沒有什麼難度。2. 音樂的item比電影要多一些,生存周期差異很大,不過也可以根據用戶行為(播放、收藏)來做協同過濾。
但是音樂可用的內容信息相對少一些,而且大家聽歌時心情很重要,所以要做實時的調整,加上推薦演算法要經常的推薦一些用戶沒聽過的歌來試探用戶的興趣,所以難度要大一些。3. 閱讀分兩類,圖書推薦跟電影類似;但是新聞資訊類推薦難度很大,因為item非常多,而且生存周期很短,對時效性要求比較高,所以除了協同過濾,一定要有非常有效的基於內容推薦的演算法。大家的閱讀來源渠道很多,熱門新聞可以從門戶上看,很多長尾可以從微博之類的興趣圈獲得,一個閱讀應用如何定位和平衡自己的內容?
用戶興趣十分寬泛,容易變動,而且受熱點事件影響很大,演算法如何表達並更新用戶的興趣?又如何基於興趣標籤計算推薦結果?起碼我沒有看到特別成功的推薦閱讀應用。假設一:不挖掘閱讀文本內容、音頻文件、視頻文件。單純依靠外部描述信息,比如標籤、分類、用戶評分等。
假設二:三類內容相關的數據量量級相當。比如用戶的歷史數據、分類的信息等。如果以上兩個假設全部成立,那麼可以認為推薦演算法的準確度是大致相當的。這是因為當前的推薦演算法都是內容分類、用戶聚類和協同過濾演算法的綜合體。如果模型合適,training和test方法適當,沒有理由不產生相似的結果。
但是!
我相信這不是題主的本意。如果假設一不成立的話,也就是說我們去深入挖掘文本、音樂和電影內容本身的話。這樣除了外部描述信息,我們可以得到更多的內容本身的特徵信息。推薦演算法的表現就完全不一樣了。就目前的技術來說,文本&>音頻&>視頻。因為自然語言處理也就是文本分析是目前機器學習裡面研究最多和最深入的題目之一。我們可以通過詞頻、詞語sentimental等等信息來提取關於文本內容的大量特徵。也就是說在外部數據量相當的情況下,我們憑空又多出來了好多信息,當然可以提高推薦演算法的準確度。
音頻信息的挖掘,也是今年來發展很快地地方。最典型的就是shazam,通過一小段的音頻就可以識別音樂。類似的,通過一些不難的演算法就可以實現music genre classification。也就是可以發現一些沒有被tag或分類的音樂信息。這本身也可以幫助提高推薦演算法的準確度。但是對於視頻信息的挖掘,就我目前的淺見,貌似是沒有很好地辦法的。所以可能沒有辦法提供額外數據,也就不能提供推薦精度。所以,通過對內容本身的數據挖掘,是可以提高推薦演算法的精度的。所以不同內容的推薦,是可能產生不一樣的精度的。如果假設二不成立.....呃.....一般來講,模型相似,數據越大越精確.....
以上。目前的推薦演算法,最基礎的包括協同過濾(基於用戶的CF和基於Item的CF),和基於內容的推薦,前者的大致意思是尋找和你有著相似愛好的近鄰,然後將他們購買的商品推薦給你,後者是尋找和你購買的商品有相關特徵的商品,比如你購買了&>,然後給你推薦&>,因為它們的作者都是財經作家吳曉波,或者基於你喜歡的題材是企業和財經,推薦相關題材的書籍。協同過濾可以用在你所說的這三種情況:閱讀,電影和音樂,但通常商家不會使用單一的演算法進行,會加入一些機器學習演算法,來改善推薦的精度,如邏輯回歸,SVD,LDA,聚類等,這些是和收集到的數據特徵和應用場景有很大關係的. 對於閱讀來說,也分類似於博文的WEB推薦和書籍推薦,博文推薦的話,可以將文本分析或者主題分析模型加入其中,來提高精度,對於書籍的話,作為推薦系統在電子商務中的典型應用,分析書籍文本並不可靠,應用比較多的是CF,加上一些已知的知識,如書籍的題材,出版年份,作者等,來建立相應的模型,進行推薦. 對於電影,這也是推薦系統的一個典型應用,著名的Netflix比賽,就賺足了眼球,各種大牛在其提供的公開數據集上做實驗,CF-&>SVD,以及基於這些演算法的改進,層出不窮. 對於音樂來說,不得不說,這是一個比較難的應用場景,這和人的習慣和音樂的特徵是有關係的,除了常用的演算法外,如果想推薦精確的話,需要花費大量的人力去給這些音樂分門歸類,加一些標籤,或者描述!
不是專業做推薦的,隨便yy。
零、事物的描述緯度。
音樂,基於物的緯度(類型、演唱、作曲等),基於人的緯度(心情、情境等)。
電影:基於物的緯度(類型、演員、導演、年代等),基於人的緯度受到情緒情境影響。書:基於物的緯度(類型、作家等),書更容易有階段性的選擇(比如最近偏向哪方面的研究等)。所以這三類看起來都可以從多面去做推薦。一、推薦的成功率與人對事物的接受度有很大關係。接受範圍越廣,推薦成功率越小。
比如:我曾經聽過一些古典音樂,機器由此把我和古典音樂關聯,所以在我工作時候就推薦給我古典音樂。這是一個非常糟糕的推薦,個人聽古典音樂需要一個良好的聽音環境和心情,工作中不太喜歡聽,這就是一個情境因素。比如:曾經一段時間對某類書感興趣,但是那是一個短暫的階段(可能為了某項任務),我可不希望以後的推薦中再次出現這類書。這就是一個內在動機與外在動機的因素。比如:個人對某些電影類型和演員的電影比較感興趣,由此推薦出來的電影,我一般都會嘗試去看。對我來說,對電影的接受度比較廣,甚至比較容易接受一些超出預期的電影推薦。這樣看來是不是電影比較好推薦些?二、公眾決策對推薦的影響。當你聚焦的領域越小的時候,公眾的決策價值越大。
比如:當你想聽某個藝術家後者某個類型的音樂時,可能公眾參與評分最高的一些作品,你接受它的可能性也越高。
比如:當你想了解某個作家的時候,你會先閱讀他的成名作。比如:當你決定看不看一部不熟悉導演和演員的新片,評分的重要性就會起到決定性作用。所以,在某些情境的推薦中,參考公眾意見是比較不會錯的做法。三、個人對推薦的價值的判斷,發現最好的東西還是發現更大的世界。
這是兩個完全不同的方向,選擇哪個方向也看每個用戶的個性和當下情境,所以推薦演算法對用戶當前情境的捕捉和習慣的分析是推薦合理的前提。在排除特別討厭的類型和特別喜歡的類型,其實選擇的餘地還非常大,用戶標記喜歡的標籤永遠比他實際喜歡的範圍要小很多。比如,我在計算機技術領域已經是資深了,就不要推薦一些基礎的書給我了,但是可以推薦一些技術的科普書?或許會感興趣。四、哪些推薦方式好?
這個只有真正做這件事的人才知道。比如網易音樂做基於人的協同推薦,但是好友在聽什麼管我屁事。
但是如果回到書的推薦上,如果你是設計師,同時關注了幾個設計師,那麼他在看的書對你是有參考意義的。所以選擇哪些推薦方式,要綜合來看,基於物、人、情境的關係分析以及個人的變化做出來的推薦應該比較靠譜,這也不會是一朝一夕的事。瀉藥,瘦蟲弱精。
我覺得各有所難,完整的推薦邏輯過程包括:1、單體樣本的分析,2、樣本屬性模型的建立,3、樣本屬性的獲得,4、樣本之間相似度的評估、計算。
以下討論的基本都是基於數據本身,不考慮用戶和項目之間的偏好信息,所謂的冷啟動推薦系統。
一、閱讀
根據不同領域的文章,來確定不同的關注點。技術類文章需要關注技術名詞、技術領域、專家作者;YY小說類,需要關注的是穿越還是現世,東方還是西方,完結還是未完結,細緻點還有魔法體系、功法體系,絕對YY還是一般YY等等。散文集需要關注的是作者、內容提要、風格(這東西我完全不懂啊)。如此看來,閱讀類的推薦,難點就(過程1)是確定關注領域,(過程23)提煉章節大意;還有就是過程4,因為文本的相似度計算需要關注除開那些可以數值化量化的作者、是否完結、類型之外,更加需要關注文本之間的相似度評估。文本相似度計算到底是採用簡單的分詞匹配還是建立話題模型,都是難點所在。二、電影
其實我覺得,電影和閱讀相似度蠻高的,因為有劇本,只是在屬性選擇面更廣了,多出了演員列表(用戶關注電影,也有很大程度上是因為演員)。
三、音樂
個人覺得,最難的就是音樂。音樂的數據模型最複雜,曾經看到過一篇文章,提到了音樂模型:音色、音軌、聲調、歌詞以及其他音樂專業領域的信息都是可以量化數值化的,比如提取成一串字元串。至於什麼藝術家、歌曲類型等也是需要的。其實要做好推薦,這三個都很難,就看我們自己能不能發現別人沒發現的評估點,以及背後需要的龐大演算法。謝邀,拋開演算法、數據等,從推薦的內容來看,音樂由於是音頻,即使有標籤,旋律、風格、甚至是音頻本身的一些東西也對推薦的好壞有較大的影響,因此難度最大;閱讀和電影來說內容本身相差不多,我個人認為電影由於商業化更強,風格、評價等可能更為成熟,受眾對推薦的內容要求也相對沒有那麼苛刻,所以我認為難度小於閱讀。綜合來說:難度 音樂 &> 閱讀 &> 電影
感覺音樂最難。這個東西很難量化喜歡多少。而且聽一首或者幾首的成本低。
目測電影比較好做,電影內容比較單一,並且有豆瓣等評分系統、標籤作為基礎。
哪個好做直接取決於你有什麼數據,能夠拿到什麼信息……
音樂最容易,
電影其次,閱讀最難。因為口味變化大。這三者的難度都不大,重點說音樂吧,原因有這麼幾點,這三類用戶所能涵蓋的數量是有限度的,假設全世界有源可查的音樂共有100億首(假設而已)那麼全人類社會能傳播的音樂數量也不會很多,而且音樂不會有因為文化、地域、語言的限制,(電影和閱讀會有這個限制)。由於無限制通常理解為會很難做,但實際上恰恰相反,100萬人都聽過和喜歡同一類音樂的情況是存在的,那麼就取一個基準的錨點來關聯音樂風格類似的就可以了,接下來可以不斷的收集用戶的行為,例如播放次數、是否喜歡、打分評級等等這些操作反饋給演算法,演算法不斷的根據行為來推送類似的音樂,隨著時間的增長,推薦的會越來越精準。
個人認為 音樂相對最簡單,閱讀(僅指書籍)最難。
推薦,是根據歷史數據建模,再根據歷史數據中,Item的關聯,以及模型之間的相似度,為當前的模型進行推薦。
在根據歷史數據進行建模的過程中,我個人認為 對Item人工TAG的工作,能夠加速模型的構建和關聯,但也是一個主觀上的劃分,會對模型產生的很大的干擾。而模型的建立,還需要反饋來評定和調整。
個人認為反饋非常重要,是對之前的模型效果最直接的評定。而閱讀、電影、音樂三種方式,對於推薦的Item,去接受和反饋,難度是不同的。音樂的獲取和反饋最簡單,電影次之,閱讀最難。謝邀。
如果說協同過濾的話,通過歷史數據擬合可以找出最適合的演算法,不過在實際中演算法是一樣的演算法,能獲得用戶的信息越豐富,推薦的結果會更準確。所以具體到場景,如果能儘可能多的捕捉用戶行為,例如點擊、瀏覽、停留、收藏、評論、轉發、tag等等,那麼能夠給演算法提供的分析因素更多,推薦的結果會偏向更準確。至於用戶行為,發散一下想像力,能夠捕獲的其實還有很多。
簡單舉例,在阿小貓里,點擊播放、點擊專輯封面、點擊音樂人名字、點擊上下曲、收藏或是取消收藏、聽完或是只聽了一部分等等都會用於演算法的分析。
偏離演算法層面了,更偏向實際應用了,僅供參考~如果是協同過濾那種完全基於用戶喜好的思路的話,這三者沒有區別。如果引入用戶評論和tag的話,也是一個道理。