2021年の振り返り
こんにちは。くるぴーです。
新卒SEから機械学習への転職を決意してから5年が経ちました。
普段あまりこういうブログは書かないのですが、今年を振り返りたくなったので雑に箇条書きで書いていきます。
kaggle
今年は3本のコンペに参加し、金2枚と銀1枚でした。チームを組んでくださった皆様、twitterで切磋琢磨?煽りあい?交流?に付き合ってくださった皆様、ありがとうございました!
1. Riiid Answer Correctness Prediction
概要
SANTAというTOEICの学習アプリを提供する会社のコンペ。
「出題された問題をユーザーが正解できるか」を予測するもので、学習データとして過去にユーザーが解いた問題が提供される。
特徴的なのはデータが1億行あること、Time Series API(※)での提出が求められること。
(※)ストリーミングデータのようなイメージで、数十行ごとのバッチでデータを受け取り予測を返す。
成績
チーム参加(takoiさん)
public 13/3395, private 13/3395(Gold)
解法
全く整理しておらず見るに堪えないと思いますがコードは以下です
振り返ると600近く実験していたようです…
github.com
所感など
- 推論速度・リソースとの闘いだった。
- python(というかプログラム全般)について知れた。
- (恥ずかしながら)なぜ辞書型はキーが多くなるとメモリを食うのか、すら知らなかった…
- テーブルデータでTransformerを使う経験が詰めた。
- 結局LightGBMよりも圧倒的に精度がよかった。
- twitterでコンペ参加者と交流できたのがとても楽しかった。
- 好奇心の刺激や経験を積むという観点で有意義かつ楽しいものの、この”ネトゲ感”が外れるとkaggleをやらない気がする
2. Shopee - Price Match Guarantee
概要
東南アジア・台湾で主要なECプラットフォームであるShopeeが開催したもの。Shopeeでは掲載商品に対して「最低価格保証」機能を提供している。この機能に必要なのが「プロダクトマッチング」。このコンペでは商品の画像とテキストのデータが与えられ、そのデータに類似した商品を予測する。
成績
チーム参加(kicchoさん、cpptakeさん)
public 6/2426, private 6/2426(Gold)
解法
全く整理しておらず見るに堪えないと思いますがコード github.com
所感など
- 距離学習、リコメンドを全く知らない状態だったため、勉強目的で参加した
- 使い方や理論の理解が進み、成果も出せたので目的は達成できた
- チームプレイがとても楽しいコンペだった
- マルチモーダルなモデル(textとimageをtransformerでいい感じにするとか)について論文をめちゃくちゃ試したけど全く当たらなかった
- モデルの推論結果を目視確認・定性的に確認してFBできたのはよかった
3. CommonLit Readability Prize
概要
与えられた児童向け文章の対象年齢を当てるコンペ
成績
solo参加
public 6/3633, private 22/3633
解法
コード
こちらも見るに堪えないですが以下にあります
所感など
- takoiさんがpublicの1位にいるのを見て、一緒にGMになりたいと思い参加した
- BERTのチューニングテクニックをかたっぱしから試した
- paper:https://arxiv.org/pdf/2006.05987.pdf
- この論文にも記載があるようにreinitializationが非常によく効いた
- pretrain後のBERT最終層数層の重みを初期化する
- discussion expertという裏目標は達成できた
- メダルが変わるshakedownを初めて食らって悔しい...
総じて
仕事
- 入社してからずっと携わっていたプロジェクトで社長賞がもらえた
- MLの要件整理から導入運用効果出しまで現場の業務をキャッチアップしながらできたのは楽しかった
- 多くの人とコミュニケーションをとる必要があり、コミュニケーションコストを意識することが前よりできるようになった気がする
- パワポ芸が上達した(本も何冊か読んで勉強した)
- また別のプロジェクトでは、非エンジニア2名と一緒にMLのシステムをチーム開発した。
- テストドリブンな開発を導入した(誰に教わったわけでもないのでやり方があっているかは怪しい)
- システムの改修を強気にできてとてもよい
- 「テストコード書いてよかったです」と言ってもらえたのがうれしかった
- システムの設計をあーだこーだ議論するの楽しかった
- テストドリブンな開発を導入した(誰に教わったわけでもないのでやり方があっているかは怪しい)
- 工場系の分析やMLが多かったが今年は別のドメインでも少し仕事している
- エンジニアリング、カスタマーサクセス(コンサル?)、機械学習(の上澄み)、今のところまんべんなくやっているけど、どの方向性に進みたいのかはずっとわからない
- 自部署では意欲的かつ高い能力を持った人に囲まれていて、組織も寛大(スーパーフレックスが適用されている、裁量が大きくいわゆる「根回し」みたいなのが少ない)ので現状楽しく働けている。心理的安全性も高いと感じる。
副業
2021/11~ 副業を始めた
動機
- 一度正社員+副業という働き方をやってみたかった
- フリーランスと正社員の良いとこどりをしてみたかった
- 自分の実力を知りたい、全然違う技術・業種で仕事してみたい
所感など
- twitterのプロフィールに「副業募集」を記載したところ数件お声がけいただき、うち1社で2021年11月からお世話になることに
- 徹底したドキュメント文化に感動した
- わからないと思ったことがだいたいドキュメントを調べたらわかる
- 自社のライブラリや固有のルールなどがあるはず
- フルタイムじゃない&フルリモートの僕でも、メンターの手をあまり借りずにキャッチアップできた
- わからないと思ったことがだいたいドキュメントを調べたらわかる
- 技術的なFBが的確で議論していて勉強になるし楽しい
- 短い時間でアウトプットを出さなければいけないのは少なからず負荷になる(圧力をかけられたりといったことは一切ない)
- 徹底したドキュメント文化に感動した
- 2か月の契約期間だったが無事継続をもらえたので、井の中の蛙ではないことがわかりちょっと安心した
- 本業やめて副業だけ(もはや副業とは言わないが)で働き方をスローダウンしてみたい欲望がちょっとだけある
- 現状本業の職場環境&仕事内容が良いので、環境が変わってしまったらちょっと考えるかも
仮想通貨bot
kaggleのshakedownに心が折れたのと自動取引やってみたいと思っていたので、9月ごろから仮想通貨bot開発をはじめた
動機
- いろんな方向で収入が欲しい
- 趣味でシステムを組む行為自体が好き(プラモデル的なイメージ)
- うまくいけば実益も伴う
所感など
- うまくいけば実益も伴う
- 通算5回目となる自動取引プログラム
- まともにクラス設計を業務でやったことがないがそれなりにできるようになったのは、5回のscrap&buildが大きいと思う
- 1回目の自動取引プログラムは、新卒同期の超つよつよエンジニアに個別で何回かご指導をもらったのが実力向上に大きく寄与した気がする(ありがとう)
- まともにクラス設計を業務でやったことがないがそれなりにできるようになったのは、5回のscrap&buildが大きいと思う
- しっぽは掴んでいる気がする(とずっと言っている)が、まだ勝てるアルゴは組めていない
- kaggleと違ってネトゲ感がないのでモチベが続かない
- 2回/週で僕含め2名でもくもく会をしているのがモチベkeepの源泉になっている
その他
哲学
- 1~3月、ちょっとだけ哲学の本を読んでた
- twitterで話題に上がっていた哲学チャンネルをずっと見ていた
- 「考える」ことが好きな人はきっと面白い気がする
- kaggle参戦に伴い、哲学から離れていった…
mocri
- mocriで朝もくもく会などをしていろんな人とお話しできた
- 僕が非首都圏住みだったのもあり、ずっとFFだったのに話したことがない人と話すことができたりとよかった
サウナ
- 何がキッカケだったか忘れたがサウナ少しハマっていってた
- 整うことがなかなかできない&気軽に行けるサウナがなく、自然と遠ざかってしまった。。
ゲーム
ここ数年間でかなりゲームをやった年になった気がする - slay the spire - ローグライクカードゲーム - 風来のシレンをはじめとした不思議のダンジョンオタクにはたまらなく楽しく、ずっとやってた - 身一つで突っ込む、信じるのは己のスキルだけ、っていうのめっちゃ好き - ポケモンユナイト - 8月からずっと100時間/月稼働をずっと続けるくらいにドハマりしている - kaggler5名でチームを組んで大会にも出ている(最高3回戦) - 僕と相互フォローで興味ある人いたら声かけてください!!
日記
- もう8年くらい、ほぼ毎日つけている
- 年の瀬ということで読み返しましたがkaggleや仮想通貨botのメモ帳、勉強ノートになっていて、どんなことを考えてるのか全くわからない
- 実は何も考えてないだけなのでは…