TL;DR
- データ分析コンペであるKDD2023にて、ドコモの2チームが入賞(6位、9位)しました。
- コンペの概要と入賞した2チームの解法を紹介します。
はじめに
NTTドコモ クロステック部の鈴木明作です!
ドコモR&Dでは、データマイニングの世界最高峰の国際学術会議であるKDDで開催されているKDDCUPに毎年参加しており、 今年はKDDCUP2023のTask3において、ドコモの2チームが上位入賞(NTT-DOCOMO-LABS-RED 6位、NTT-DOCOMO-LABS-BLUE 9位)しました。
ドコモは2016年からKDD CUPへの参加を始め、2016年ファイナリスト、2019年1位、2020年複数部門で入賞(最高3位)、2022年入賞(9位)のため、2年連続で5回目の入賞です。
入賞チームは、KDD開催地であるアメリカ ロングビーチでの発表権を得られ、ドコモの2チームから現地参加してポスター発表を行ってきました。 こちらの記事では入賞したドコモ2チームの解法を紹介していきます。
KDCCUP2023 Task3の最終順位
コンペ概要
KDDCUP 2023は2023年3/15~6/9までの約3ヶ月間で開催され、KDDCUP全体で451チームが参加していました。
3つのタスクがあり、ドコモの2チームが入賞したTask3のお題は、「Amazonのドイツ語&日本語&イギリス語&フランス語&イタリア語&スペイン語のオンラインショッピングセッションデータにおいて、ユーザが次に閲覧する商品の”商品タイトル”を予測する」というものでした。
KDDCUP 2023 Task3のイメージ
このタスクでは、ベースラインとなる手法として、「セッションの最後の商品タイトルをそのまま次の商品タイトルの予測値にする」という手法があり、複数のチームがこのベースラインを採用していました。 この単純なベースラインが思いのほか強力で、多くのチームがベースラインを超える手法を見つけられない状況が続きました。
ベースラインのイメージ
コンペの鍵
先に結論を書いてしまうと、多くの上位チームでは、コンペの評価指標であるBLEU(BiLingual Evaluation Understudy)の最適化をおこなうことで、順位アップを行っていました。 BLEUは機械翻訳で使われることが多い評価指標で、今回のコンペでは、正解となる商品タイトルと、予測した商品タイトルに対して、BLEUを使って評価したスコアをもとに順位が決まるため、BLEUの特性を理解することがコンペの鍵でした。
実際にBLEUの計算式を見てみると、以下で表されます。
ここで、第一項である、では、予測した商品タイトルが正解である商品タイトルよりも短い場合にペナルティを与えます。 そして、第二項のは以下であり、予測した商品タイトルが長い場合にもペナルティがあることがわかります。 ちなみにn-gramというのは、自然言語処理で使われる単語を分割する手法です。
上記からBLEUは、予測とする商品タイトルが短すぎても、逆に長すぎてもペナルティが与えられることがわかります。このため、予測とする商品タイトルのペナルティができるだけ少なくなるような商品タイトルの「単語の数」にすることがポイントでした。実際に、多くの上位チームがBLEUスコアを最大化するために、様々な方法でベースライン手法から出力された予測商品タイトルの単語の削除を行なっていました。
ドコモチームの解法
それでは、ドコモの2チームの解法を紹介していきます。
NTT-DOCOMO-LABS-REDの解法(6位)
NTT-DOCOMO-LABS-REDでは主に2つの解法があり、最終的には、解法1が採用されて6位となっていますが、解法2でも入賞圏内(10位)に入る手法になります。 2つの解法はどちらもベースライン手法を使っており、解法1.ではBLEUスコアを最大化するため、統計に基づいてベースライン手法から単語を削除する方針になります。
- 解法1.ベースラインによる予測商品タイトルの単語において、学習データでの出現回数が少ない単語を確率的に削除する(ルールベース)
- 解法2. ベースラインによる予測商品タイトルを予測に出すか、セッションの最後から2番目の商品タイトルを予測にするかを分類(機械学習モデルベース)
解法1.による言語ごとの出現単語回数及び削除確率(TH)に対するBLEUスコア
ベースライン、解法1、解法2のBLEUスコア
NTT-DOCOMO-LABS-BLUEの解法(9位)
私の所属チームであるNTT-DOCOMO-LABS-BLUEでは2つのシンプルなルールに基づいて、ベースラインから出力された単語の削除を行います。
- ルール1. ベースラインによる予測商品タイトルの単語において、単語数x以降は削除
- ルール2. ベースラインによる予測商品タイトルの単語において、単語数y以上であれば最後からz番目の単語を削除
ルール1では、大局的データへの単語削除、ルール2ではルール1では対応できない局所的なデータへの単語削除をおこなっています。最終的にx,y,zは実験結果からベストな値を選びました。また、データを眺めた際に、商品タイトルの前半に本質的に商品を表す単語があり、後半には商品を修飾するだけの無駄な単語がある傾向がわかったため、後半にある単語を単語数に応じて削除するために上記の2つのルールとしました。
英語データセットの例. 商品タイトルの後半にサイズや色などの情報が多い傾向がある
ベースライン、ルール1、ルール1+2のBLEUスコア
ドコモの2チームの解法は論文に記載されているので、詳細はそちらを参照してもらえればと思います。
- NTT-DOCOMO-LABS-RED論文 : https://openreview.net/forum?id=QBumxU48Bv
- NTT-DOCOMO-LABS-BLUE論文 : https://openreview.net/forum?id=j18hlIfBPX
おわりに
個人的な話になりますが、インフラ開発部署からR&Dに異動後1ヶ月程度の状態で自身のスキルアップのためにKDDCUPコンペに初参加チャレンジさせてもらい、 結果的には入賞というとても幸運な経験ができました。
KDDCUP参加以外にもドコモには自己成長に向けてチャレンジできる環境や施策がたくさんあるので※1、今後も積極的にいろんなことに挑戦していければと思います!
今回のコンペを通して、大規模データでのレコメンド手法を中心に多くの学びがあり、それらを今後のドコモの研究開発に活用していきたいと思います。
※1. データ活用人材育成プログラム「docomo DATA X Camp」, リサーチャーの育成コミュニティ「X-Lab」など