KKBOX電臺服務裡的歌曲推薦,就是利用機器學習產生的結果,而使用者可以在歌曲點擊喜歡或不喜歡,這個回饋機制系統將改變推薦結果。

圖片來源: 

Kkbox、iThome

想聽歌但是又不知道該聽什麼?KKBOX推薦你可能有興趣的歌曲!推薦功能背後正是使用機器學習技術,KKBOX技術長蔡怡仁說,早從3年前就開始用機器學習技術來了解使用者的聽歌喜好,並做為歌曲推薦的依據,而這已成為他們提高使用者黏著度的關鍵技術之一。

不只有推薦音樂給使用者的功能有使用機器學習,連KKBOX內部部門也會使用,像是當編輯沒有編輯歌曲清單的靈感時,便能由電腦推薦某些屬性或是主題的歌曲,提供更多元的編輯素材。另外,還有歌曲情緒判斷也有用上機器學習,為了要更精準的推薦歌曲給使用者,因此KKBOX必須了解音樂庫中的2,000萬首歌曲,這包括歌曲所能營造出的氣氛,而這項任務全由人工進行太過費時,因此也需要善用機器學習,以提高分類效率。蔡怡仁說,雖然這些服務都用上了機器學習技術,也會根據規則自動產生出結果,但是這些結果無法直接使用,要符合使用者胃口,最終還是要加上人為介入調整。

機器學習加上人的判斷才是最佳解

以機器學習技術判斷歌曲所能營造的情緒為例,歌曲同樣要經過特徵擷取的過程。在進入機器學習演算法階段之前,需要先用程式分析每首歌的節拍、音調以及節奏等特徵,並把這些特徵轉為數學向量形式的樣本,並由專家對這些樣本下標籤,標記樣本對應歌曲所代表的情緒,並由機器學習演算法找出向量中每個屬性與情緒的關聯度。

因此只要根據訓練出來的歌曲情緒分析模型,比對節拍、音調以及節奏等特徵,電腦就能判斷出歌曲的情緒。但蔡怡仁說,由於判斷歌曲情緒是一個困難的任務,甚至連專家判讀都有機會犯錯更何況是電腦。像是電腦常把悲傷的歌誤判成快樂的,因次他們會有專家負責檢查這些由電腦所做出的判斷,經重新判讀並修正樣本後,再重新將這些樣本輸入機器學習演算法中重新訓練,經過一次一次這樣的樣本修正後,電腦判斷的精確度才會越來越準。

蔡怡仁認為,機器學習是要來解決大量資料分類以及即時推薦的問題。同樣以判斷歌曲情緒的功能為例,KKBOX總共有2,000萬首歌,雖然電腦判斷的正確率只有7成左右,再加上將機器學習應用在音訊分析上的複雜度非常高,不過比起用人工標記的人力與時間成本,在權衡之下機器學習的效益還是瑕不掩瑜。

善用機器學習可以解決高維度的複雜問題

在推薦音樂方面,或許專家在了解聽眾喜好後,可以精準的推薦其他歌曲,但是專家是人,無法總是在線上做推薦,而電腦卻可以24小時在線上服務聽眾,並且電腦可以做更高維度的推薦,蔡怡仁舉例,假設一個聽眾喜歡瑪丹娜的音樂,專家可以容易地推薦類似的選擇,但是當這位聽眾還喜歡貝多芬,那專家該推薦什麼?不過機器學習卻可以簡單的回答這個問題。

KKBOX用來訓練推薦歌曲的樣本數高達上億筆,蔡怡仁說:「通常跟使用者行為有關的樣本數就會很多。」這些樣本是來自於KKBOX音樂庫中每一首歌被聽眾聽過的歷史紀錄,因此同一首歌被聽過100次就會產生100筆的樣本,而這些樣本擁有的特徵長達數十項,包含描述歌曲該次被收聽的順序與收聽時間的長度等細節,而這些樣本會被標上多個標籤,因為經過演算法的分析這些特徵項與多個結果有關,而這些標籤透過線性轉換可以算出一個數值,因此也可以看作是一個分數的概念。

KKBOX在歌曲推薦的模型更新上有2種策略,一種是大規模的更新,會把所有樣本重新輸入模型訓練一次,這樣的計算時間可能需要1至2天,另外較小幅度的模型更新策略,是僅用新增的訓練樣本以修改現有的模型,而這樣的時間僅需要10幾分鐘。使用最新的樣本訓練完歌曲推薦模型後,在系統中會產生一個歌曲池(Pool),當要推薦音樂時,KKBOX便會根據使用者對於歌曲的喜好評價以及聽過的歌曲紀錄等特徵,從歌曲池中挑選出當下最適合聽的歌曲。

KKBOX的機器學習模型是在AWS上的虛擬機器運算的,並部署了一套大量資料處理引擎Spark,蔡怡仁表示,機器學習的模型不會一直需要訓練,因此機器也不需要總是開著,只有當他們需要的時候才會啟用很多臺虛擬機器。

KKBOX技術長蔡怡仁表示,對於KKBOX音樂串流的服務來說,機器學習的結果還要加上人的判斷,才會是最貼近使用者喜好的結果。

歌曲喜好千變萬化難捉摸

蔡怡仁認為,機器學習的應用並非通用的問題,即使使用的機器學習的演算法差異不大,但每個行業需要解決的命題或是遇到的情況等都不同。就連評估機器學習導入的效益也都有很大的差異,他說,或許電子商務評估機器學習的方式,就是觀察由機器學習推薦的商品有多少顧客買單,但是KKBOX不同,由於是訂閱吃到飽的音樂串流服務,很難絕對直接地評估黏著度跟機器學習推薦的效益。

而且音樂喜好非常主觀,蔡怡仁說,不只是每個人喜好不同,甚至同一個聽眾在今天按讚的歌,明天就不喜歡了。熱戀與失戀喜歡的歌不一樣,而且聽眾有時候甚至不知道自己想聽什麼音樂,推薦一個過去從未聽過的曲風,聽眾可能還覺得有新鮮感。在KKBOX導入機器學習技術3年以來,已經看到了一些成果,他們也將繼續在更多的功能中使用機器學習。

蔡怡仁提到,在他們研究機器學習的過程,覺得準備品質好的樣本以及找人才是兩個最大的困難,而機器學習技術本身,反而不是問題。現在KKBOX用來訓練的樣本特徵有數十項,除了聽眾喜好善變外,還需找出影響歌曲喜好程度有關的特徵,「資料有很多,但是品質好的樣本很難收集。」

另外,他認為,學校訓練出來的機器學習的人才,與企業實際需要有很大的差異,除了系統實作能力外,對於機器學習結果的可用性認知有很大的出入,業界除了注重準度外,運算的速度也是影響可用性的重要關鍵。KKBOX的技術團隊中僅有個位數的人力在維護機器學習的演算法,「技術不是重點,如何跟整個技術部門合作才是重點」,而且包括行銷與編輯等部門也會需要機器學習所提供的結果,機器學習的技術僅是整個服務的一小環。

而演算法的部分,蔡怡仁說:「我們並不排斥使用套件,因為這樣最快」,只是使用了之後需要經過評估,判斷是否符合內部使用的需求,也有可能當需要修改套件時,自己重新開發會更符合成本。


Advertisement

更多 iThome相關內容