u++の備忘録

【Polars版】『PythonではじめるKaggleスタートブック』のサンプルコード

PythonではじめるKaggleスタートブック』で提供しているサンプルコードを、pandasからPolarsに書き換えた Notebook を作成しました。Polars は、Rustベースの高速なデータ処理ライブラリです。

www.kaggle.com

pandas での書き方をコメントで残しているので、違いが分かりやすくなっていると思います。 Polars で特徴量を作成し、sklearn と LightGBM で推論し、提出用のファイルを保存します。

「Weekly Kaggle News」配信プラットフォーム変更

以下の配信でお知らせした通り、Weekly Kaggle News は2023 年 1 月 6 日から「Substack」を用いて配信します。 Weekly Kaggle News は 2019 年 12 月から、メール配信プラットフォームの「Revue」を用いて、 Kaggle をはじめとするデータ分析コンペティションに関する話題を毎週金曜日に配信してきました。Revue は 2021 年に Twitter に買収され、このたび 2023 年 1 月のサービス終了が発表されています。

www.getrevue.co

過去の配信は「Weekly Kaggle News」ページに移行中で、GitHub でも閲覧・検索できます。 次回配信時点で Revue の配信に登録中の方には、操作不要で Substack から配信する予定です。 引き続きよろしくお願いいたします。

weeklykagglenews.substack.com

github.com

2022年をザッと振り返る

年末恒例の振り返り記事です。 昨年 4 月の部署異動を契機に、今年も研究開発部署にて案件を自分自身で創出・推進していくことに挑戦した一年でした。 本記事では、対外公表している事例の一覧をまとめました。 今年執筆していた共著の作業も終わり、出版が目前に迫っています。 来年も事業貢献と研究活動の両面を追い求めていければと思っています。

upura.hatenablog.com

査読付き国際学会・ワークショップ

  • Shotaro Ishihara, and Yasufumi Nakama (2022). Analysis and Estimation of News Article Reading Time with Multimodal Machine Learning. In Proceedings of 2022 IEEE International Conference on Big Data (Industrial & Government Track). (to appear) [slide]
  • Shotaro Ishihara*, Hiromu Takahashi*, and Hono Shirai (2022). Semantic Shift Stability: Efficient Way to Detect Performance Degradation of Word Embeddings and Pre-trained Language Models. In Proceedings of the 2nd Conference of the Asia-Pacific Chapter of the Association for Computational Linguistics and the 12th International Joint Conference on Natural Language Processing, pages 205–216, Online only. Association for Computational Linguistics. (*equal contribution) [paper] [poster, slide] [code]
  • Shotaro Ishihara, and Hono Shirai (2022). Nikkei at SemEval-2022 Task 8: Exploring BERT-based Bi-Encoder Approach for Pairwise Multilingual News Article Similarity. In Proceedings of the 16th International Workshop on Semantic Evaluation (SemEval-2022), pages 1208–1214, Seattle, United States. Association for Computational Linguistics. [paper] [slide] [poster]
  • Shotaro Ishihara, and Yasufumi Nakama (2022). Generating a Pairwise Dataset for Click-through Rate Prediction of News Articles Considering Positions and Contents. In Proceedings of Computation + Journalism Conference 2022. New York, NY, USA, 5 pages. [paper] [slide]

国内学会・研究会発表

  • 石原祥太郎 (2022). 国際会議参加報告 AACL-IJCNLP 2022. 第24回音声言語シンポジウム・第9回自然言語処理シンポジウム. [slide]
  • 梶川怜恩, 鈴木刀磨, 二宮大空, 石原祥太郎 (2022). LightGBMのランク学習による商品レビュー評価. NLP若手の会 (YANS) 第17回シンポジウムハッカソン最終成果報告. [code](Applied Scientist賞 [website])
  • 馬嶋海斗, 石原祥太郎 (2022). ニュース用語を含むヒント付きクロスワードパズルの自動生成. NLP若手の会 (YANS) 第17回シンポジウム.(奨励賞 [website])
  • 石原祥太郎, 中間康文 (2022). 新聞記事のクリック率予測に向けたペアワイズ学習用データセットの構築手法の検討. 2022年度人工知能学会全国大会(第36回)論文集. [paper] [slide]
  • 高橋寛武, 石原祥太郎, 白井穂乃 (2022). 単語分散表現を用いた新型コロナウイルスによる意味変化検出. 言語処理学会第28回年次大会発表論文集. [paper]
  • 大村和正, 白井穂乃, 石原祥太郎, 澤紀彦 (2022). 決算短信からの業績要因文の抽出に向けた業績発表記事からの訓練データの生成. 言語処理学会第28回年次大会発表論文集. [paper]
  • 増田太郎, 石原祥太郎, 吉田勇太 (2022). 企業の業界分類予測における共変量シフト問題の抑制. 第14回データ工学と情報マネジメントに関するフォーラム. [paper] [slide]
  • 山田健太, 山本真吾, 石原祥太郎, 澤紀彦 (2022). F√V:オンラインニュースメディアにおける解約予測指標の開発と活用. 第14回データ工学と情報マネジメントに関するフォーラム. [paper]

イベント登壇

インタビュー・メディア掲載

機械学習コンペ

【Weekly Kaggle News 3 周年】クリック記事ランキング 2022

Kaggle Advent Calendar 2022」 の 20 日目の記事です。

ニューズレター「Weekly Kaggle News」が本日 3 周年を迎えました。日本語で、Kaggleをはじめとするデータ分析コンペティションに関する話題を取り扱っています。週次で毎週金曜日に更新しており、最新は第 175 号、購読者数は約 2300 人になっています。

それでは、今年発行の Weekly Kaggle News 経由でクリックされた URL のランキング結果を紹介します。単純なクリック回数なので、購読者数が増えている直近の回が有利な条件になっています。なお一昨年と昨年もランキングを公開しています。

第1位に輝いたのは、書籍『機械学習エンジニアのためのTransformers』でした。 最先端の自然言語処理モデルを提供するライブラリ「Transformers」に関する書籍で、今年 8 月に原著『Natural Language Processing with Transformers』の日本語訳版として出版されました。 豊富なサンプルコードとともに、同ライブラリの開発者が具体的な使い方を解説しています。 今年は Kaggle で、自然言語処理を題材にしたコンペが継続的に開催されました。 事前学習済み言語モデルを提供する同ライブラリは、Kaggle の自然言語処理コンペに取り組む上で必要不可欠な存在になっています。

第 2 位には「実務でレコメンドをやっているのでKaggle H&Mコンペに参加しました」と題した記事が入りました。 今年 2〜5 月に開催されたKaggle「H&M Personalized Fashion Recommendations」の参加者が、実務での経験と照らし合わせながらコンペの感想を綴っています。

第 3 位は、距離学習に関する手法をまとめた勉強会の資料です。 顔認識を題材に、著名な「ArcFace」を中心とした研究の流れをまとめています。

見落としていた記事があれば、ぜひご覧ください。「Weekly Kaggle News」は、来年も発行を続けていく予定です*1。引き続き、どうぞよろしくお願いいたします。

1 位: 236 クリック(第 133 号)

機械学習エンジニアのためのTransformers ―最先端の自然言語処理ライブラリによるモデル開発

2 位: 217 クリック(第 127 号)

yng87.page

3 位: 189 クリック(第 127 号)

4 位: 131 クリック(第 131 号)

zenn.dev

5 位: 129 クリック(第 144 号)

zenn.dev

6 位: 123 クリック(第 150 号)

7 位: 122 クリック(第 131 号)

8 位: 115 クリック(第 134 号)

文書分類からはじめる自然言語処理入門 -基本からBERTまで- (エンジニア入門シリーズ109)

9 位: 114 クリック(第 127 号)

note.com

9 位: 114 クリック(第 126 号)

tech-blog.abeja.asia

11 位: 111 クリック(第 125 号)

www.jstage.jst.go.jp

12 位: 110 クリック(第 145 号)

www.eureka-moments-blog.com

13 位: 109 クリック(第 136 号)

note.com

14 位: 104 クリック(第 141 号)

news.mynavi.jp

15 位: 102 クリック(第 108 号)

aru47.hatenablog.com

16 位: 100 クリック(第 108 号)

www.businessinsider.jp

16 位: 100 クリック(第 125 号)

ai.facebook.com

16 位: 100 クリック(第 150 号)

www.python.jp

*1:配信に利用しているプラットフォーム「Revue」は来月にサービス終了するので、配信継続を前提に移行先を検討しています

【書籍メモ】『Kaggleに挑む深層学習プログラミングの極意』(講談社)

※ 「Kaggle Advent Calendar 2022」の 25 日目の記事です

ご縁があって、講談社から共著で『Kaggleに挑む深層学習プログラミングの極意』を出版します。 画像・自然言語処理機械学習コンテストを題材として、深層学習ライブラリ「PyTorch」での実装を交えながら、著者らの経験に基づく知見をまとめました。 Amazon ページ が先日公開され、ありがたいことに発売前にもかかわらず「ベストセラー1位」の記載が付きました。 現在は出版に向けた最終の校正中で、ご期待に沿えるよう精一杯の作業を進めていきます。

書籍と担当章の紹介

著者は 4 人で、私は過去の Kaggle 関連書籍や「Weekly Kaggle News」の経験を活かし、まえがきから第 2 章まで担当しました。細かな目次は講談社書籍ページに掲載されています。

第1章「機械学習コンテストの基礎知識」では、特に近年の動向に焦点を当て、機械学習コンテストの概要を紐解いていきます。 コンテストの仕組みや歴史、扱うデータセットや課題、必要となる計算資源について紹介しました。 特に画像・テキストを題材としたコンテストの存在感が増している点を強調しています。

機械学習コンテストの参加者が取り組む過程として、大まかに「探索的データ分析」「モデルの作成」「モデルの検証」「性能の向上」という4つが存在します。 第2章「探索的データ分析とモデルの作成・検証・性能向上」ではそれぞれの観点に焦点を当て、基本的な考え方や技法を紹介しました。 特に画像やテキストを用いるコンテストに取り組む上で前提となる知識の整理を目的としています。

  • 2.1 探索的データ分析
  • 2.2 モデルの作成
  • 2.3 モデルの検証
  • 2.4 性能の向上

ここまで紹介した前提知識を基に、第 3 章以降は、画像分類・画像検索・テキスト分類のコンテストに挑戦します。 画像分類は iwiwi さん、画像検索は smly / Kohei さん、テキスト分類は flowlight さん が執筆を担当しました。 今回担当した領域を中心に、数多くのコンテストで優れた成績を収めています。 私がプログラミング自体を始める以前から、コンテストに限らず幅広く活躍されている方々で、個人的な思い出も含めて他己紹介を書き始めるとキリがありません。 豪華な著者陣の中に混ぜていただき、非常に光栄に思っています。

画像・自然言語処理に関する領域は、2022 年現在急速に進展を遂げています。 書籍として体系的にまとめ上げるのは難しい面もありましたが、著者らの経験や Kaggle での傾向を軸に、画像・テキストを題材としたコンテストに臨む上で重要な要点は盛り込めていると感じています。 この書籍が、この領域を学びたい読者にとっての道標となることを祈っています。

執筆自体は分業の形で進めましたが、毎月 1 回の頻度で著者での打ち合わせを実施し、書籍に関する議論を重ねてきました。 書籍のまえがきに記載しましたが、ある程度書籍が仕上がった段階で、有識者の皆さまにも丁寧なレビューをしていただきました。 現在進行形で、出版を担当する講談社および講談社サイエンティフィクの皆さまにも、編集者の観点でさまざまなコメントを頂いています。 この場を借りて、改めてお礼申し上げます。

対象読者と扱う範囲

対象読者は、機械学習コンテストに参加している方や、これから参加しようとしている方です。 ただし、機械学習コンテストに取り組む上で必要な知見は、より幅広く活用できる余地があります。 この書籍では予測性能を高めるという観点で、一般的な書籍にはあまり書かれていない暗黙知や技法を記載しました。 画像やテキストを題材に予測モデルを構築しようとする方々にも、より広く参考にしてもらえればと考えています。

この書籍では、いち早く機械学習コンテストに挑戦するという目的のもと、理論の解説を割愛している部分があります。 もちろん理論を体系立てて物事を学ぶことは、いつの時代も間違いなく大切です。 一方で機械学習コンテストに挑むという観点では、まず手を動かしながら必要に応じて理論面を補うという学び方も十分にあり得ると考えています。

データ分析全般や機械学習コンテストの入門的な内容についても、必要最低限の解説にとどめています。 実装に利用するプログラミング言語Pythonやライブラリ、微分・行列演算といった数式などについても、前提知識として説明を省略している部分が存在します。 可能な限り文章で補完し読み進められるよう配慮していますが、1 冊で全てを網羅する書籍ではないという位置づけです。 『Kaggleで勝つデータ分析の技術』(技術評論社)・『PythonではじめるKaggleスタートブック』(講談社)などの参考文献を明示し、必要に応じて関連書籍を参照していただく構成になっています。

おわりに

本書では来年共著で出版する『Kaggleに挑む深層学習プログラミングの極意』(講談社)を紹介しました。 私のデータサイエンティストとしてのキャリアは間違いなく Kaggle と共にあり、幸運に恵まれ書籍の出版に関わり続けています。 お世話になっている Kaggle コミュニティに、少しでも何かが還元できていれば一人の参加者として嬉しい限りです。

「東京大学グローバル・インターンシップ・プログラム(UGIP)」の勉強会に登壇しました

※ 「Kaggle Advent Calendar 2022」の「Calendar2」の 16 日目の記事です

12 月 16 日に開催された「東京大学グローバル・インターンシップ・プログラム(UGIP)」の勉強会に登壇し、機械学習コンテストや実務での事例を題材に、データ分析プロジェクトの進め方や事例について発表しました。 最初に Kaggle に代表される機械学習コンテストの概要や取り組み方、頻出の分析手法を解説しています。 その後、機械学習コンテストと実務の違いを述べ、実際のニュースメディアでのデータを用いた課題解決の事例を紹介しました。

発表資料は、一般向けに公開しました。 東京大学の関係者であれば、サイトから登録することでアーカイブ動画を閲覧できるそうです。

YANS2022 ハッカソン参加録:ランク学習による商品レビュー評価

※ 「Kaggle Advent Calendar 2022」の 12 日目の記事です。

今年 8 月に「NLP 若手の会 (YANS) 第 17 回シンポジウム」(YANS2022)内で開催されたハッカソンに参加しました。 特定の評価指標での性能を競うハッカソンで、今年はアマゾンウェブサービスジャパン合同会社の協力のもと、Amazonの商品レビューデータを分析しました。

コンペ概要

  • 特徴量:商品名、商品概要、レビュー内容、レビュー時刻、レーティングなど
  • 目的変数:「役に立つ投票数」
  • 評価指標:NDCG@5
  • 運営による BERT ベースライン

チーム解法

このハッカソンでは過去の開発経験を基に、運営によって参加者が約 4 人ごとのチームに振り分けられました。 Slack や Zoom を駆使して、初対面の方とチーム開発をするのは刺激的で面白かったです。

チーム解法の概要は、下図に示す通りです。 テキスト情報からは Bag-of-Words や TF-IDF、質的変数・量的変数からは掛け合わせで特徴量を抽出し、LightGBM に投入しました。 評価指標を鑑み、ランク学習を利用して予測値ではなく予測順位を基に学習したのが大きな工夫点です。

具体的には、LightGBM の「LambdaMART」を利用し、評価指標に ndcg@5 を用いて early stopping を設定しました。 CatBoost のランク学習「YetiRank」も試しましたが、アンサンブルによる性能改善が確認できなかったため、最終的な提出には反映しませんでした。 その他の試行錯誤を含めて、ソースコードGitHub で公開しています。

Training until validation scores don't improve for 200 rounds
[200]   training's ndcg@5: 0.801038     valid_1's ndcg@5: 0.698077
[400]   training's ndcg@5: 0.82988      valid_1's ndcg@5: 0.705027
[600]   training's ndcg@5: 0.848765     valid_1's ndcg@5: 0.70778
[800]   training's ndcg@5: 0.864104     valid_1's ndcg@5: 0.707484
Early stopping, best iteration is:
[774]   training's ndcg@5: 0.862187     valid_1's ndcg@5: 0.70911

より具体的な詳細は、以下の発表資料を参照してください。

終結

幸運なことに、チームとして最終評価で 1 位を獲得し、アマゾンウェブサービスジャパン合同会社からの「Applied Scientist賞」も受賞できました。 開催期間中の暫定の順位表も 1 位で終えることができたので、これ以上ない満足な結果となりました。 参加した各チームの解法や順位などは、公式の開催報告ブログにまとまっています。

yans.anlp.jp

おわりに

本記事では、YANS2022 のハッカソンの概要とチーム解法を紹介しました。 ご関心あれば、ソースコードや発表資料もぜひ眺めてみてください。

予測に寄与しそうな特徴量を作っていくことでスコアが伸びていく、優れた設計のハッカソンだと感じました。 個人的に利用頻度が少なかった LightGBM や CatBootst のランク学習を試す良い機会にもなりました。 最終的な提出には全く役立ちませんでしたが、Transformer 系列のモデルのファインチューニングの試行錯誤も勉強になりました。

最後に、運営・参加者・スポンサーの皆さんに改めてお礼申し上げます。 アマゾンウェブサービスジャパン合同会社からも先日ブログ記事が公開されています。