2023年を振り返る

あと1時間くらいかな。今年も振り返ります。

できごと

2月
関西CTO のイベントに登壇。
flxy.jp

4月
取締役になった。
corp.synergy-marketing.co.jp

5月
LOVED の翻訳レビューに参加していた (→ 7月に出版された)

9月

CTO Night & Day に参加。登壇もしたよ。 aws.amazon.com

Recsys も行った。久しぶりの海外一人旅。 recsys.acm.org

読んだ

印象に残っているのはこのあたり...

  • Humankind : 希望の歴史 (上下)
  • エッセンシャル思考
  • 他者と働く
  • フィフティピープル となりの国のものがたり
  • スタンフォード大学の100%人気講座 実力を発揮する方法(コーチングで教わった本)
  • INSPIRED
  • 天才はあきらめた
  • 世界一流エンジニアの思考法 :star:

他にもある。

読みかけはいっぱい。 アフターデジタル UXグロースモデル / プロダクトマネージャーのしごと とかはよみきる

漫画

一気読み

続き読み

  • ワンピースわの国編
  • 紛争でしたら八田まで
  • きのう何食べた

コンテンツ

オードリーにはまって、あちこちオードリーと LIGHTHOUSE を契約して見た

遊び

2月 名古屋の岡本太郎展、行った taro2022.jp

FIRST SLAM DUNK 見に行った。 slamdunk-movie.jp

5月 怪物 見に行った。

11月 パンタレイ展 kyotocity-kyocera.museum

旅行とごはんは物足りない感じ。

仕事

3年間 の CTO で何をやっていたんだ、と思うくらい、わけがわからずずっと溺れていた。 取締役といってもなにを取り締まるっていうんだ、という気持ちで、わりと行動にブレーキがかかっていました。やったことないことにチャレンジしていろいろうまくいかなかったし。弱い。弱すぎる。活動していないわけではなく、むしろいろいろやっているが、結局インパクトを残していないから、凪だったところがとても不甲斐ない。

ただ、3年間 CTO といいながら、結局 開発部長的に社内で開発組織とそれ以外をつなぐ役割をしていたんだ、と気づきました。今後は、その役割は任せつつ、シナジーマーケティングと社会をつなげる役割をしていこう、と思っています。そう考えると、やることもだいぶ変わってくるし、必然対外的なアウトプットを(無理矢理にでも)増やしていく。

技術

Recsys、リアル参加できたのはよかった。 5月、ちょっとRust やって、それ以来プログラムもあまり。Bedrock はちょっとさわったけど。つくってなんぼですよね。

相変わらず汚い。そうじゃない。 ただ、お散歩するようになったから、新しい習慣を今から獲得できるはず。あきらめない。 いろんな組み合わせで2人で出かけることが多かった。 とても楽しい。晩ご飯でもわりとなごやかに話すし。残り少ないがたのしもう。

遊び

Recsys が最大の遊びだった。ひとり旅は好きなので、もう少しいきたい。 美術館 / サブスクのバラエティ / 漫画 が 好き。根っからのインドア。 でも、そろそろゴルフもスコアあげに。

なので、2024年にしたいこと

  • 仕事、対外的な(よい)インパクトがあるよう、やらないことをしっかり決め、やることをやりきる(手をつくす)
  • 週末は遊ぶ
    • コード書く
    • 本や漫画を読む
    • 映像、見る
    • 映画見にいく
    • 美術館、いく

2022年を振り返る

あと、1時間くらいかな。振り返ります。

仕事

組織はしっかりかわりました。どう変わったかは、そのうち会社のブログにのるので、去年に続きここでは個人的な話をします。

振り返ると、去年書いてあったことを、なんとなく実現しているので、私えらい。

目標を達成するためのチーム編成になっていない / チームに対してゴールを示せていない 脳に酸素を行き渡っている感覚もあるので、今年は(も)しっかり壁うって、叩きのめされようと思っています。

仕組みを変える部分に関しては、多分に私ではない人が手を尽くしたからですが、「ゴールを達成するためのチーム」に変化させられました。だからあとはゴールを達成するだけだ。

AWS Summit 登壇、グロービス参加などの機会をもらい、それは感謝しています。実はグロービスは、お客様である企業についてのいろいろな視点をもらえるよい機会になりました。いや、本当にブレークスルーになったんですよ。個人的には Kotlin Fest のスポンサーしたのも、楽しかったです。

ただ、個人的には1年中、迷いに迷ってしまった。さすが、3年目。

相変わらず、「ここが課題だな」とラベルづけするところと、「だから、ここをめざそう」とゴール定義するところに、ロジカルさがない。エビデンスがない。説明責任を果たせていないのは、基準がないからか。アプローチも、小さくステップを踏みながらやっているつもりなのだが、歩幅があっていない可能性もあります。そもそも、ゴール(締め切り)逆算方式だし、思いついたことに対して説明するための定量的な根拠を示すのに労力を割きたくないから、だと思うけど、それはそれでよくないですね。ただ、そのためには、比較対象の外の世界をみていくしかないような気がしています。あと、実は手数が多くやってるだけで、直接なにかにつながっていない施策も多いため、メンバーが「?」となっていることが多いかもしれないです。私の中ではいろいろなことがつながっているんですが、みんなの中では、いろいろ「あれ、やったけどどうなったんだろう」的なことは多いんじゃないか。その辺りも、ロジカルじゃないの、よくないなあ。

とはいうものの、2023年はやるしかない状況。また、やったことないことやってみる(呑み込みは悪いので、必ず最初はうまくできない)ので、またしばらく、そこの手数を増やすしかない。時間が有限なので、手を抜く方の時間を測定し、減らしていく。個人的にも自動化と効率を。

技術

GW に Coursera の ブロックチェーン学んだり、React したりした。あと、Recsys にも参加。外部イベントは他には pmconf 、Snowflake、kotlin fest、あと CTO協会イベントに少し参加している程度なので、もう少し外にでたい。

実は今年の初めに Atcoder 緑になっている。そこできれてしまったので、またプログラムを書かない日々。そりゃ、ものがつくれなくなって、ものづくりの勘もなくなるよ。

でも、来年は増やしていきたいです。

去年の私と同じことを思っていて、びっくり。忙しさは、2021年以上だったので、2023年はまじでめりはりを。

私の仕事が忙し過ぎて、家族とあまり会話していないように思う。 もう一緒に住むのもあと2-3年、かもしれないし、目の前の人との時間を大事にしたい。

遊び

ずっと変わらないなあ

結局技術的なインプットと(一人)旅が私の心から楽しいことだと再確認したので、

なので、2023年にしたいこと

  • コード書く
  • 臆せず、いろんな人と話をする   - 新しい人も
    • 古い人も
  • リアルRecsys 参加 → ついでにアジア放浪
  • そこで会話ができるよう、英語やるか

RecSys 2022 Day3

Session 9 Large-Scale Recommendation

Optimizing product recommendations for millions of merchants

  • Shopify の Industrial Session
  • A/A tests をする 。A/B テストではなく
  • テストの仕方
    • 別のモデルのリストを同じ画面に表示する
  • Differnet models perform better for different shopping
    • よい推薦モデルがショップによって異なるため、それぞれにベストなものを提供する
    • いくつかのモデルを使い分けている
  • Collaborative Filtering , Contents based Filtering
  • Long-tail の場合
    • コンテンツベース、はひとつの解

A GPU-specialized Inference Parameter Server for Large-Scale Deep Recommendation Models

  • DeepLab (Taboola engineering) : 広告とか
  • Challenge
    • Contents changing / User intent changing / model must change
  • ETL / Data validation / Train / Model validation / Deployment
  • Solution → transfer learning
  • システム構成:airflow spark tensorflow k8s
  • metrics
    • offline : いっぱい AUC とか
    • online : 現実のやつ

Hirechal prameter NVIDIA

  • NVIDIA の Industrial Session
  • Transformer などの学習や推論に最適化したサーバをつくったよ(という話だとおもう)
    • メモリの持ち方?
  • 前提知識が足りないものはわからない量が多いが、たのしい

Evaluation Framework for Cold-Start Techniques in Large-Scale Production Settings

  • Outbrain : オンライン recommendation : news とか
  • cold start evalution framework
    • ニュースはほぼほぼコールドスタートなので
  • continious flow of cold-start items
  • fast cold-start research
    • 新しく投入されたニュースをどのシーンで推薦したらよいか、早く学習する
  • Framework
    • offline simulation
    • how to choose?
  • AB テストできない / skew だから
  • 全リクエストをわける
    • このへんはもうちょっとみたい
  • exploration にはいろいろなテクニックをつかってる

Timely Personalization at Peloton: A System and Algorithm for Boosting Time-Relevant Content

  • PELOTON
  • Fitness content platform
    • personalizing content discovery experience
  • タイムセール、顧客体験を減らせずにどれくらい露出を増やすか
  • 二つの方法
  • ビヨンセ

EANA: Reducing Privacy Risk on Large-scale Recommendation Models

  • Google さん
  • 機械学習などにデータを活用する場合、プライバシーがわからない、かつ、データの分布やパターンが変わらない程度にデータをマスク(加工)する
  • SGD / DP-SGD とかある
  • DP-SGD : めちゃくちゃcompute heavy
  • EANA = embedding-aware noise addition
  • ノイズの加え方を工夫して、より簡単にデータの活用ができるようにした
  • Privacy Tech だなあ

https://www.youtube.com/watch?v=6U2DQ8gkv4c

RecSys 2022 Day2

Session6: Diversity and Novelty

Don’t recommend the obvious: estimate probability ratios

  • PMI に合わせて学習した話
  • 聞けなかった

Recommending for a Multi-Sided Marketplace with Heterogeneous Contents

  • Uber の話
  • Challenge 1 : Multi-sided trade-off
    • Restraunt - User - Delivery Partner
    • defferent objective
  • Challenge 2: heterogeneous & hierarchical products
    • レストラン / レストラン群 ( 一部、和食特集とかある)
  • MOHR
  • MO-step : 3つのML Model
    • ユーザ、会社、公平性
  • H-step : Hirechical modeling
    • state based user browsing model
    • ルーセルのレコメンデーション
  • R-step: Multi-objective optiomization for ranking
    • 我慢できる犠牲(tolerable sacrifice ) をmulti-objectiveに適用
    • 計算の工夫をした
  • 検証
    • MOR / H / MOHR で比較
    • MOHR がやっぱりよかった
    • 階層モデルで、ユーザは早く探し物ができるようになった

Solving Diversity-Aware Maximum Inner Product Search Efficiently and Effectively

  • Matrix Fatcotrization : 古えにはめちゃくちゃよく使われていた手法
  • k-MIPS
    • 推薦アイテムのlistがとれる
    • diversity は考慮されていない
  • diverse 具合を ラムダで調整できる
    • min 距離を、最大化関数に足す
  • 計算の大変さは、IP Greedy で克服
    • 全組み合わせ、計算しない
  • がんばってみたら理解できそうな気がする
  • IP-Greedy の方が早いし、diversity もあるよ
  • 質問に答えられなかったときの答え(オフラインでやるよ)を用意しておくとよさそう

RADio – Rank-Aware Divergence Metrics to Measure Normative Diversity in News Recommendations

  • news editorial teams are gatekeepers
  • news recsys is not same as product
  • diversity をどう表現するか
    • discreptive diversity の課題を克服するものを提案
  • 特定の分野では効果的な Diversity metrics になっているとおもう
  • 距離の概念を満たすことが必要
    • Symmetric Divergense
    • Rank-aware Divergence
  • 検証した → もっと最適化が必要

Reducing Cross-Topic Political Homogenization in Content-Based News Recommendation

  • Cross-Topic Political Homogenization
  • トピックごとに政治的な立場が異なるユーザになにを推薦したらいいのか?
  • おなじみの Attention : STANPP で解決
  • political stance はどうやってラベリングした?
    • provider で 区別
  • ニュースのクラスタリングは k-means

Exploiting Negative Preference in Content-based Music Recommendation with Contrastive Learning

  • 好きな音楽と好きじゃない音楽、好きじゃない方が説明しやすい
  • 「嫌い」を反映させるとどうなる?
  • content-based recommendation / パフォーマンスじゃなくて影響を
  • method
      1. feature extraction ( CLMR / MEE / Jukebox)
      1. CLEP (Contrastive Learning Exploting Preference)
      2. CLEP-PN / CLEP-P / CLEP-N
      3. pos とneg を別々に置く方法はメジャーなんだろうか
      1. Preference Prediction (ML)
  • 実験
    • 24 人に200曲きいてもらって、好き嫌い
    • モデルの評価 → Precision / False Positive Rate
      • 嫌いな曲を推薦 = FP
      • 好きな曲を推薦しない = FN
  • 結果
    • negative preference have more distinct characteristics : セレンディピティティ
    • low false positive rate / high precision
  • 実際にどうやってネガティブをあつめたらいい?
    • いっぱいやらなきゃいけないけど、この研究の焦点ではない
  • 時期的なものをどう考慮する?
    • コンテキストとか、影響あるけど、この研究の焦点ではない
  • 20人、すくなくない?どうやって一般化する?
    • 人は、結構ランダムに選んだので、そんなにバイアスかかってないと思うよ

# Session6: Models and Learning Ⅰ

起きてきた

## BRUCE – Bundle Recommendation Using Contextualized item Embeddings

  • Bundle Recommendation というジャンル
  • Contributions
    • item間の関係を考慮
    • Transformer をつかう
    • ...
  • Method
    • pretrain user and item embeddings : BPR(CF) → user とitem representation
    • Bundle representation : Transformer で
    • User Information : Early fusion = Concat/ Late fusion = User token,ユーザをもうひとつのアイテムとしてつかう 、User Oblivious
    • Aggregation Methods : Mean, Global CLS , Bundle CLS , User CLS
      • CLS = Classification
  • 実験

ProtoMF: Prototype-based Matrix Factorization for Effective and Explainable Recommendations

  • プロトタイプとは
  • paper は MF に prototype を適用する
    • ユーザのプロトタイプをつくる(XXが好き ... )
    • ニルバーナ
    • explainable
  • ProtoMF
    • User Prototype Matrix Factorization : ユーザだけプロトタイプに
    • Item Prototype Matrix Factorization : アイテムだけ
    • User-Item Prototype Matrix Factorization : 両方
  • 実験した、パフォーマンスよかった
  • 説明可能性 : contribution を

  • BCS とやっていること、やりたいことが近いのかな

  • プロトタイプをどうやってつくる?

    • 学習する、clustering みたいな方法で
  • interoperability と explainability

TinyKG: Memory-Efficient Training Framework for Knowledge Graph Neural Recommender Systems

  • Best Paper の人と一緒かな
  • Knowledge Graph
    • 複雑なグラフを扱うのはむずかしい
  • Performance vs Memory
  • Compress the GPU memory for KGNN : TinyKG
  • モリーには
    • relation matrix
    • model parameters
    • intermediate activations = ここがやばい
  • 中間の計算結果を Float → Integer にして、メモリをへらそう
    • Forward Quantization : Float → Integer / Backward Dequantization Integer → Float
  • 実験した

Global and Personalized Graphs for Heterogeneous Sequential Recommendation by Learning Behavior Transitions and User Intentions

  • GPG4HSR
  • モデル
    • Input and Embedding Layer
    • Global Graph Layer
    • Personalized Graph Layer
    • Global Personalized Fusion Layer
    • Attention Layer
    • Prediction Layer
  • モデルでかい

CAEN: A Hierarchically Attentive Evolution Network for Item-Attribute-Change-Aware Recommendation in the Growing E-commerce Environment

  • きいてなかったw
  • 課題はおもしろいやつだった
  • ごついAttention、Multi-Head なモデルをつくっていた
  • いろんなモデルを比較することにより、各Layer がどこに効いているのか確認してた

TorchRec: a PyTorch domain library for recommendation systems

  • We all love PyTorch!
  • Meta の人
  • TorchRec & Production Learnings in Meta
  • Recommender models are deep and wide
  • DL は wide and sparse なデータが苦手
  • TorchRec の機能と特徴

Bundle MCR: Towards Conversational Bundle Recommendation

  • Adobe の人
  • Bundle の課題
    • Interaction sparsity
    • Ouput space complexity : セットのアイテム数とか、組み合わせとか複雑
  • Conversational RecSys
    • ユーザに質問しながら、推薦するアイテムを決める
    • Acquire user FB actively / Complete recommendation progressively
    • これを Bundle に適用
  • MCR ScenarioをBundle に拡張
  • Markov Decision Process
    • How to encode State? update State?
      • BUNT - Bundle BERT
  • BUNT
  • BERT の特徴は、マスクするところだった (穴埋め問題解かせてエンコーディング
  • 会話を通して良い感じでよいBundle を推薦している
  • 資料がきれい

Recommendation as Language Processing (RLP): A Unified Pretrain, Personalized Prompt & Predict Paradigm (P5)

  • Text - Image なPrompt っぽいやつを Recommendation に適用するやつ
  • Motivation
    • unified framework
    • language をすると、unified framework を作れない?
    • どうやったら 全てのデータ / different task を Natural Langugage Sequence に変えられる?
  • Multitask Prompt-based Training with LLM
  • P5
    • language は表現力が豊かなので、feature-specific encoders を発明する必要ない
    • item も user も同じ空間に
  • P5 がカバーする範囲
    • rating prediction/ seq recommendation / explanation generation ...
    • 他のやつもできそう
  • Prompt は- personalized prompts
  • Personalized Prompt の設計 : Task Template
  • Architecture of PG
    [id:ayakobaba:20221001133143p:plain:w400]
  • Pretraining & Inference
  • zero-shot generalization ability ?
    • prompt だから
  • Natural Language Sequence をどうやって生成したのだろうか

感想

集中力すぐきれてしまう

RecSys 2022 Abstract

視聴したものだけ。

Sep 19

Session 2 Sequential Recommendation

Aspect Re-distribution for Learning Better Item Embeddings in Sequential Recommendation

Sequential な推薦では、アイテムのembeddings が重要だが、バイアスがある。例えば、共起アイテムは購入する人にとっての類似を意味するが、カテゴリーや色などとは独立しており、推薦に寄与する特徴を抽出できていない可能性がある。そこで、ARD ( aspect re-distribution ) を提案。まず、aspect embeddings を 同じ重要度で表現したあと、一連のアイテムでそれぞれのaspect の重要度を再計算する。最後にそれらを集約したaspect-aware embedding を得る。これは次のモデルの入力になるので、重要な側面は常に重視されるようになる。これによりSTOA よりよかったよ。ここに公開している。https://anonymous.4open.science/r/anonymity-C082.

Defending Substitution-based Profile Pollution Attacks on Sequential Recommenders

sequential recommender は substitution-based profile pollution attacks(代替型プロファイル汚染攻撃) に脆弱。仮説をデモするために、代替敵対型攻撃アルゴリズムを提案する。これは、特定の脆弱な要素を選択し、敵対アイテムで代替するものである。ターゲットを推薦しやすくするもの、しにくくするもの、いずれもパフォーマンスの劣化が観測された。この観測から、われわれはディリクレ 近傍サンプリングという防御メソッドを提案する。複数ホップの近傍アイテムをサンプリングしたものでオリジナルのアイテムを置き換える方法。サンプリングでは、確率分布を適切に保つために、ディリクレ分布を利用することにより、局所的な混乱から学習しないようにする。また、Sequential RS のための攻撃的学習を設計した。特に、選択したアイテムを one-hot encoding で表現し、Gradient ascend を実施することにより、最悪のケースの学習を検知する。これにより、embedding function は 堅牢な表現を学習し、攻撃に対抗することができた。実験したら、よかったよ。

Context and Attribute-Aware Sequential Recommendation via Cross-Attention

スパースな推薦の設定では、ユーザのコンテキストとアイテムの属性、両方とも重要な役割を担う。それにも関わらず、Sequential な推薦では、これらの特徴の一方のみ、あるいは両方を考慮に入れない場合がある。この論文では、ユーザのプロファイルとアイテム属性を神したCARCA モデル を提案する。ここでは、multi-head self-attention ブロックでプロファイルの特徴とアイテムのスコアを抽出している。また、CARCA は アイテム間のスコアを算出するのに、単純なドットプロダクトではなく、 cross-attentionを利用している。cross-attention により、CARCA 古いアイテムも新しいアイテムも考慮した上で、推薦ができるようになった。実験により、STOAより改善したよ。

Effective and Efficient Training for Sequential Recommendation using Recency Sampling

昨今の sequential recommender systems は DNN ベースだが、推論や学習に時間がかかる。時間がかかるとモデルの更新頻度が下がる。学習では、過去のユーザのインタラクションをサンプリングするが、制約がある。例えば、次のアイテムの予想はsequenceの最初のアイテムをターゲットにしないため、潜在的に価値あるデータを無視している。一方、BERT4Rec で利用している アイテムマスキングは、sequential 推薦のゴールにあまり影響がない。効率的なモデルを得るには時間がかかる。そこで、 Recency-based Sampling of Sequences training objective を提案する。実験したら良い結果だったよ。

A Systematic Review and Replicability Study of BERT4Rec for Sequential Recommendation

BERT4Rec は Transformer ベースのよいモデル。オリジナルの論文では、SASRecなどよりBert4Rec の方が優れているとされ、STOA のベースラインとして利用されることが多い。けれども、効率性はどうか。この論文では、BERT4Rec と他のTransformer-based のものを比較する。この非一貫性の理由を解明するために、われわれは 利用可能な BERT4Rec 実装を解析し、デフォルトのパラメータを利用した場合は論文の実験を再現できないことを確認した。けれども、多くの回数学習した場合は再現できた。さらに、Hugging Face Transformer で実装した場合、STOA に匹敵するくらい効率がよかった。

Denoising Self-Attentive Sequential Recommendation

(Best Paper)

Transformerベースのsequential recommenders は、短期・長期のアイテムの依存関係を捕捉できる。これは、self-attention ネットワークという構造からくるもの。しかし、現実ではアイテムの列にノイズが含まれることがあり、特に implicit な フィードバックにおいては顕著である。例えば、クリックのほとんどはユーザの嗜好にそったものではなく、多くのプロダクトがネガティブなレビューを受けたり返品されたりする。次のユーザのアクションは、アイテムの部分集合にのみ依存するのだ。多くの Transformer ベースのモデルは、attention 分布の全てを利用するため、関係のないアイテムをも重要にあつかっており、結果推薦システムのパフォーマンスが下がっている可能性がある。

そこで、Rec-denoiser モデルを提案する。Rec-denoiser では、ノイズとなっているアイテムをprune する。これは、noisy attention をprune するための学習可能なバイナリのマスクを適用することにより実現する。これにより、スパースかつクリーンなattention の分布を得る。これにより、アイテム - アイテムの依存関係を 純粋化し、モデルの説明力が向上する。さらに、self-attention network は Lipschitz 連続ではないため、小さな混乱に脆弱である。 Jacobian 正規化を Transformer blocksに適用することにより、ロバストになる。 Rec-denoiserは汎用的に適用可能なプラグインであり、多くのTransfomerと交換可能。検証でもRec-denoiser はよいパフォーマンスだった。

Session 3 Domain-Specific Recommendation

Modeling Two-Way Selection Preference for Person-Job Fit

(求人サイトみたいな話)人と仕事のマッチングは、オンライン採用プラットフォームのコア技術。既存のものは、マッチングの精度にフォーカスしているが、採用は両方向の選択プロセスのため、候補者と雇用者、双方のインタラクションがそれぞれに対する期待と合致した場合に限り、採用が完了する。

この論文では、両面のグラフ表現からの学習手法を提案する。これにより、候補者と仕事間のインタラクションをより直接的にモデルに反映させることができる。これを実現するために、候補者(仕事)ごとに成功したマッチングと失敗したマッチングを表現する二つのノードを用意し、同じグラフ内でそれを表現する。このグラフを効率的に学習するために、最適なアルゴリズムを設計した。これには クアドラプルベースロスとデュアルパースペクティブ対照ロスを含む。実験結果は上々。

Learning Recommendations from User Actions in the Item-poor Insurance Domain

小売業での推薦システムのパーソナライズはかなり成功しているが、これは特定のアイテムに関するフィードバックを大量に得られるからである。保険などスパースなドメインでは、推薦システムを生成するのは難しい。保険は種類が少なく、購買頻度も少ないため、データがスパースになる。また、Webよりも電話での購入を好む人が多いため、Web上の行動も記録されていない。この課題を解消するため、過去のユーザのセッションを活用するRNN モデルを提案する。過去のユーザセッションを利用することにより、保険領域での scarcity に対応することができる。特に、さまざまなアイテムによらないさまざまな行動から、購買というターゲット行動との関係性を学習する。実際のデータセットで評価した結果、ベースラインよりもよかった。また、セッション間の依存関係から学習していることが効果的だということもわかった。

Reusable Self-Attention Recommender Systems in Fashion Industry Applications

(Zalando) 多くの論文がSelf-attention モデルを紹介しているが、ほとんど標準化した整備されたデータセットで学習されたもの。また、ほとんどがアイテムや顧客のメタデータを考慮していない。DL は多くのヘテロな特徴から学習できる潜在能力がある。また、ほとんどの場合、モデルは一つのユースケースにのみ利用される。そのため、関連がある場合でも、事前の検証が実際のアプリケーションで活用できない場合がある。ここでは、ギャップを埋めるために、検証の結果を活用することにより、ユーザのリテンションを改善した例を示す。さらに、再利用可能かつ設定可能な推薦システムの構築にチャレンジしていることを共有する。特に、我々はコーディネートランキング、コーディネート推薦など、ファッションに特化した例を示す。

Multi-Modal Dialog State Tracking for Interactive Fashion Recommendation

マルチモーダルでインタラクティブな推薦とは、ユーザがビジュアル推薦を受け取り、自然言語でフィードバックを表明することができる推薦システムのことである。けれども、このような対話シーケンスで、正しくユーザの嗜好に対応することは難しい。実際、RNN-base のモデルや Transformer baseのモデルはうまく扱えなかった。 この問題を解決するために、新しい multi-modal recurrent attention network を提案する。特に gated recurrent network により、テキストとビジュアル表現を別々に処理する。さらに、multi-head attention network を適用することにより、GRN より生成されたhidden states を整え、動的な状況のトラッキングを可能にした。vision-language transfomer-based ユーザーシミュレーターをもちいて、学習と評価をおこなった。MMRAN はよかったよ。

Rethinking Personalized Ranking at Pinterest: An End-to-End Approach

(Pinterest)

革命的な推薦システムのランキングエンジンを紹介。ユーザの生アクションをエンド2エンドで学習したもの。ユーザの長期的関心をPinnerFormer でエンコードする。ユーザembedding は新しく密な all-action loss による最適化する。短期的な関心は、リアルタイムのアクションの列から直接学習する。オフライン・オンライン両方の検証をおこない、新しいモデルのパフォーマンスを評価した。また、CPU/GPU setup で実行する挑戦もおこなった。提案するシステムは、Pinterest の本番環境にデプロイされ、アプリケーション上で良い結果をもたらしている。

Identifying New Podcasts with High General Appeal Using a Pure Exploration Infinitely-Armed Bandit Strategy

(Spotify)

ポッドキャストは、世界で人気のあるメディアになりつつあり、月に多くの新しい ポッドキャストがリリースされている。この新しいポッドキャストをどうやってオーディエンスに推薦したらいいのか。まず、教師あり学習のアプローチを試したが、代わりにfixed-budget infinitely-armed pure-exploration 設定のnon-contextual bandit algorithm を提案する。検証の結果、このアルゴリズムは、bestのarm を特定するタスクが得意だということがわかった。次にこのアルゴリズムポッドキャストの特定に適用し、教師ありのアプローチから継承したポピュラリティバイアスを回避しアピールを増やすことができるようになった。

(難しい、わからない)

Translating the Public Service Media Remit into Metrics and Algorithms

ZDF

ZDFmediathekにおける自動の動画推薦を通じて、ZDFは推薦システムの利用に確固たる土台を築いた。公共サービスメディア(PSM) 提供者にとって、PSMR が重要。われわれは、新鮮で関連の深いコンテンツを提供するのと同時に、PSM values ( diversity, fairness, transparency ) を守る必要がある。そのため、推薦システムは ビジネスKPI を満たすだけではだめで、PSM values も達成する必要がある。ただし、PSM values は簡単に定量的に測定できない。そのため、public value metrics を定義する必要がある。また、PSMR の最終結果のみが重要なわけではない。推薦システムの透明性も重要。ここでは、われわれが どうやって PSM Values と 透明性に向き合ったか、どのような指標を定義したか、紹介する。

Sep 20

Session 5 Diversity and Novelty

Don’t recommend the obvious: estimate probability ratios

Seuential な推薦システムは「次のアイテム」をユーザに推薦するもの、最もユーザが次にアクションする可能性が高いアイテムを示す。が、このまま適用すると、多くの人に人気のアイテムが頻出することになる。人気のアイテムが、特定のユーザの嗜好にあわないものであれば、確率が高くても表示しない方がいい。この論文では、人気度のサンプル指標示す。これは、Point-wise Mutal Information( PMI ) の推測に強く関係する。PMI を 適用する2つのテクニックを比較し、人気度のサンプル指標を改善することを示す。

Recommending for a Multi-Sided Marketplace with Heterogeneous Contents

(Uber)

(Uberのような)複数の関係者がいるようなマーケットプレイスには、二つの課題がある。1. 双方の利益は異なり、潜在的には衝突している点。そのため、複数のObjective を トレードオフ加味しながら最適化していくことになる。2. off-the-shelf の推薦アルゴリズムを適用することができない。なぜなら、一方の推薦候補が他方の推薦アイテムの集合になるから。この論文では、multi-sided で ヘテロな階層コンテンツに適応できる一般的な推薦システムフレームワークを提案する。 ここでは、コンフリクトするobjective を入力として学習するモデルでの制約最適化フレームワークと、ヘテロなコンテンツ上のユーザのエンゲージメントパターンの確率モデルを紹介する。我々が提案するモデルでは、透明性を提供する。また、リアルタイムで推薦のランキングを出す方法も示す。オンラインでの検証では、提案モデルの効果を示した。このアルゴリズムは、ホームページに利用されている。

Solving Diversity-Aware Maximum Inner Product Search Efficiently and Effectively

(阪大)

MIPS (最大の内積探索)は、推薦システムでは基本的なオペレーション。規模が大きいRecSys では、既知のアルゴリズムを利用するが、このアルゴリズムは Diversity を考慮していない。そこで、われわれは Diversity-Aware k-MIPS の算出を試みる。ここでは、ユーザがDiversity の度合いを設定することができる。けれども、直接これを計算するのは NP-hard のため、効率のよいアルゴリズムを見つけることが必要。この論文では、IP-Greedy を提案する。IP-Greedy では、早期の停止とスキップをGreedy アルゴリズムに適用する。検証の結果、良い感じ。実際にdiverseにもできた。

RADio – Rank-Aware Divergence Metrics to Measure Normative Diversity in News Recommendations

伝統的な推薦システムでは、Diversity を「ターゲットのトピックと類似していないもの」を推薦することにより実現していた。ただ、ニュースのDiversity においては、適切に表現していない。ここでは、RADio を提案する。これは、推薦を評価するための指標。RADio は、ランクを考慮した Jensen Shannon divergence を示す。この組み合わせにより (i) ユーザが見る傾向にあるアイテムを減らし、(ii) 分散したリストを提供することができる。我々は、RADioの能力を、5つの規範的なコンセプトに適用、6つの推薦アルゴリズムで測定した。RADio は、ニュースの推薦システムの設計に役立つ情報を提供することがわかった。

Reducing Cross-Topic Political Homogenization in Content-Based News Recommendation

Content-baseのニュース推薦システムは、単語から学習する。これは、ニュースのdiversity を実現する場合の課題となる。例えば、ユーザはあるトピックでは保守的に、他のトピックではリベラルなものの見方を好む場合に、その特徴を捕捉できない。 そのため、記事が政治的に極端な単語を含む場合は特に、均質な記事を推薦しがちになる。ここでは、attentionベースの NN モデルを提案する。このモデルでは、トピックを特定するような単語のattention を増加させ、政治的なものやトピックに関連のない一般的な単語のattention を減らすことにより、一様な推薦を減らす。検証ではよい感じ。

Exploiting Negative Preference in Content-based Music Recommendation with Contrastive Learning

音楽の推薦システムは複雑になって、説明可能性と透明性が失われている。説明のためには、ユーザ嗜好の理解が必要。一方、ネガティブな嗜好(=苦手)の活用例もあり、パフォーマンスをあげているが、説明はよりいっそう難しくなる。ここでは、ネガティブな嗜好の情報が、音楽の推薦システムにどのような役割を担おうのか、モデルを比較し分析してみた。我々は、ネガティブな嗜好の効果を評価し、音楽の推薦システムに適用する手法を提案する。実験したら、いい感じ。さらに、提案する学習戦略は音楽の特徴量抽出によらず一貫性のある傾向を示した。

Session 6 Models and Learning Ⅰ

BRUCE – Bundle Recommendation Using Contextualized item Embeddings

バンドル は アイテムのセット売り(あるいはおまけ)。販売戦略上重要だが、通常の推薦システムとは別の難しさがある。アイテムとユーザの特徴だけでなく、セット内アイテムの関係も把握しないといけないから。

Transfomer は NLP などで周辺の単語の関連性を捕捉する能力があることがわかっている。これをセット売りのアイテム間の関係をモデリングするのに使う。

そこで、Transfomer を利用したBRUCE を提案する。バンドル内のアイテムの潜在的な関係や、ユーザのアイテムの嗜好、バンドルの嗜好をTransformer でモデリングする。

さらに、試行錯誤の末、データの特徴によって選択する構造を変えた方がいいというインサイトを得た。実験したらいい感じ。

ProtoMF: Prototype-based Matrix Factorization for Effective and Explainable Recommendations

最近の研究では、一般的なMLモデルを「プロトタイプ」で再計算するとよいことが示されている。このようなプロトタイプベースの計算は、パフォーマンスを維持するだけでなく、モデルの説明力をあげることも可能。なぜなら、プロトタイプに分解できるから。そこで、ProtoMFを提案する。ProtoMFではまず最初に user/itemのプロトタイプを学習する。プロトタイプは、ユーザ / アイテムの一般的な特徴を表現している。プロトタイプを利用し、ProtoMF はユーザ・アイテムの類似度を対応するプロトタイプで表現する。このユーザ・アイテム表現により、推薦システムは効果があるものになり、プロトタイプの貢献具合により説明可能となる。3つのデータセットで実験したら良い感じ。また、最後のデータセットでは、どのような説明が得られるか定性的に評価した。

TinyKG: Memory-Efficient Training Framework for Knowledge Graph Neural Recommender Systems

巨大なグラフ上の、KGNN の学習は、メモリを多くつかって大変。activation にメモリを利用するが、他のNN で適用されている 圧縮系の手法がうまく効かない。そこで、新しい TinyKG という手法を、GPU 実装とともに提案する。

Global and Personalized Graphs for Heterogeneous Sequential Recommendation by Learning Behavior Transitions and User Intentions

ヘテロなsequential recommendation は重要な推薦の問題。既存の手法でも結構よいパフォーマンスを得られているが、依然として2つの欠点がある。ひとつは、振る舞いの関連を考慮せずに別々に学習していること。アイテムからアイテムの背には、ユーザの潜在的な行動傾向を反映している可能性がある。ふたつめは、局所的なコンテキストを考慮しないことによりユーザの意図を把握しきれていない点。このインタラクションを利用すれば、予測は改善するはず。この二つのイシューに対応するため、新しいGPG4HSR を提案する。新手法は2つのグラフからなる。アイテムの遷移を補足するグローバルグラフと、コンテキストに関係あるユーザの意図を捕捉するためのパーソナライズグラフ。実験をしたら良い感じ。

CAEN: A Hierarchically Attentive Evolution Network for Item-Attribute-Change-Aware Recommendation in the Growing E-commerce Environment

古典的な推薦システムは、商品の価格の変更などの属性値の変更に対応することができない。最近の研究では、属性の変化は考慮されているが、一時的な依存関係を無視しているし、商品の属性を考慮していない場合もある。ここでは、CAEN を提案する。これは商品の属性値によりユーザのsequence をパーティショニングした上で、アイテムの変化をモデリングする。このフレームワークを利用すれば、階層的なattention のメカニズムを適用することができる。実験したらいい感じ。

TorchRec: a PyTorch domain library for recommendation systems

(Meta )

NL ベースのRecSys は、スパースで高次元なデータを扱わなければいけない点が、(NLPなどの)他のNL と異なる。そのため、巨大なembedding テーブルを学習する必要がある。ここでは、 Meta のProduction 環境で利用している TorchRec ライブラリを紹介。あらゆるところで利用可能なやつ。

Bundle MCR: Towards Conversational Bundle Recommendation

Budle RecSys はスパースさと無限な組み合わせ、という課題がつきまとう。MCRでは、ユーザの嗜好を訪ね、フィードバックをもらうことにより、アウトプットのスペースを狭めていく手法だが、Bundle のための Bundle MCR を新たに提案する。Bundle MCR ではユーザのフィードバックをどうエンコードするか、次に何を質問するかが関心ごと。Bundle MCR はアイテムの組み合わせを探索しているので、複雑。multi-agent の MDP を利用。モデルの構造は Bundle Bert。また、Bundle Bert を学習するために、2段階の学習戦略を採用。オフラインで会話のインタラクションを習得し、オンラインでチューニング。実験したらyい感じ。

Recommendation as Language Processing (RLP): A Unified Pretrain, Personalized Prompt & Predict Paradigm (P5)

推薦システムはタスクごとに別々に設計、学習するのが通例だが、これによりある特定の推薦に関する知識や表現を別の推薦システムに移行することは非常に難しかった。この課題を克服するために、アイテムも人も自然言語で表現し、統一したtext-to-text paradigm を適用することにより、汎用的で柔軟性がある推薦モデルを提案する。名前は P5。

すべての自然言語で表現することにより、特徴の意味の深い理解を獲得することができる。とくにP5 は異なるタスクを同じ言語モデルで学習する。そのため、基盤モデルとするポテンシャルがあり、他の推薦システムに対しても簡単に実装することができる。プロンプトを利用することにより、P5はzero-shot または few-shot な手法で推論することが可能で、ファインチューニングがほとんどいらない。実験したら良い感じ。

Sep 21

Session 9 Large-Scale Recommendation

Optimizing product recommendations for millions of merchants

Shopify では、多くのオンラインストアに推薦システムを提供している。全ての異なる商品に対して最適に推薦するのは難しい。あるモデルが全体の改善に寄与したとしても、一部のストアではパフォーマンスが下がっている可能性はある。すべての商品セグメントに高品質な推薦システムを提供するために、複数のモデルを作成し、オフライン評価により最適なものを提供している。どのセグメントにどの戦略がよいのか、理解したことにより、新しいストアにも最初からよい推薦システムを適用すすることが可能になった。実際には、最初は商品によるベストな戦略が適用され、次にmulti-armed bandits によりアジャストしていく。

An Incremental Learning framework for large-scale CTR prediction

ここでは、CTR 予測をするための学習フレームワークを紹介し、大規模推薦システムでの効果を披露する。われわれの手法で、デプロイ済みモデルと「新」データ上のファインチューニングにより、今発生しそうなトレンドをすばやく捕捉する。過去の知識は、「教師と生徒のパラダイム」により保守する。教師は、蒸留技術のようにふるまい、忘れ去られる状況を軽減する。われわれのインクリメンタルな学習フレームワークにより、学習とデプロイのサイクルが速くなった(12倍)。また、RPM が継続的に向上すること、新しいアイテムのCTR が上昇することを示す。

A GPU-specialized Inference Parameter Server for Large-Scale Deep Recommendation Models

推薦システムは、ニュースフィード、ソーシャルネットワーク、EC、検索などさまざまなアプリケーションで重要。精度を高めるために、モダンな推薦モデルは、DL とテラバイト急のembedding テーブルを組み合わせ、データからよい状態の表現を獲得する。伝統的な推論サーバアーキテクチャはすべてのモデルをひとつのサーバにデプロイしたが、大規模システムではうまく動作しない。この論文では、推論システムに対して新しいインサイトを提供する。われわれは、HugeCTR 階層パラメーターサーバを提案する。これは、分散推薦推論フレームワークであり、ハイパフォーマンスなGPU embedding cache と階層ストレージアーキテクチャを組み合わせ、オンラインモデル推論タスクでのembedding の抽出を低レイテンシーで実現する。その他にも 1. HSS の冗長化 2. CPU の並列 embedding lookup を加速する高帯域キャッシュ 3. オンライン学習サポート 4. 既存の大規模推薦ワークフローを実装するための軽量API などの機能を持つ。HPS のケイパビリティを示すため、我々は二種類のデータセットで検証した。HPS では、E2E のレイテンシーを削減、 5-62x の速度改善を実現した。マルチGPUでは、HPSは推論QPS を改善した.

Evaluation Framework for Cold-Start Techniques in Large-Scale Production Settings

コールドスタートな状況を軽減するのは、推薦システムでは基本的な課題。実際、大規模な商業システムでは、コールドスタート戦略の最適化の難易度は高まっている。

異なるシステムのコールドスタート戦略を比較するための E2E フレームワークを提案する。このフレームワークをOutbrain の推薦システムに適用することにより、コールドスタートのコストを半分に減らすことができた。われわれのフレームワークは、オフラインデータセットサロゲート精度指標を利用する他のコールドスタート技術が抱える課題を、コスト管理されたオンラインA/Bテストを実施することにより解決する。

まず、コールドスタートに対する課題を解説したあと、コールドスタートフレームワーク開発の動機について説明する。その後、exploration data サイズを 最大50%した方法について説明する。

Timely Personalization at Peloton: A System and Algorithm for Boosting Time-Relevant Content

Peloton は サブスクリプションベースのサービスで、高品質なフィットネスクラスの立地なカタログを提供している。フィットネスは、多様性があり、在庫は常に変化する。在庫が変化することにより、推薦システムの難易度は増す。関連がつよいコンテンツだけでなく、時間要素も非常に重要になる。しばしば特定の時間のみ強くおしだしたいクラスがある。例えば、祝日がテーマのクラスなど。この期間は、ビジネスゴールをみたすために、エンゲージメントを下げることなく必要なオーディエンスにアピールする必要がある。けれども単純にクラスの露出を増やすと、エンゲージメントが損なわれる。そこで、いつ誰を選んでいるか、顧客の興味を慎重に分析し、この時間制限コンテンツを誰に表示するか判断する必要がある。我々の推薦システムは、ユーザの興味を理解しており、よいバランスでそれにあわせたコンテンツを占めすことができる。

ここでは、このような「特定のコンテンツ群の露出をふやる」システムとアルゴリズムを紹介する。ブースティングと呼んでいる。ブーストがどのようなものか、説明する。検証したら、よかった。

EANA: Reducing Privacy Risk on Large-scale Recommendation Models

埋め込みベースのDNN は ひろく大規模推薦システムで利用されている。DP-SGD は、プライバシーを守った上でパーソナライズれた経験を提供可能にするもので、学習プロセス上のモデルパラメータにノイズをいれるものである。けれども、学習スピードが遅く、大規模システムに適用するのは困難。これは、DP-SGD により追加されるノイズが、スパースなgradients と 密に変化させ、分散学習フレームワーク内のワーカーとパラメータサーバ間の通信オーバーヘッドを増大させるからである。この論文では、EANA を提案する。 EANA は通信のオーバーヘッドを削減し、大規模embeddingベースのDNN の学習を可能にする。EANA のプライバシーベネフィットを、secret sharer 技術をつかって検証した。良い結果。(プライバシーもパフォーマンスも)。EANA は DP-SGD より速く、privacy risk も軽減していた。

RecSys 2022 Day1

今年もRecSys の季節になりました。 去年、全部(あとで)みようとおもって息切れし、結局半分くらいしか見なかったので、今年は起きている時間にしかみないことを決めました。 時差に抗わない。

Session 2 Sequential Recommendation

Aspect Re-distribution for Learning Better Item Embeddings in Sequential Recommendation

  • Seq recommendation = next item from given item sequence
  • 「Taylor swift 」というaspectがseq を特徴づけている → これをembeddings に反映させられないか?
  • まず、item embedding を 3つのaspect に分解。分解は均等に
  • 次に重みをつけて再計算
  • projection matrixs
  • 手法がgeneral なので、他のものにも応用可能

Defending Substitution-based Profile Pollution Attacks on Sequential Recommenders

  • seq recsys への攻撃手法と、攻撃から守るための手法
  • 攻撃 = Data Poisoning Attacks と Profile pollutions
  • 攻撃の結果 1. 特定のアイテムの露出を増やす 2. ぴんとこないものばかり推薦する の2パターンある
  • Attacks Algorithms use perturbation to item space
  • Defense Objective = robust なモデルに
  • ディリクレ 近傍サンプリング : Augment input items training
  • Adversal training
  • 検証:攻撃するモデルつくれた / popularなアイテムを過度にpopular にする方が簡単

Context and Attribute-Aware Sequential Recommendation via Cross-Attention

見慣れたTransformerっぽいやつ

  • 推薦には item とuser、両方のprofile が必要
  • でも計算に時間かかったりして大変
  • そこで CARCA
  • 実験したらよくできた
  • どのattribute が効くのかはジャンルによる(セッションなのか、userなのか、itemなのか)
  • QA
    • seq の適度な長さは場合による
    • hyper parameter チューニングはがんばった論文に書いた
    • timestamp は 月、日、曜日、時間、.... と6つの特徴量にわけてもたせた
      • (月や月初か月末なのか、曜日なのかによって、異なりそうなので、かしこい分け方だと思った)

Effective and Efficient Training for Sequential Recommendation using Recency Sampling

  • Seq Rec ではDeep Learning 使いがちだけど、効率すごいわるい
  • Recency Sampling で 学習すると効率いいよ
  • 近いものを重く、遠いものを軽く重みづけて、学習データを作成する方法

## A Systematic Review and Replicability Study of BERT4Rec for Sequential Recommendation - 前のセッションと同じ人 - BERT4Rec の再現性をひたすら検証 - 370 paper みた - 学習回数、めちゃくちゃ増やさないと論文通りのパフォーマンスにならない - Hugging face の Transformer 使うと、短い学習時間でパフォーマンス出る - 回し者だろうか - QA : Hugging face で変わったことは? → ひとことではいえない

Denoising Self-Attentive Sequential Recommendation

  • Best Paper
  • Seq に推薦に寄与しないノイズ的なアイテムがはいっちゃうことあるので、それを除きたい
  • Attention つかってると、勝手に重みづけちゃうし
  • なので、フィルタリングする。それが、一番上の図
  • NLP に再輸入することもできると思う
  • あとで読もう

Session 3 Domain-Specific Recommendation

ドメインSpecific なものは楽しい

Modeling Two-Way Selection Preference for Person-Job Fit

  • Online Recruiting では Job <-> Person が two-way selection になる
  • 両方反映させたい
  • Method
    • グラフ学習
    • 最適アルゴリズム = quadruple-base loss / dual-perspective contrasive
  • グラフでは pos とneg 、両方のnode をつくり「人が断った仕事」「雇用者が不採用にした人」の関係を表現
  • データで node の representation を update

Learning Recommendations from User Actions in the Item-poor Insurance Domain

  • 保険の推薦をするモデルをつくった話
  • 保険は難しい
    • Item の種類がない → session-based
    • 頻繁に買わない → several types
    • 電話でもうしこむので、Web のimplicit な情報がない → session-purchase
  • RNN で過去のsession を学習データとして使うことにより、特徴量をリッチに
  • session が1番効いた
  • 発表者、緊張してた。

Reusable Self-Attention Recommender Systems in Fashion Industry Applications

-Zalando のIndustrial Session - いろんな推薦のタイプがある - Get-the-look - Inspired-by-you - You-might-also-like - Algorithmic-Fashion-companion - Influencer-profile-recommendation - 今までは複雑なので、それぞれで独立してモデルを学習していた - なので、他のページで行動していても「Cold Start Problem」 - Single Recommender Systemで、All the usecases を賄えないかな? - Transfomer modelならそれができるんじゃない?

  • いつものTransormer モデルだ!
  • 特徴量にこつを感じた(最初の写真)
  • でもなんでも雑にざばーんとconcat してヘテロなデータつくってもなんかなんとかなるのが DL

Multi-Modal Dialog State Tracking for Interactive Fashion Recommendation

  • でてきた画像に対して、自然言語で「もっと黄色いやつ」とか入力していくことによりほしいものを手に入れるタイプの推薦
  • Gated Recurrent Network を利用すると良い感じになった
  • 自然言語で推薦システムやチャットボットと会話するシーンが全然思い浮かばなかったけど、英語圏の人は自然言語で検索するときいたのでつながった
    • 逆にやっぱり日本ではチャットボットいらなさそう

Rethinking Personalized Ranking at Pinterest: An End-to-End Approach

  • Pinterest のIndustrial Session
  • Pin / Boards / Feeds
  • User intention is the most important signals
  • Long term / Short term の ユーザ嗜好を、それぞれ別のモデルつくって捕捉して、組み合わせて推薦する
  • GPU model の最適化もしたよ

Identifying New Podcasts with High General Appeal Using a Pure Exploration Infinitely-Armed Bandit Strategy

  • Spotifyによる新しい Podcast の推薦問題
  • 画面がみえなくてきいてなかった
  • 左に目次を出し続けるスライドがいいな、と思ったが、本題と関係はない

Translating the Public Service Media Remit into Metrics and Algorithms

  • ZDF というメディアの推薦。Industrial Session
  • 公共のサービスなので、ビジネス的に良い結果なだけじゃだめ
  • PSMV : diversity balance や educational なこと、coverage , novelty,serendipity 、transparency があることが必要
  • 定性的に掲げるだけでなく、Value を図るメトリクスをつくった(これが大事)
  • 指標により、価値を維持できることが監視できる
  • メトリクス、だよなあ

感想

  • Transformer まつり
  • Abstract は読んでいけ

🌲 Developers Summit 2022 Winter

2/17-18 は デブサミ2022でした。全90セッション!残念ながら参加できていないのですが、いくつもの資料が公開されていますので、ピックアップしてご紹介したいと思います。

資料はここでまとまっていました。

エンジニア組織

10年後もエンジニアが成長し続けるためにできることを、20年続く組織の中から考える

たどってきている道が似ていて、だからこそ勇気も持てるよい話でした。いきいきできる組織を。

魅力品質は当たり前品質になっていく

同じ前提の中で改善を重ねるだけでは適応できない環境の変化がある

勝ちパターンのアンラーニングが必要

中長期は構造的な / 現場は偶発的なものへの対応に長けている

変化を支える仕組みは現場からボトムアップ

ボトムアップは組織をまだらに変えていく

現状維持バイアスとたたかう、変化のためにOKRを

無理やり動かすんじゃない。自ら動いてもらうんだ

Ready Player One? ― 『ユニコーン企業のひみつ』に学べること

去年話題になった書籍「ユニコーン企業のひみつ」より、「Ready Player One」= 「自分たちから始めるしかない」と説いています 。「Lean と DevOps の科学」でも組織文化が組織のパフォーマンスを左右することを説明していました。さらに「(文化形成などは)ボトムアップでの取り組みが成功の要因」「チームから始める、チームから広げる」「すごいプロダクトはボトムアップでしかつくれない」「何をしたらいいのか? = まずは継続的デリバリー」「開発者がプロセスをコントロールする」と、エンジニアとエンジニアリングの影響力ってすごい、だからこそ自分たちから動き出す、という話をしてます。特に、「すごい仕事をしていない「言い訳」は何?」という問いかけが。なんだろう。

生き生きとした組織への道

kyon-mmさんのパタンランゲージと組織論。難しい。私にはもうちょっと先か。あと、いきいきって、アジャイル界隈のキラーフレーズなんだろうか。

プロダクト開発速度とデータの組織的価値をセットで飛躍的に高める開発戦略

EdTech の atamaplus 。データを用いて次の戦略を決めていこうとしたら、収集したデータそのものが価値のベースになった、という話。任意時点でのユーザ状態の再現技術の誕生(データをすべてのこしているため、ソフトウェアの操作過程のどこにでも戻れる技術)、すごい。

2022年からCTO交代!新旧CTOが語るこれまでの10年とこれからのエンジニア組織と文化

Voyage あらためCARTA グループ ( EC ナビの会社です)のCTO 交代。小賀さんは10年か。今のCTO は 32歳。ちなみに CARTAグループは企業規模なんかが当社と似ているんですよね...

エンジニアの生き方

GitLab社で学んだ最高の働き方

「世界最大のAll-remote企業」のプラクティスはどれもこれも参考になります。目的がある同期コミュニケーション(会議)に関しては徹底的に無駄を省くルールが定められていて、一見の価値あり。同期コミュニケーションを円滑に進めるための 「Cofee chat」(雑談)が制度として確立しています。Hybrid 通話 ( = 複数のメンバーがWebミーティング設備(画面、ヘッドセット、カメラ)を会議室などで共有している状態での通話 )は最悪、というのは同意する人も多いのでは。

開発プロセス

今、テストに興味があるのかもしれない。

開発者・経営者へ特に伝えたいAgile Testingのエッセンス

よい話だった。特に「実例マッピング」は実際にやってみたいし、Agile testing condensed もよんでみたい。

オーバーエンジニアリングって何!?ぶくぶく膨れ上がる仕様、使われない機能、過剰品質、、、突き詰めたら、その先に真のチームの姿があった。


やりたいことがあるし、エンジニアも足りないなか、どうしたら素早く価値を届けるか、っていったら、「余計なことやってる時間なんて俺らにはない」わけです。この記事、どこかでばずってましたよね。アンチパターンとしての「ベローンの美学」。本当に自戒です。

アジャイル開発と品質エンジニアリング - QA時代の終わりとQE時代のはじまり

mabl という自動テストツール会社のセッション。現代のソフトウェア開発では最後だけ実施する「QA」ではなく、開発の全てのプロセスに「品質向上」をエンジニアリングで埋め込むことが必要と説明している。「 根強いQAがボトルネック問題」「開発サイクル全体で品質を維持」という話から、「しっかりしたテストのプラクティスがあれば変化はおそるるに足らない」「テストでスピードを上げる」と言い切っているところが心地よい。

デジタルトランスフォーメーション・ジャーニー ~組織のデジタル化から、分断を乗り越えて組織変革にたどりつくまで~

papanda さんのDX セッション。DX 4つの段階設計( 1. 業務のデジタル化、2. スキルのトランスフォーメーション、3. ビジネスのトランフォーメーション、4. 組織のトランスフォーメーション)でいったら、私たちは 2と3の間かな、と感じました。

SBOMでソフトウェアを守れ!10年後も自信を持ってリリースするために今始めるDevSecOps

JFrog によるDevSecOps (ツールの紹介込み)の話。若干ポジショントークはありますが、Software Bill of Materials と SCA は検討の余地あります。あとここ。

まずは丸投げしない。理解する。/ すこしずつお互い手を広げる

「アジャイルマニフェスト ディケイド」Resurrections

角谷さんがアジャイルマニフェストの10年を振り返って話をしました。アジャイル仮面ライダーディケイドとかに例えてて、個人的に懐かしかったです。 心に残ったフレーズ。

コードはドキュメント。 あなたは毎日小さな奇跡を起こしながら仕事をすすめていくというわけです。

「界隈がざわつくほど超進化したPMBOK第7版」に私たちはどう取り組むか

プロジェクトマネジメントを体系的にまとめたPMBOK。第7版ではいままでと大きく異なり、計画通り管理するプロジェクトから環境の変化に適応しながら価値を提供する「適応型PM」の体系へ。方法でなく「プリンシパル」をベースにまとめられているため、自分で手順を発明しなくてはいけないのは、個々人の基礎のビジネス能力が試されるものに。がんばろう。

プロダクト開発

開発者視点のBtoBプロダクトマネジメント実践論 ~エンジニアが高い顧客解像度を持つ事で高まる機能開発のROI~

flyle はプロダクトマネジメントSaaS 。以前、UZABASE と及川さんのパネルディスカッションに参加したことがあり、とても示唆に富んだ内容でした。今回も失敗談交えて「顧客の声をどうプロダクトにとりくむのか」話していてとてもよい内容でした。

開発チームみんなで取り組むアクセシビリティ

freee さんによるアクセシビリティの話。仕組み化と教育とビジョン、全てを整備し形骸化を防ぐところは、当社のチームにセキュリティなどを実装するときにとりいれたい。あと、デザインシステムがこれくらいワークするようになるとうれしいなあ....

Mackerelのプロダクト開発 ~ エンジニア中心の開発プロセスで大切にしていること ~

サーバ監視ツールのMackerel の話。基本的にお客様がエンジニア、エンジニアのためにエンジニアが作る製品なので要件定義もドッグフーディングで楽なのかと思いきや、やはり同じところでつまづいてしまうよね、という話。製品なにつくるか、つくらないかは、難しい。

データテクノロジー

今まで生き残ってきたRDBMSとこの先10年戦えるデータストア戦略

soudaiさん。この1-2年、当社のインフラ改善でDBもリプレースしたのですが、そこで得た知見、取り組んできたことに近いです。印象的だったのは以下のフレーズ。未来を想像しよう。

データベースの寿命はアプリケーションよりも長い

今と過去の差分を見ると未来が想像できる

マイクロサービスとデータとData Mesh - アプリは分けた。データはどうだ。

マイクロソフトさんの発表。次の10年は ストックなデータから Kafka のようなフローなデータへのパラダイムシフトになる、というか時代はそうなっているはずと思っています。ただ、当社はまだそこまで追いきれていない(製品に反映できていない)ので、CDC とかデータ指向とかチャレンジしないとなあ、とおもった話です。といいつつ、まだよめていないです。資料が綺麗なので保存。

インフラ

CloudNativeな時代に求められるWebサービス基盤モデルの再考 - Daprについての考察と実装

まずは、SRE の話など。当社のインフラをSREにもっていくかは悩ましい、というか、インフラを持っている

SLO はサービスごとに設定する

コンテナの歴史とメリットについてよい読み物... に見えるのは私に知識があるからか?感想求む。SLI にレイテンシを加えてもよいかも。配信遅延を監視しているのと同じように。対して、Dapr はノータッチだった。勉強したい。

Developers Boost

若手デベロッパーのカンファレンス「Developers Boost」のベストスピーカーの話

成長の秘訣はスクラム?楽しく学ぶOJTの作り方 - デブサミ2022 - / Is Scrum the secret to growth? How to make OJT to learn enjoy. - Developers Summit 2022

OJT フレームの作り方。山本五十六メソッド最強。だけど、教育のプロセスやスタンスを丁寧に分解して解説していて、繰り返し読みたい内容。「何回でも聞いていいよ」は魔法の言葉ですね。

事業をスケールさせるエンジニアたち〜技術のコモディティ化にエンジニアは敗北する〜 / Connecting Business and Engineering

元DMM 現LayerX 松本さんの血を受け継ぐ、DMMのプロダクトマネージャーによるつよいエンジニアの成長理論。開発ではなく、事業のグロースに貢献できるエンジニアが生き残ると説いた上で、そのエンジニアの特徴は「構造を捉える」「KPIで事業を語る」「仮説と実験で、転がしていく」「BMLループで学習サイクルを構築する」「チームの戦闘力もデータ化する」という点であるといっています。それだけできたら....技術のコモディティ化には巻き込まれないだろうけど...的な。

制約が多い大きなプロダクトに新卒で飛び込み、バリバリ案件開発に貢献するようになるまでの道のり。 / DevBoost2021_YusukeKawauchi

できあがったプロダクトの開発に携わることになり、わからないことだらけのエンジニアがどういうふうにひとつひとつ疑問を解決していったか、という話。きっちり課題を構造化した上で、自分の能力開発のステップを立て実行していってすごすぎる。世の中賢い人がいるんだなあと感じましたが、これを新人に任せてはいけませんね。

外の知見を取り入れる

改めて、自分たちが抱えている課題は決して人類未到の特殊なものではなく、ほかの企業さんも知恵を絞って日々立ち向かっているんだ、と感じました。ただ、共通するのは、いろいろ小さく試して学んでいくしかないということ。小さく試すのもスキルがいるのでこのあたりはもっと磨いていかないと。とはいうものの、ここ数年取り組んできたこと、そこから得たものは、正しかったんじゃないかなあ、とも感じました。  こういう知見を共有してもらえるのはすばらしいですね。ありがとうございました。