Tutorial (249) — 2/2


Paper/Blog Link My Issue
#Article #RecommenderSystems #Embeddings #EfficiencyImprovement #Library #Blog #KeyPoint Notes Issue Date: 2023-04-25 Comment

dynamic embeddingを使った推薦システムの構築方法の解説

(理解が間違っているかもしれないが)推薦システムは典型的にはユーザとアイテムをベクトル表現し、関連度を測ることで推薦をしている。この枠組みをめっちゃスケールさせるととんでもない数のEmbeddingを保持することになり、メモリ上にEmbeddingテーブルを保持して置けなくなる。特にこれはonline machine learning(たとえばユーザのセッションがアイテムのsequenceで表現されたとき、そのsequenceを表すEmbeddingを計算し保持しておき、アイテムとの関連度を測ることで推薦するアイテムを決める、みたいなことが必要)では顕著である(この辺の理解が浅い)。しかし、ほとんどのEmbeddingはrarely seenなので、厳密なEmbeddingを保持しておくことに実用上の意味はなく、それらを単一のベクトルでできるとメモリ節約になって嬉しい(こういった処理をしてもtopNの推薦結果は変わらないと思われるので)。
これがdynamic embeddingのモチベであり、どうやってそれをTFで実装するか解説している。




Paper/Blog Link My Issue
#Article #NeuralNetwork #ComputerVision #Transformer #Slide #One-Line Notes Issue Date: 2022-10-27 Comment

・Swin Transformer, Depth-wise conv, ConvNeXt, ViTとCNNのロバスト性の違いの話があり勉強になる

・最終的な結論が、CNNもTransformerも変わらない(明確な勝者はいない; 今のところ引き分け)というのはおもしろかった

depth-wise conv, point-wise convの解説記事: https://agirobots.com/depthwise-pointwise-convolution/



通常のCNNのフィルタによるfeature map計算を、空間方向(depth-wise conv)とチャネル方向(point-wise conv; 1x1 conv)に分解することで大幅にパラメータ数削減




Paper/Blog Link My Issue
#Article #NeuralNetwork #NLP #Transformer #Slide #Selected Papers/Blogs #Reading Reflections Issue Date: 2022-09-06 Comment

Transformerの動作原理を直感的に理解するのに非常にわかりやすい説明で、とても勉強になる。
以下のような内容が解説されており、あまりにも盛りだくさんで最高。

- Positional Encoding
- autoregressive vs. non-autoregressive
- residual connection
- multi-head attention
- RNN(O(N)だけど長い系列苦手), CNN(O(N)だけど近傍しか見れない)との対比
- Vision & Languageの話題とVision Transformerとのつながり
- Swin Transformer
- 基盤モデルの定義
- ある目的関数のもと、自己教師あり学習された、巨大なモデル(様々なタスクに容易に転用できる)
- gMLP, MLP-MixerなどのMLP likeなアーキテクチャとの比較
- Transformerと本質的にやっていることはあまり変わらず、ベクトルの混ぜ方(attention vs. 行列積)と位置情報の保持をベクトルがするのかindexに基づいてネットワークが保持するのか、が変わっているのみ
- Transformer性能向上の軌跡
- pre-Norm / post-Norm / 活性化関数(GLU等) / MoE等 / RoPE
- Scaling Law
- CNNとViTの性質(CNNはハイパスフィルタ、ViTはローパスフィルタ)




Paper/Blog Link My Issue
#Article #LearningAnalytics #Surface-level Notes Issue Date: 2022-03-03 Comment

緒方先生によるLAのチュートリアル



主な研究テーマ:

①行動予測:教育・学習活動において蓄積された大量のデータを元に,機械学習を用いて予測モデルを作成し,学習者の成績や能力,ドロップアウト等の行動を予測する研究

②介入モデル:いつどこでどのような内容をどのような方法で学習者に伝えると,効果的な情報提供となるか,という研究

③オープン学習者モデル:学習データを用いて学習スタイルや特徴を推測し,それをシステム内だけにとどめるのではなく,学習者にできる限り見える形で提示する,オープン学習者モデルの研究

④推薦:学習者個人の特徴にあわせて,教材や問題,カリキュラム等を推薦する研究

⑤ティーチングアナリティクス:教師の教育活動のデータを分析する研究

⑥教育評価の自動化:収集したデータの分析を元に,学習者の評価を自動的に行う研究

2021年版スライド:

https://www.let.media.kyoto-u.ac.jp/wp-content/uploads/2021/07/603b542fafc54003eb4a1a42bb92069f.pdf



典型的な研究事例:

・At-risk学生の発見と成績予測(early-warning)

・学生の成績予測

 - 教員が早期に単位を落としそうな学生を発見

 - 学生は成績予測を確認して、学びに向かう態度を改善

・教育データを用いた予測

- 教育データからACADEMIC Successの予測(e.g. career success, academic achievement)

・Open learner model (student model)

・Recommendation and personalized learning

- ALEKSのようなシステム

- BKT, DKT等を用いた推薦

・Learning analytics dashboard

・Writing (Text) analytics

 - Academic writingの文章を分析

 - eポートフォリオ/Essay/Journalを分析、成績や感情を予測

・Emotional learning analytics

・Multimodal learning analytics

 - Gaze (eye tracking)

 - Bio sensors (heart rate)

 - Pen, click stream

 - Motion sensor (gestures)

 - Audio/Video

・Collaborative learning analytics

 - Group formation

 - Social network analysis

 - Interaction analytics

・Ubiquitous Learning analytics

 - SCROLL:誰がいつどこで何を学習したかという学習ログを分析

・Learning analytics and self-regulated learning

・Learning analytics for teaching / learning design

・Assessment analytics

 - create exams

 - Peer evaluation




Paper/Blog Link My Issue
#Article #MachineLearning #Slide #One-Line Notes Issue Date: 2022-02-07 Comment

NeurIPS 2021での技術トレンドがまとめられている

1. アーキテクチャの改善

2. マルチモーダルモデル

3. Temporal Adaptation

4. Retrieval Augmentation

5. ベンチマーク見直し

6. データセット見直し

7. Human-Centered AI




Paper/Blog Link My Issue
#Article #AdaptiveLearning #LearningAnalytics #One-Line Notes Issue Date: 2021-10-29 Comment

Learning Analyticsの全体像について、コンパクトにまとまっている。

特に、そのアプローチに関するコンセプトの特徴(e.g. 学習者中心、デーア駆動)や、フレームワーク、xAPIといったデータの測定・収集方法などについて、まとめられている。




Paper/Blog Link My Issue
#Article #MachineLearning #Slide #KeyPoint Notes Issue Date: 2021-10-16 Comment

並列して走る機械学習案件をどのように効果的に捌いているか説明。

①タイトな締切
→ 高速化で対処
→ よく使う機能をML自身に実装する
②並行して走る案件
→ 並列化
 → Kubernetesを用いて、タスクごとに異なるノードで分散処理(e.g CVのFoldごとにノード分散、推論ユーザごとにノード分散)要件に合わせて、メモリ優先、CPU優先などのノードをノードプールから使い分ける
 
③属人化
→ 標準化
 → よく使う機能はMLシステム自身に実装
 → 設定ファイルで学習、推論の挙動を制御




Paper/Blog Link My Issue
#Article #BeamSearch #Blog #One-Line Notes #Reading Reflections Issue Date: 2021-06-24 Comment

ビームサーチについて、コード付きで説明してくれており、大変わかりやすい。

heapqを使って実装している。また、ビームサーチをbatchに対して行う方法についても書いてある(ただ、一部に対してしかbatchでの処理は適用できていない)。

自分もバッチに対して効率的にビームサーチするにはどのように実装すれば良いのかよくわからないので、誰か教えて欲しい。




Paper/Blog Link My Issue
#Article #Tools #NLP #Library #python #Slide #One-Line Notes Issue Date: 2021-06-11 Comment

各形態素解析ライブラリの特徴や比較がされていて、自分の用途・目的に合わせてどの形態素解析器が良いか意思決定する際に有用。

特にスライド最後の「おわりに」ページにおいて、要点が非常に簡潔にまとまっているため参照のこと。




My Issue
#Article #Tools #Library #python #Reference Collection Issue Date: 2021-06-05 Comment

【PyTorchでたまに使うけどググって情報探すのに時間かかるやつ】

https://trap.jp/post/1122/



- scatter_add, einsum, Bilinear あたりが説明されている

【NLLossの細かい挙動】

https://tatsukawa.hatenablog.com/entry/2020/04/06/054700

【PyTorchで絶対nanを出したいマン】

https://qiita.com/syoamakase/items/40a716f93dc8afa8fd12



PyTorchでnanが出てしまう原因とその対策が色々書いてある

【pipで様々なCuda versionのpytorchをinstallする方法】

https://stackoverflow.com/questions/65980206/cuda-10-2-not-recognised-on-pip-installed-pytorch-1-7-1




Paper/Blog Link My Issue
#Article #Blog #KeyPoint Notes Issue Date: 2021-06-03 Comment

Skip Connectionは

- 推論時のメモリ消費量が増える
- 推論時に計算量の割に実際の計算が重たくなりがち(特にDNN専用アクセラレーターにおいてその傾向がありがち)

というデメリットがあり、SkipConnection無しで性能を出したいことから、様々な研究が行われている模様。

ResNetを学習し、それを教師としてPlainCNNを学習するResidual Distillationが決定版らしい(普通のDistillationでは最終層の類似度のみを用いるが、生徒ネットワークの中間層の出力を教師ネットワークに入れてからbackpropして勾配を得る)。

50層のPlainCNNで、ResNet50とほぼ同等のtop-1 accuracyを達成。
メモリ消費量は20%弱削減され、実行速度は20〜30%程度高速になる。




Paper/Blog Link My Issue
#Article #EducationalDataMining #LearningAnalytics #StudentPerformancePrediction #KnowledgeTracing #KeyPoint Notes Issue Date: 2021-05-30 Comment

Learner Modelingに関するチュートリアル。Learner Modelingの典型的なコンテキストや、KCにどのような種類があるか(KLI Frameworkに基づいた場合)、learner modeling techniques (BKTやPFA等)のチュートリアルなどが記載されている(Figure 1,2,3,4, Table 1,2)。

knowledgeをmodelingする際に利用されるデータの典型的な構造

image



donain modelingの典型的なアプローチ

image



モデルのaspectと、model purposes, learning processesのrelevanceを図示したもの。色が濃いほうが重要度が高い

image



Learner ModelingのMetrics

image



cross validation方法の適用方法(同じ学習者内と、異なる学習者間での違い。学習者内での予測性能を見たいのか、学習者間での汎化性能を見たいのかで変わるはず)

image

BKT、PFAや、それらを用いるContext(どのモデルをどのように自分のcontextに合わせて選択するか)、KLI Frameworkに基づくKCの構成のされ方、モデル評価方法等を理解したい場合、読んだほうが良さそう?

ざっとしか見ていないけど、重要な情報がめちゃめちゃ書いてありそう。後でしっかり読む・・・。




Paper/Blog Link My Issue
#Article #NeuralNetwork #ComputerVision #EfficiencyImprovement #Blog #ImageClassification #One-Line Notes Issue Date: 2021-05-24 Comment

既存画像認識モデルの構造は変化させず、広さ、深さ、解像度を複合スケーリングすることで、従来よりも少ないパラメータ数、かつ学習速度でSoTAを達成。広さ、深さ、解像度はそれぞれ性能に互いに影響しあっており、従来のように別々にスケーリングするのではなく、3つのバランスをとりながらスケーリングする。スケーリングする際は、結果的にはそれぞれをある値で定数倍すれば良く、そのある値は最大メモリや最大FLOPS数以下(およびFLOPSが2のΦ乗で増加するような)といった制約下でAccuracyが最大化される値をグリッドサーチで見つける(らしい。ざっくりとした理解)。
転移学習しても多くのタスクでSoTA達成した。




Paper/Blog Link My Issue
#Article #RecommenderSystems #Tools #Dataset #Slide #One-Line Notes Issue Date: 2020-08-29 Comment

機械学習による予測精度ではなく、機械学習モデルによって生じる意思決定を、過去の蓄積されたデータから評価する(Off policy Evaluation)の、tutorialおよび実装、データセットについて紹介。
このような観点は実務上あるし、見落としがちだと思うので、とても興味深い。




Paper/Blog Link My Issue
#Article #EfficiencyImprovement #MachineLearning #Slide #kNN #Reference Collection #Initial Impression Notes Issue Date: 2020-07-30 Comment

k-NNベースドなRecommender Systemを構築したけど、Inferenceに時間がかかって、先方のレスポンスタイムの要求が満たせない...というときに役に立ちそう。

yahooのNGTといった実装も転がっている(Apache-2.0 License):

https://techblog.yahoo.co.jp/data_solution/ngtpython/

ScaNNという手法もあるらしい(SoTA)
https://ai-scholar.tech/articles/vector-search/scann




Paper/Blog Link My Issue
#Article #NLP #LanguageModel #Slide #Reference Collection #Reading Reflections Issue Date: 2020-01-13 Comment

自然言語処理の王様「BERT」の論文を徹底解説

https://qiita.com/omiita/items/72998858efc19a368e50

Transformer関連 [Paper Note] Attention Is All You Need, Ashish Vaswani+, NeurIPS'17, 2017.07 あたりを先に読んでからが読むと良い



要は

・Transformerをたくさん積んだモデル

・NSPとMLMで双方向性を持った事前学習タスクを実施することで性能向上

・pooler layer(Transformer Encoderの次にくっつくlayer)を切り替えることで、様々なタスクにfine-tuning可能(i.e. pooler layerは転移学習の対象外)

・予測する際は、[CLS]トークンに対応する位置の出力を用いて分類問題や複数文間の関係性を問う問題を解いたり、各トークン位置に対応する出力を用いてQAの正解spanを予測したり、色々できる

・gMLP MLP-like Architecture あたりの研究が進んでくると使われなくなってくる可能性有

こっちの記事もわかりやすい。



BERTについて勉強したことまとめ (2)モデル構造について

https://engineering.mobalab.net/2020/06/12/bert%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E5%8B%89%E5%BC%B7%E3%81%97%E3%81%9F%E3%81%93%E3%81%A8%E3%81%BE%E3%81%A8%E3%82%81-2%E3%83%A2%E3%83%87%E3%83%AB%E6%A7%8B%E9%80%A0%E3%81%AB%E3%81%A4%E3%81%84/




Paper/Blog Link My Issue
#Article #RecommenderSystems #Explanation #Selected Papers/Blogs #Initial Impression Notes Issue Date: 2019-01-23 Comment

Recommender Systems HandbookのChapter。[Paper Note] A Survey of Explanations in Recommender Systems, Tintarev+, ICDEW'07 のSurveyと同じ著者による執筆。

推薦のExplanationといえばこの人というイメージ。

D論: http://navatintarev.com/papers/Nava%20Tintarev_PhD_Thesis_(2010).pdf




Paper/Blog Link My Issue
#Article #MachineLearning #OnlineLearning #One-Line Notes Issue Date: 2017-12-31 Comment

## 目次

定式化

評価法:Regretなど

パーセプトロン

Passive Aggressive Algorithm

(アルゴリズムと損失の限界の評価)

Confidence Weighted Algorithm

Pegasos

Coordinate Descent

バッチ、オンライン、ストリームの比較

ビッグデータへの対応