1. 程式人生 > >想學習推薦系統,如何從小白成為高手?

想學習推薦系統,如何從小白成為高手?

首先,剛剛接觸的階段不要去考慮太多演算法層面的東西,而是要先弄明白推薦是做什麼的,為什麼要有個性化推薦,個性化推薦的主要應用場景有哪些。其實這樣做的好處就是要從最開始就保持一個業務的思維,等做的多了你會發現,演算法層面的提升很困難了,有時候花大力氣優化出來的演算法可能不如在資料的處理過程中加一個策略來的有效。

其次,演算法方面,就還是從基本的CF入手,這是最經典演算法,最古老的演算法,同時也是當前網際網路市場的生產環境中用的最多的演算法。其實準確來說這不是一個演算法,而是一系列演算法,後期很多所謂的新演算法也是由其衍生出來的。所以一定要吃透,包括幾種不同的similarity的計算方法和異同點、使用者評分的計算方式、顯反饋和隱反饋資料怎麼用等等。看懂了CF相關的內容,應該說你就已經入門了,後面再去學新東西也就輕鬆很多。

第三,在有了上面的理論基礎以後,還是要多動手實踐。如果有實習能接觸到實際的業務資料最好,沒有的話就去看一些經典的推薦相關的比賽,像最有名的Netflix的,還有kaggle上面的,都有資料,自己實現演算法去跑資料,想辦法優化,然後再去看別人是怎麼做的,慢慢的就會有很多收穫。

最後,通過上面這些步驟以後,相信你已經有了一定的基礎了,那如果想提高,還是要多看paper。每年recsys都產出很多優質的paper,可能會有一些引領未來潮流的演算法出現,多關注多嘗試。

其實,當你把以上這些都做了以後,你會發現推薦這個領域有多廣闊,有資訊的地方就會有推薦。推薦演算法涉及到的東西遠不止使用者、物品、評分。好的策略能提升演算法,好的presentation能提升演算法,甚至好的產品也能給演算法以質的飛躍。這就是為什麼一個好的推薦工程師一定要是一個對產品業務足夠熟悉的人的原因了。