這篇文章主要介紹聯(lián)合多個(gè)空間(下面介紹有哪些空間)進(jìn)行學(xué)習(xí)艾扮,使用learning to rank 訓(xùn)練得到排序函數(shù)谒主,完成音樂方面的預(yù)測(cè)任務(wù)
每一個(gè)預(yù)測(cè)任務(wù)可任務(wù)是一個(gè)空間:
1.Artist prediction:輸入一首歌曲,或一個(gè)音樂片段也拜,返回一個(gè)有序的歌手列表
2.Song prediction:輸入一個(gè)歌手以舒,返回一個(gè)有序的歌曲列表
3.Similar Artists:輸入一個(gè)歌手,返回一個(gè)有序的相似歌手列表
4.Similar Songs:輸入一首歌曲慢哈,返回一個(gè)有序的相似歌曲的列表
5.Tag prediction:輸入一首歌曲蔓钟,返回一個(gè)適合該歌曲的標(biāo)簽列表
模型結(jié)構(gòu):
文章假設(shè)跟音樂相關(guān)的歌曲,歌手卵贱,標(biāo)簽都可以用一個(gè)d維的向量來(lái)表征滥沫,兩個(gè)向量的相似性用點(diǎn)積(dot product)來(lái)衡量
歌手:
對(duì)于一個(gè)給定的歌手,下標(biāo)用j表示侣集,j ∈ 1, . . . , |A|,這個(gè)歌手的特征向量表示為:
ΦA(chǔ)rtist(i):{1,...,|A|}→Rd = Ai
其中A = [A1,...,A|A|] ,A是一個(gè)d × |A|大小的矩陣兰绣,d表示用于表征歌手特征向量的維度世分, |A|表示歌手的個(gè)數(shù),矩陣A將在學(xué)習(xí)中獲得
標(biāo)簽:
相似的缀辩,對(duì)于一個(gè)標(biāo)簽臭埋,用j表示下標(biāo),j ∈ 1, . . . , |T |,這個(gè)標(biāo)簽的特征向量表示為:
ΦTag(i):{1,...,|T|}→Rd = Ti
其中T = [T1,...,T|T|]雌澄,A是一個(gè)d × |T|大小的矩陣斋泄,d表示用于表征標(biāo)簽特征向量的維度, |T|表示標(biāo)簽的個(gè)數(shù)镐牺,矩陣T將在學(xué)習(xí)的獲得
歌曲:
最后炫掐,對(duì)于一首歌曲,其聲學(xué)特征向量用s′表示睬涧,我們使用線性轉(zhuǎn)移矩陣V募胃,將聲學(xué)特征轉(zhuǎn)移到d維向量上:
ΦSong(s′):R|S|→ Rd = Vs′
矩陣V是一個(gè)d × |S|大小的矩陣,矩陣V也將在學(xué)習(xí)階段獲得
這樣便獲得了歌手畦浓,歌曲痹束,標(biāo)簽的表征方法
實(shí)體類別
特征向量
大小
獲得方式
歌手
ΦA(chǔ)rtist(i)=Ai
d × |A|
A:學(xué)習(xí)獲得
歌曲
ΦTag(i)=Ti
d × |T|
T:學(xué)習(xí)獲得
標(biāo)簽
ΦSong(s′)=Vs′
d × |S|
V:學(xué)習(xí)獲得,s`聲學(xué)特征
那么針對(duì)之前提到的預(yù)測(cè)任務(wù)讶请,我們用f(x)表示排序函數(shù)祷嘶,例如Artist prediction:
其中候選的歌手i ∈ {1, . . . , |A|}會(huì)根據(jù)fi(x)的magnitude大小進(jìn)行排序,高的排在前面夺溢,對(duì)于其他的task也有相似的排序函數(shù):
從上面的排序函數(shù)中可以看出论巍,許多預(yù)測(cè)任務(wù)都含有相同的參數(shù)。例如song prediction 和 similar artist都用到歌手的特征矩陣A风响,tag prediction 和song prediction 都用到了線性轉(zhuǎn)移矩陣V嘉汰。因此,我們可以在多個(gè)任務(wù)下状勤,同時(shí)訓(xùn)練參數(shù)矩陣A,T,V,使得系統(tǒng)獲得更好的效果鞋怀。
訓(xùn)練模型:
multi-Task Training
假設(shè)任務(wù)是tag prediction 和artist prediction,可以將這兩個(gè)任務(wù)聯(lián)合起來(lái)訓(xùn)練參數(shù)持搜,目標(biāo)函數(shù)定義為:
這里err表示損失函數(shù)
文章中一共使用了兩種損失函數(shù):
1.AUC Marginine Ranking Loss
其中x表示輸入密似,y表示輸出(標(biāo)注集),這個(gè)損失函數(shù)考慮所有的可能的輸出葫盼,根據(jù)排序函數(shù)f計(jì)算magnitude残腌,只要k(不在標(biāo)注集的所有結(jié)果)的模大于標(biāo)注集里任意結(jié)果,或者兩者只差小于1,都會(huì)累加到損失結(jié)果中废累。如果兩個(gè)輸出結(jié)果的margin violation(損失函數(shù)值)相同,那這個(gè)兩個(gè)結(jié)果將被視為等同的脱盲。隨意這個(gè)損失函數(shù)在優(yōu)化前k個(gè)排序結(jié)果時(shí)邑滨,不太適用。
2.WARP Loss
*WARP Loss這個(gè)損失函數(shù)最初設(shè)計(jì)的時(shí)候用于學(xué)習(xí)得到矩陣參數(shù)钱反,給圖片打標(biāo)簽掖看,并且標(biāo)簽之間是沒有序的
這個(gè)損失函數(shù)定義為:
其中ranky(f(x))是通過矩陣函數(shù)f(x)計(jì)算得到的實(shí)際排名:
其中I()為指示函數(shù),I(True) = 1, I(False) = 0面哥,L()將這個(gè)排名轉(zhuǎn)換成一種懲罰度
接著原作者將指示函數(shù)做了調(diào)整哎壳,使用hinge loss,使得損失函數(shù)是代替指示函數(shù)連續(xù)的尚卫。(沒看懂)
其中|t|+表示正數(shù)部分归榕,如果t<0 ,則|t|+ = 0,
對(duì)于P(x,y)上的任意一點(diǎn)
使得改點(diǎn)的積分為0特石,一次來(lái)更新參數(shù)矩陣A,T,V
其中βt表示參數(shù)矩陣,βt+1表示更新后的參數(shù)矩陣鳖链。問章采用的就是這種隨機(jī)梯度下降的方式更新參數(shù)矩陣姆蘸,具體步驟如下:
*疑問:這個(gè)隨時(shí)函數(shù)可以通過訓(xùn)練學(xué)習(xí)計(jì)算給定輸出情況下,哪些輸出合理芙委,但并沒有考慮輸出結(jié)果的順序