【Kaggle】2021 Shopee商品分類競賽 Part5:第一名密技 INB

Iterative Neighborhood Blending 介紹

倢愷 Oscar
May 22, 2021

這是Shopee的商品分類競賽系列分析文的第5篇,如果還沒看前4篇的話推薦先回去補足基礎知識。part1part2part3part4

這會是這一個系列暫時的最後一篇,除非我找到其他值得寫的內容,而這篇的重點就是解析Shopee競賽裡面第一名的一個非常強大的技巧Iterative Neighborhood Blending(INB)。

這篇文章我就只講一個東西 Iterative Neighborhood Blending

在第三篇中,我講到了ArcFace,以及使用ArcFace的目的:讓相似的資料在特徵空間(Feature Space)中靠得更近。

那時候也放了比較圖,可以看到很明確的改進。

而實際上INB就是延續這個概念,並且在Shopee的競賽中藉由實驗達到了最佳效果。

Iterative Neighborhood Blending介紹

INB實際上是一個由第一名作者在這篇discussion中自創的名詞。而其中Neighborhood Blending的概念其實非常簡單。

Neighborhood Blending就是把每個 embedding( feature)跟它周圍的embedding做加權。

簡單來講,如果我們原本的embedding分布如下圖左側,INB會把每個點周圍的點拿來加權,然後得到新的embedding,進而變成右圖。

而因為每個點跟周圍的點的數值會加權得到新的數值,所以原本比較靠近的點,會變得更近,使群體的概念變得更清晰,如下圖

從公式來講,如果我們知道A跟B、C、D這三個點最靠近,而分別相似程度為0.94, 0.93, 0.52,則我們A點會被更新為

https://www.kaggle.com/c/shopee-product-matching/discussion/238136

具體流程結合起來如下圖。

https://www.kaggle.com/c/shopee-product-matching/discussion/238136

而就是INB,讓第一名的成績從0.776暴衝到0.793。

使用可以參考作者的code

其中要注意neighborhood_search是我們要自己寫的function,基本上跟sklearn的NearestNeighbors是類似的接口。

唯一的不同是,NearestNeighbors如果你指定要找5個最近的點,就一定會給你5個點,而在shopee的競賽中我們會設定一個距離的閾值(threshold),所以找5個最近的點,有可能只找到3個,因為後面2個沒有通過閾值。

具體怎麼挑選閾值,作者用的方法基本上就是靠CV score來挑選。具體方法可以參考part4

INB的方法簡單,但是在這個比賽效果很明顯,藉由讓群體邊界更靠近後,clustering等方法效果都提升了,是個很簡單的improvement!

最後有興趣可以看一下第一名的完整pipeline,都是我part1~part5講過的技巧。

https://www.kaggle.com/c/shopee-product-matching/discussion/238136
如果喜歡這篇文章可以幫我多拍手幾次XD,或是對於哪個類型文章有興趣都可以在留言區跟我講~ 後續會以中難度的ML/DS/AI知識為主,以及AI/HCI研究相關知識

參考資料:

Sign up to discover human stories that deepen your understanding of the world.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

倢愷 Oscar
倢愷 Oscar

Written by 倢愷 Oscar

我是倢愷,CTO at TeraThinker an AI Adaptive Learning System Company。AI/HCI研究者,超過100場的ML、DL演講、workshop經驗。主要學習如何將AI落地於業界。 有家教、演講合作,可以email跟我聯絡:axk51013@gmail.com

No responses yet

Write a response