Pinterestにおける機械学習システムの性能改善論文:『Shop The Look: Building a Large Scale Visual Shopping System at Pinterest』

概要

KDD 2020 Applied Data Science Track Paper の以下の論文を読んだ。

Shop The Look: Building a Large Scale Visual Shopping System at Pinterest

Applied Data Science Trackは実際に使われている機械学習システムの話が多く、読んでいてためになる。
PinteresにおけるShop The Lookというシステムの性能を改善していった記録。機械学習システムを実運用する際の、泥臭い多方面からの改善が書かれていて面白かった。

このシステムは、写真を入力として、その写真に写っている家具や洋服などを選択すると、そのオブジェクトをキーとして画像検索して類似商品を検索購入できる。

機械学習システムのパイプラインは以下の通り、オブジェクト認識・バウンディングボックス抽出・画像をベクトル化して類似商品の検索という流れになっている。

性能を向上するために

基本的に精度を上げるために行ったことは、データを増やす、高性能なモデルを使う、システム的な方面から改善する、といった観点が書かれており、それぞれ改善によりどれほど精度が増していったかが書かれており、地道な努力の積み重ねが重要だとわかる。

データを増やすという点では、既存の画像(ラベリングの品質は低いかもしれない)をトレーニングデータとして活用するようにして、特定ジャンルの精度を高めている。

システム的な改善では、選択されたオブジェクトに対して全データから類似商品を検索すると関係ない画像まで取ってきてしまうことが多かったため、まず選択されたオブジェクトのカテゴリを予測してから、そのカテゴリから類似画像を検索するようにしている。 単純でリーズナブルな考え方であるが、確かに性能向上に寄与している。

Lessons Learned

最後にLessons Learnedという賞が用意されており、そこではLabel subjectivity is challengingとImpact comes from diverse areasの2点が強調されている。

ラベリングについては、データのラベリングを改善したことも非常に大きな影響を与えていることが書かれており、共通の認識を持ったin-house labeling teamが居ることが重要だと述べている(Amazonのメカニカルタークでやってみたところ一貫性が取れなかったらしい)。この辺りの重要性は結構認識されてきていると思う。特にエッジケースをチーム内で共有しないとラベルに一貫性がなくなりやすいので、エッジケースはlabelerのトレーニングガイドに盛り込まれるようになっているらしい。

“Impact comes from diverse areas”とはつまり、何か単一のことをやれば十分な性能が出るということはなく、このシステムではデータセットの改善、モデルの改善、システムインフラ面の改善など様々な改善ポイントがあるということで、確かに機械学習システムの実運用を行っているとモデル改善以外にも山ほどやるべきことがあるのがわかる。

所感

やるべきことをキチンとやって精度を地道に上げていっており、非常にためになった。特にラベリングの重要性に言及されているところは、実際にシステムを運用してみて、自分たちでラベル付けも行ってみているからこそ大変さがわかっているのだと感じた。ほかにも類似の論文を読んでみようと思う。


Introduction to Applied Linear Algebra 第4章

前回はこちら。4章はクラスタリングの話。序盤でクラスタリングみたいな話が入ってくるのは珍しい。それだけ応用を意識している本ということだろうか。

クラスタリングがどういうものかの説明の後に様々な応用事例が述べられている。例えば郵便番号のクラスタリングや、アンケート結果のクラスタリングなど、非常に幅広い分野で応用が可能。

クラスタリングの目的関数とk-means法の紹介がある。この辺りは、よくある機械学習の教科書とかを見れば簡単に理解できる。

最後に実際の応用事例としてMNISTのクラスタリングやドキュメントトピックのクラスタリングが説明されている。MNISTの場合は単純にピクセル値を、ドキュメントトピッククラスタリングの場合は単語のカウントをベクトルとして入力としただけで、それなりにもっともらしい結果が出力できている。

Introduction to Applied Linear Algebra 第3章

第三章はノルムと距離について。2章の内容についてはこちら

ノルムとはベクトルの大きさのようなものですよ、という解説から始まり、ノルムの性質・計算方法などが説明されている。距離についてはなじみのあるユークリッド距離から解説が始まって三角不等式が述べられている。

次の節では標準偏差の計算方法が解説されている。統計的な本で見る記述と比べるとベクトル表現なので、一見して理解しづらいがやっていることは統計学の標準偏差の計算と同様。

次にベクトル間の角度を計算する方法が説明されている。内積とノルムが分かると角度は計算できる。ついでに相関係数や計算量についての話も書かれている。

Introduction to Applied Linear Algebra 第2章

引き続きIntroduction to Applied Linear Algebra第2章を読んだ時のメモ。第1章はこちら

第二章は線形関数について。線形関数はベクトル同士の掛け算で表せますよということから始まって、アフィン変換などで2次元ベクトルの場合グラフ上でどのように変換されるかが可視化されている。具体例としてcivil engineeringの分野で橋にかかる負荷の計算の例が挙げられていた。

その後は、テイラー展開と線形回帰モデルについての解説がある。テイラー展開では偏微分とか出てくるけども、二次元での例が図示されているので何となく理解できると思う。線形回帰の部分では住宅価格の予測についての例が示されている。

Introduction to Applied Linear Algebra 第1章

線形代数の復習をかねてIntroduction to Applied Linear Algebraという本を読んでいます。線形代数についての基礎(ベクトル・行列)から機械学習に関する応用など幅広く書かれていて、読み始めですがかなり分かりやすいです。
実世界での応用事例についてを紙幅を割いて各章で述べられているところも、初学者にとってはなんで線形代数を勉強するのかという疑問を解決するために良いと思っています。

まずは第一章。第1章はベクトルです。基本的にはベクトルとは何か、足し算、内積などの基礎的な内容から計算量までが語られています。
応用事例として例えばベクトルの内積により、2つのベクトルの共起回数を求められるといった内容や、多項式の計算ができるといったことなどが書かれています。