演算法推薦分類
A. 用於數據挖掘的分類演算法有哪些,各有何優劣
1、樸素貝葉斯(Naive Bayes, NB)
簡單,就像做一些數數的工作。
如果條件獨立假設成立的話,NB將比鑒別模型(如Logistic回歸)收斂的更快,所以你只需要少量的訓練數據。
如果你想做類似半監督學習,或者是既要模型簡單又要性能好,NB值得嘗試.
2.Logistic回歸(Logistic Regression, LR)
LR有很多方法來對模型正則化。比起NB的條件獨立性假設,LR不需要考慮樣本是否是相關的。
如果你想要一些概率信息(如,為了更容易的調整分類閾值,得到分類的不確定性,得到置信區間),或者希望將來有更多數據時能方便的更新改進模型,LR是值得使用的.
3.決策樹(Decision Tree, DT)
DT是非參數的,所以你不需要擔心野點(或離群點)和數據是否線性可分的問題(例如,DT可以輕松的處理這種情況:屬於A類的樣本的特徵x取值往往非常小或者非常大,而屬於B類的樣本的特徵x取值在中間范圍)。
DT的主要缺點是容易過擬合,這也正是隨機森林(Random Forest, RF)(或者Boosted樹)等集成學習演算法被提出來的原因。
此外,RF在很多分類問題中經常表現得最好,且速度快可擴展,也不像SVM那樣需要調整大量的參數,所以最近RF是一個非常流行的演算法.
4.支持向量機(Support Vector Machine, SVM)
很高的分類正確率,對過擬合有很好的理論保證,選取合適的核函數,面對特徵線性不可分的問題也可以表現得很好。
SVM在維數通常很高的文本分類中非常的流行。由於較大的內存需求和繁瑣的調參,我認為RF已經開始威脅其地位了.
B. 關於演算法
阿朱對於演算法的了解不多,總結如下,希望多多交流,改正瑕疵。
演算法推薦主要有5種方式:
基於內容推薦:這是基於用戶個人興趣的推薦。根據用戶個體的歷史行為,計算對內容特徵的偏好程度,進而推薦出與用戶特徵偏好匹配的內容。
協同過濾演算法:這是基於群體的推薦。基於用戶的相似度、內容的共現度,以及基於人口特徵將用戶聚集為不同群體來推薦。(解釋一下:常見的協同過濾演算法有兩種,一種是基於用戶的(user-based),也即計算用戶之間的相似性,如果A和B的興趣相近,那麼A喜歡的電影,B也很有可能喜歡。另一種是基於物品的(item-based),也即計算物品之間的相似性,如果電影C和電影D很相似,那麼喜歡電影C的人,可能也會喜歡電影D。)
擴展推薦:基於用戶興趣點、內容類別等擴展。(你喜歡歷史資訊,我推考古、尋寶的資訊給你)
新熱推薦:基於全局內容的時效性、熱度推薦。(在產品初期同時缺乏用戶數據和內容數據時,內容分發效率很低。使用基於內容推薦演算法效果不顯著,而使用一些熱點話題可在保證一定流量的同時,不斷通過用戶的個人行為(點贊、評論、瀏覽、收藏)來逐步精確用戶畫像和進行內容沉澱,為之後的個性化推薦做准備)。
環境特徵:基於地域、時間、場景等推薦。(知乎上你們市的牙科診所廣告、婚慶廣告)
每種演算法的效果不一,組合味道更佳,因此很多公司都是採用「演算法矩陣」的方式來推薦feed。(後文也會談到這一點)
優勢:
內容質量審核、社區治理(辱罵、撕逼),推薦商品,減少人工運營成本。
源源不斷推薦給你感興趣的feed,提升了用戶粘性,商業化的潛力進一步加大。
讓用戶 kill time 的需求更好地被滿足,增強用戶體驗
弊端:
1.演算法本身或者演算法背後的人產生技術錯誤——只要是人寫的演算法,就一定有出錯的概率,比如德國居民凌晨發飆的智能音箱、失控的Uber自動駕駛汽車就是程序上的Bug導致的,這一類我們克服的辦法其實相對簡單。但對於另一種人為算計消費者的演算法有時候可能我們就無能為力了,比如大數據殺熟現象,無論真實與否,這類問題往往很難識別,因此也加大了監管的難度;(抖音視頻里你見不到「錢」字,只能看到「Q」來代替)
2.演算法對於人性部分的忽略——現在的人工智慧離真正理解人類的感情和行為依然有巨大的鴻溝,Facebook提醒你給去世的親人發生日祝福背後本質的原因在於AI無法真正理解死亡對於人類意味著什麼;因此需要人機結合(平台人工參與,用戶舉報等自治措施),不能單獨依靠演算法。
3.演算法訓練數據本身的偏見——目前人工智慧的基本邏輯是先構建一個合適的機器學習模型,然後用大量的數據去訓練模型,然後用訓練好的模型再來預測新的數據,這里邊有一個非常重要前提就是輸入數據的重要性,比如變壞的微軟機器人Tay之所以產生問題就是因為輸入的數據中本身就存在偏見,如果現實世界數據本身就存在偏見,那麼預測結果也一定會有偏見;
先下結論吧:演算法不會導致「信息繭房」
「社交媒體和演算法推薦導致信息繭房」這一判斷成立的一個重要前提是:我們只會點擊那些我們熟悉的、贊同的內容,不斷讓機器加深對我們的印象:原來他們只喜歡看這些!
但在現實中,這個前提是過於簡化的,乃至是錯誤的。
在個體層面,我們有著多樣的閱讀動機,受到各種認知偏見的影響,可能傾向於點擊某些特定類型的內容,但絕不僅僅局限於自己認同的那些。
在社交層面:我們在大多數APP上都存在著社交關系,以及主動選擇關注的帳號,這些都對我們能接觸到的內容產生重要影響。一個在APP上擁有一定社交關系的人,不太可能陷入狹窄的視野當中。
在技術層面:在演算法的分類里說了,每種演算法都有其利弊,因此很多公司都是採用「演算法矩陣」的方式來推薦feed。但在普羅大眾眼裡,演算法=基於內容的推薦演算法,而忽略了「基於內容的推薦演算法」只是演算法種類里的一種,其他類型演算法也會被產品使用。
在企業層面:沒有一個商場的經理,希望顧客每一次來到商場都只關注同一類別的商品。用戶興趣窄化對於商業化目標並不是一個好的選擇。
博弈:
推薦太強了,關注力量就會弱。抖音沉浸式交互和基於內容的演算法推薦是 kill time 的利器,推薦feed刷的過癮了,你還會去刷關注feed嗎?
共生:
演算法有弊端,關注可以彌補或有所增益。推薦feed是忽略了人"社交性「這個特點,以知乎為例,關注的內容生產者傳遞給我們價值,所以我們需要一個途徑來知道那幾十個或上百的關注對象的產出內容。朋友圈滿足我們窺探的信息需求,也同理。(另外從結果反推過程,大家看一下手裡的B站、知乎、抖音、快手就清楚了)
C. 推薦演算法有哪些
推薦演算法大致可以分為三類:基於內容的推薦演算法、協同過濾推薦演算法和基於知識的推薦演算法。 基於內容的推薦演算法,原理是用戶喜歡和自己關注過的Item在內容上類似的Item,比如你看了哈利波特I,基於內容的推薦演算法發現哈利波特II-VI,與你以前觀看的在內容上面(共有很多關鍵詞)有很大關聯性,就把後者推薦給你,這種方法可以避免Item的冷啟動問題(冷啟動:如果一個Item從沒有被關注過,其他推薦演算法則很少會去推薦,但是基於內容的推薦演算法可以分析Item之間的關系,實現推薦),弊端在於推薦的Item可能會重復,典型的就是新聞推薦,如果你看了一則關於MH370的新聞,很可能推薦的新聞和你瀏覽過的,內容一致;另外一個弊端則是對於一些多媒體的推薦(比如音樂、電影、圖片等)由於很難提內容特徵,則很難進行推薦,一種解決方式則是人工給這些Item打標簽。 協同過濾演算法,原理是用戶喜歡那些具有相似興趣的用戶喜歡過的商品,比如你的朋友喜歡電影哈利波特I,那麼就會推薦給你,這是最簡單的基於用戶的協同過濾演算法(user-based collaboratIve filtering),還有一種是基於Item的協同過濾演算法(item-based collaborative filtering),這兩種方法都是將用戶的所有數據讀入到內存中進行運算的,因此成為Memory-based Collaborative Filtering,另一種則是Model-based collaborative filtering,包括Aspect Model,pLSA,LDA,聚類,SVD,Matrix Factorization等,這種方法訓練過程比較長,但是訓練完成後,推薦過程比較快。 最後一種方法是基於知識的推薦演算法,也有人將這種方法歸為基於內容的推薦,這種方法比較典型的是構建領域本體,或者是建立一定的規則,進行推薦。 混合推薦演算法,則會融合以上方法,以加權或者串聯、並聯等方式盡心融合。 當然,推薦系統還包括很多方法,其實機器學習或者數據挖掘裡面的方法,很多都可以應用在推薦系統中,比如說LR、GBDT、RF(這三種方法在一些電商推薦裡面經常用到),社交網路裡面的圖結構等,都可以說是推薦方法。
D. 用於數據挖掘的分類演算法有哪些,各有何優劣
常見的機器學習分類演算法就有,不常見的更是數不勝數,那麼我們針對某個分類問題怎麼來選擇比較好的分類演算法呢?下面介紹一些演算法的優缺點:
1. 樸素貝葉斯
比較簡單的演算法,所需估計的參數很少,對缺失數據不太敏感。如果條件獨立性假設成立,即各特徵之間相互獨立,樸素貝葉斯分類器將會比判別模型,如邏輯回歸收斂得更快,因此只需要較少的訓練數據。就算該假設不成立,樸素貝葉斯分類器在實踐中仍然有著不俗的表現。如果你需要的是快速簡單並且表現出色,這將是個不錯的選擇。其主要缺點現實生活中特徵之間相互獨立的條件比較難以實現。
2. 邏輯回歸
模型訓練時,正則化方法較多,而且你不必像在用樸素貝葉斯那樣擔心你的特徵是否相關。與決策樹與支持向量機相比,邏輯回歸模型還會得到一個不錯的概率解釋,你甚至可以輕松地利用新數據來更新模型(使用在線梯度下降演算法)。如果你需要一個概率架構(比如簡單地調節分類閾值,指明不確定性,獲得置信區間),或者你以後想將更多的訓練數據快速整合到模型中去,邏輯回歸是一個不錯的選擇。
3. 決策樹
決策樹的分類過程易於解釋說明。它可以毫無壓力地處理特徵間的交互關系並且是非參數化的,因此你不必擔心異常值或者數據是否線性可分。它的一個缺點就是不支持在線學習,於是在新樣本到來後,決策樹需要全部重建。另一個缺點是容易過擬合,但這也就是諸如隨機森林(或提升樹)之類的集成方法的切入點。另外,隨機森林經常是多分類問題的贏家(通常比支持向量機好上那麼一點),它快速並且可調,同時你無須擔心要像支持向量機那樣調一大堆參數,所以隨機森林相當受歡迎。
4. 支持向量機
高准確率,為避免過擬合提供了很好的理論保證,而且就算數據在原特徵空間線性不可分,只要給個合適的核函數,它就能運行得很好。在超高維的文本分類問題中特別受歡迎。可惜內存消耗大,難以解釋,運行和調參也有些煩人,所以我認為隨機森林要開始取而代之了。
但是,好的數據卻要優於好的演算法,設計優良特徵比優良的演算法好很多。假如你有一個超大數據集,那麼無論你使用哪種演算法可能對分類性能都沒太大影響(此時就根據速度和易用性來進行抉擇)。
如果你真心在乎准確率,你一定得嘗試多種多樣的分類器,並且通過交叉驗證選擇最優。