KKLab資料科學總監邱裕明

音樂串流平臺的資料科學工程師,竟成了傳統製造業擁抱新興科技的技術顧問!今年開始,有一群打造出超強音樂推薦、歌曲流行度預測AI的資料科學團隊,到處拜訪其他各產業,不只傳統製造業,「物流業、零售業,連醫療業都跑。」KKLab資料科學總監邱裕明說。

KKBox成立10多年來,一直以來有個不到20人的研發中心,不斷嘗試新技術來發展新應用。直到2019年,他們將這支隱身幕後的研發團隊,結合其他部門,獨立成為一個100人的創新研發子公司KKLab,由母公司技術總監邱裕明接任子公司資料科學總監,帶領AI和資料科學團隊開發各種機器學習應用。

從每天百萬會員聆聽數千萬首歌曲的大數據分析中,邱裕明的團隊練出一身超強的AI技術能力,但是,現在的他,滿口談的不是音樂串流的發展,反而是其他各產業的技術需求。「原料長期價格預測,」他舉例,原本用來進行歌曲推薦和預測熱門程度的AI,可套用到製造業原物料採購的歷史資料,來預測未來價格走勢。他們想要成為一個具備跨產業的技術研發團隊。為何他們可以從音樂界,走入各產業?關鍵就是AI。

KKBox早在2005年成立時,以音樂播放軟體為主,後來隨著網路技術的演進、雲端技術的崛起,也轉而成了線上音樂串流平臺,邱裕明指出,當音樂服務演進到串流播放的模式,才讓個人化的推薦服務成為可能。

這個新趨勢讓他們的研發團隊,轉而開始投入資料科學、機器學習技術研發,個人化音樂的推薦就是KKBox第一個導入AI的應用場景。而十多年所累積的5,000萬首華語和西洋歌曲,再加上現在每日高達100萬名活躍用戶的聆聽行為,產生了龐大的數據。邱裕明指出,這些大數據是推動機器學習的關鍵。

為打造個人化音樂推薦的能力,要建立兩種機制,一是要能分辨使用者的喜好,二是有一套曲風辨識機制,就可以向喜好同一類曲風的使用者來推薦更多同樣曲風的音樂。這兩種機制的分類顆粒度越細,就能提供越個人化的推薦。

在曲風辨識機制上,推薦系統要先找出幾個常見的曲風風格,從5千萬首歌中,自動抽取出每一首歌的特徵,如節奏、樂器、中高低音等,再來歸納出幾種常見曲風的特徵組合;目前有5、6種,就可進一步依據不同曲風的特徵,來挑選出各曲風的代表性歌曲,目前每種約選300首,來作為推薦清單之用。有了曲風推薦清單後,推薦系統就能用來比對使用者喜好,針對每一個人來推薦他愛聽的曲風的歌曲。

另外,研發團隊還找來多位音樂專家,盲聽曲庫中的歌曲,由專家來判斷曲風,甚至一首歌會由2、3名專家來分類,要是有歧異,就以多數決決定。因為音樂曲風也會演變,甚至有些新歌更具有代表性,更適合列出推薦清單等變化,KKBox甚至每天會分析上千首歌,來優化曲風辨識模型。

下一步,就是描繪使用者喜好,透過數學統計,來分析各種使用者使用App的行為,例如聽歌多久?何時切歌?何時跳入下一首等行為特徵,最後可以建立出每個使用者對音樂的偏好。

由於每天活躍使用者高達百萬人規模,所衍生的聽歌行為技術更是海量,因此,KKLab大力仰賴雲端運算能力,建立了一朵資料處理雲,可以自動運算龐大的使用者行為資料。這朵雲的基礎架構環境,採用了Docker容器技術,並搭配Kubernetes和Nomad叢集管理調度工具。在資料處理流程上,利用了開源資料收集器fluentd搭配熱門的即時串流分析工具Kafka,從串流播放平臺中擷取出各種聽歌行為記錄,再送到用開源資料倉儲軟體Apache Hive所建立的雲端資料倉儲,搭配分散式的SQL查詢引擎presto來提高查詢效率,還將資料分散到不同的公有雲來避險,包括Azure的雲端物件儲存體Storage Blob,以及AWS物件儲存庫Amazon S3。

有了使用者行為記錄之後,還要進一步進行資料ETL轉換和梳理,在利用大數據運算分析工具Spark來進行統計運算,可以進一步歸納出更具解釋性的數據,比如特定歌曲一天的聆聽次數、爵士曲風一天被點播的歌曲數量等。有了這些聽歌資訊,就可以計算每個人的偏好,並根據偏好,利用PyTorch和TensorFlow所建立的推薦模型,來進行推薦,最後透過一套推薦API,來推送風格類似的新歌到使用者端。

KKLab還採取了Lambda無伺服器處理雙架構的設計,也就是即時資料處理和批次資料處理兩種資料處理流程並行的架構。使用者即時產生的串流行為資料,會分成兩道資料流。第一條資料流屬於批次通道,負責處理用於長期累積的使用者數據,也會用來預先建立一個推薦候選曲目。而另一條即時資料流,則是負責使用者即時行為所對應的系統反應或推薦,也就是快速通道。

舉例來說,使用者正在聆聽推薦歌單中的某首歌時,但聽沒幾秒就切換到下一首歌,這個切歌行為會將這首歌標記為使用者不滿意推薦的曲目,並將這個資訊存放在快速通道中。

接著,當使用者再次打開同一份推薦歌單時,系統程式會重新計算這份要給使用的推薦曲目,從「批次通道」中預先建立的候選歌單,直接剔除或是將使用者不滿意的歌曲調降權重,並重新調整順序後產生最中得推薦清單,才會呈現給使用者。邱裕明解釋:「這個作法,就能讓使用者產生一種即時感。」也就是說,這樣可以讓使用者感受到,平臺馬上考慮到使用者剛剛不聽的歌。

另一方面,團隊也發展另一種推薦功能,依據每位使用者的喜好相似度來分群,再互相推薦對方收藏但沒聽過的曲子。除此之外,團隊也利用這個分群系統,提供粉絲特性資訊給歌手,讓歌手或唱片公司來修正行銷宣傳策略或演唱會安排。這個分群推薦技術,也是團隊用來進攻其他產業的強項之一。

以曲庫海量資料打造歌曲預測系統

邱裕明指出,KKBox所用的推薦機制,早期使用了協同式過濾的演算法,後期 才改成了現在所用的監督式機器學習。協同式過濾的推薦,是一種同儕推薦的思維,先找出與使用者A偏好類似的使用者B,就能從B愛聽的歌單中,找出A沒聽過的歌,推薦給A來聽。

KKLab資料科學總監邱裕明表示,資料科學的任務就是找出好的定義、不斷迭代修正,沒有最好、只有更好。

但是後來,KKLab改變了推薦系統的設計思維,轉而採用機器學習,自己來建立一套歌曲特徵體系,並用來找出不同曲風的特徵組合後,就可以利用曲風的特徵,來匹配使用者喜好,進行更細緻的推薦匹配。甚至,這個推薦作法,還進一步讓他們發展出一套歌曲未來熱門程度的預測機制。

邱裕明驕傲地說,「一首新歌只要上架3天,我們就能預測未來60天的點播量和觸及人數!」為打造這套歌曲爆紅預測系統,團隊挑出曲庫中,近三年來30萬首華語歌曲和使用者行為數據,比如播放次數、聽歌行為等,來訓練AI模型。這套系統能在一首新歌推出的72小時內,根據播放次數、收藏次數、使用者是否完整聽完,以及重複聆聽次數等特徵,來計算2個月後的表現。

而且KKLab選擇用了梯度提升決策樹(GBDT)演算法。有別於一般機器學習演算法,訓練時只是從大量特徵中採樣計算,GBDT演算法反而是對所有輸入的特徵值進行運算,最終整合每個特徵值經迭代所產生的權重,可以從最後的模型中,得知每個特徵值的權重高低,「這就能知道哪些特徵值是演算法看重的項目。」邱裕明表示。

邱裕明比喻,GBDT就像請了一群裁判,雖然,每位裁判看重的評分項目(也就是特徵值)都不同,有些裁判重視完整聽完一首歌,有些則給每日新聽戶數的特徵較高的權重值,但最終訓練後的結果,都是按這些裁判針對每個特徵所給予權重加總後的總和。等於是,可以看到每一個特徵,對於預測結果的影響程度,例如一首歌的60天預測將會大受歡迎,分析人員可以參照這些特徵值的權重分配,來了解哪些特徵對於提高重聽率有較高的影響,進一步找出一首歌爆紅的可能關鍵,作為行銷或後續推廣之用。邱裕明正是看上GBDT模型具有容易解釋的特性,才用它來打造新的預測系統。

甚至,邱裕明指出,分析人員能從這些不同特徵的權重變化,來挖掘趨勢或商業洞察,提供給唱片公司來擬定歌曲行銷策略的參考。比如,若有一首新歌的未來表現預測,每日首次聽戶預測數據低,但既有聽戶的每日聆聽、重複播放次數高,這就代表喜歡的人愛聽,但沒聽過的人不知道有新歌可聽,唱片公司就能考慮提高行銷預算來強化宣傳。

不過,KKLab覺得只靠自家平臺的數據還不夠,最近幾年,邱裕明開始發展外部輿情分析能力,透過自然語言處理(NLP)來辨識熱門討論區如ptt和Dcard等對新歌的評價情緒,再將分析過的數值,納入預測系統運算。邱裕明指出,目前收集到上百TB的輿情討論資料,能將準確率再提高5%至10%。

但KKLab還不滿足,持續擴大歌曲未來熱度預測技術的應用領域,進一步挑戰了難度更高的歌手生涯發展預測,利用曲庫中近10年來發行過新單曲或專輯的上萬名華語歌手資料,以及平臺用戶資料如聆聽次數、秒數、加入歌單、收藏或關注等資料,來訓練預測模型。

根據聽戶黏著度和歌曲觸及人數,來找出歌手的發展類型,並與過往成功歌手的發展軌跡比對,供歌手或唱片公司調整發展策略之用。

因為這一套機器學習模型,可以從既有資料找出不同特徵的權重,來建立未來趨勢預測,邱裕明解釋,今天放入了歌曲的聆聽資料,透過聽歌相關的特徵,來預測歌曲未來的被聆聽熱度,但是,也可以改放入其他產業的資料,例如改成匯入了物料價格變化的歷史資料,就能透過機器學習演算法,找出各種影響價格變化的特徵的權重,再用來預測物料未來價格的變化趨勢,甚至,後來發展的外部輿情分析技術,也能用於這類易受輿情影響的價格預測需求。

從早期的同儕推薦模式,到自行建立推薦機制,後來更延伸出未來熱度預測系統,甚至可以引進外部輿情資料來強化分析,這正是KKLab能夠走出音樂產業,跨入製造業、物流、醫療等截然不同資料型態和產業知識的關鍵。

技術不是問題,定義反而是所有精準AI的挑戰

不過,邱裕明直言,在練就AI技能的路程上,團隊遇到的最大困難,往往不是技術艱深或硬體資源不足,而是如何找出「好」的定義,並用這些定義,來提高其他系統的準確率。

有次母公司資料競賽,第一名選手只是重新定義數據和資料累計時間單位,來找出關鍵指標進行預測,未使用任何深度學習,就打敗那些嘗試不同演算法的團隊。這個例子更讓邱裕明體會到,「新的定義和邏輯轉換就是關鍵。」

即使從音樂產業靠AI跨到更多產業應用領域,但邱裕明直到現在仍時時琢磨,是否有更好的定義。邱裕明指出,資料科學的任務就是不斷修正、迭代,「沒有最好,只有更好。」

 CTO小檔案 

KKLab資料科學總監邱裕明

學歷:美國北卡羅萊納州立大學電機博士畢業

經歷:2009年擔任雅虎奇摩工程師,兩年後升任為雅虎奇摩經理。2017年時加入KKBox團隊,擔任技術總監。兩年後,KKBox將旗下研發中心獨立出來成為KKLab,邱裕明便擔任KKLab資料科學總監至今

 公司檔案 

KKLab科科實驗

● 地址:臺北市南港區園區街3-2號11樓

● 網址:https://www.kklab.com/

● 成立時間:2019年

● 主要業務:研發先驅科技,提供AI技術、雲端平臺建置與營運、網站可靠性工程(SRE)等一站式服務。此外也擁有創新服務和IP育成加速團隊,提供新事業機會的輔助服務

● 員工數:100人

● 資料科學部門名稱:研究中心 (AI Empowered Solution / Integrated Data Science )

● 部門人數:約20人

● 部門分工:資料科學、機器學習、資料工程

 公司大事紀 

● 2015年:推出以深度學習為基底的推薦系統

● 2018年:建立歌曲爆紅預測系統和票房預測系統,AI機器人歌單正式上線

● 2019年:KKLab公司正式成立,提供IoT智慧產品語意解析服務

● 2020年:推出粉絲徽章功能,用來分析藝人的鐵粉類型,協助策略制定

 
 
 
 

熱門新聞

Advertisement