自然言語処理(NLP)におけるニューラルネットワークのこれまでと大規模言語モデル(LLM) 

# はじめに
大規模言語モデル(LLM)を理解する上で、自然言語処理(NLP)の概念理解・サーベイ論文読んでみることは非常に有用だと考えています。
私自身、元々ニューラルネットワークについてさえあまり分かっていなかったですが、NLPの理解から始めたことでLLMのアーキテクチャなどもスムーズに理解することができました。なお、NLPの理解は主に『ゼロから作る　Deep Learning ②』を読んで身に着けました。本記事のNLPの部分も省いている部分は多いですが、この本の内容に沿って記載しています。
今回はNLPにおけるニューラルネットワークがどのようなマイルストーンを辿ってきたか、またLLMのサーベイ論文についていくつか紹介できればと思います。


# 自然言語処理(NLP)におけるニューラルネットワークのこれまで
自然言語処理(NLP)とは、人間と同じようにテキストや音声言語を理解できる機能をコンピューターに与えることで、それらを解析し、生成など行う技術です。

人間の言葉を理解するためには、まずは単語の意味を理解させる(うまく捉えて表現する)必要があるということでこれまで様々な手法が検討されてきました。例えば、word2vecでは推論ベースの手法として周囲の単語（コンテキスト）が与えられた際には、そこにどのような単語が出現するのかを予測します。

ここで重要なポイントが分散表現、つまり単語をベクトル化して処理するということです。また、これには「単語の意味は周囲の単語によって形成される」という分布仮説の考えが基づいています。

## NLPモデルにおける主要マイルストーン
ここでは、NLPモデルにおける主要マイルストーンを4つに分けて簡単に紹介します。
### リカレントニューラルネットワーク(RNN)
RNNではループする経路を持ち、データが絶えず循環することで過去の情報を記憶しながら最新のデータへと更新します。そして、RNNのループ経路を展開することで通常の誤差逆伝播法による学習(BPTT)が可能となり、長い時系列データを学習する際はブロック単位でBPTTによる学習を行います(Truncated BPTT)。なお、RNNでは前時刻に計算した結果を用いて逐次的に計算を行うため、時間方向で並列的に計算することは基本的にはできないとされています。


### Sequence To Sequence(with RNN)
RNNやLSTM単独では翻訳など別時系列のデータを扱うことはできないという問題があるため、Seq2seqではEncoderとDecoderにRNNを用いて、時系列データを別の時系列データに変換します。Encoderは時系列データをh(隠れベクトル)に変換(エンコード)し、その情報をDecoderが受け取りデコードして目的の出力文を得ることができます。エンコード時のベクトルhはRNNレイヤの最後の隠れ状態hであり、任意の長さの文章を固定長のベクトルに変換します。

### Seq2seq(with Attention)
Seq2seqではEncoderの出力が「固定長のベクトル」であるため、入力文の長さに関わらず、常に同じ長さのベクトルに変換しなければならないという問題があります。
ここでAttentionという考え方が登場し、Encoder, Decoderにそれぞれ以下の改良を加えています。
Encoderでは、各時刻のRNNレイヤの隠れ状態ベクトルをすべて利用します。また、Decoderではすべてを選んだ上で各単語の重要度を表す「重み」を計算し、単語ベクトルの重み付き和を計算します。また、この重みを求めるために、Encoderで出力されるRNNレイヤの隠れ状態ベクトルとDecoderにおけるRNNレイヤの隠れ状態ベクトルの内積を計算し類似度を算出します。
まとめると、Decoderには最後の隠れ層の状態だけではなくすべてを渡して、Decoderはそれを適切に選び取るということです。そして、適切に選び出すために単語ベクトルの重み付き和が計算されます。

### Transformer
最後にTransformerです。TransformerもRNNと同様に、自然言語などの時系列データを処理するように設計されていますが、RNNで用いる再帰やCNNで用いる畳み込みは使用せず、Attention層のみで構築されています。なぜAttentionのみで構築するのかというと、簡単に言えば並列処理による計算の高速化と品質向上のためです。Attentionメカニズムは、各要素間の関連性を計算するために行列演算を使用するため、シーケンス内の各要素に対する注意の重みを同時に計算できます。なお、高速化を目指した過程でAttention付きCNNも考案されたそうですが、長文の依存関係モデルを構築することが難しいという別の問題が生じ、結局抜本的な解決には至らなかったそうです。
TransformerはLLMを理解する上でも非常に重要ですが、Transformerを理解するにはAttention(Self attention etc.)の概念も理解する必要があります。ここでは割愛させて頂きます。

## 上記関連論文
1. Sequence to sequence learning with neural networks : https://arxiv.org/abs/1409.3215
Sutskever, Ilya, Oriol Vinyals, and Quoc V. Le. "Sequence to sequence learning with neural networks." Advances in neural information processing systems 27 (2014).
2. Attention Is All You Need : https://arxiv.org/abs/1706.03762
Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems 30 (2017).
3. A Survey of Transformers : https://arxiv.org/abs/2106.04554
Lin, Tianyang, et al. "A survey of transformers." AI Open (2022).

# LLMサーベイ紹介
これまでNLPについて簡単に説明しましたが、LLMとひとことに言ってもそのアーキテクチャはモデルによっても異なり、上記のような概念理解はその理解を促進してくれると考えています。
最後に、LLMにおけるサーベイ論文をいくつか絞って記載できればと思います。サーベイ論文は中には50ページを超えるものもあり、読むのは少し大変ですがその領域を体系化して学ぶ際には非常に有用だと考えています。

1. A Survey of Large Language Models : https://arxiv.org/abs/2303.18223
Zhao, Wayne Xin, et al. "A survey of large language models." arXiv preprint arXiv:2303.18223 (2023).
2. A Survey on Hallucination in Large Language Models: Principles, Taxonomy, Challenges, and Open Questions : https://arxiv.org/abs/2311.05232
Huang, Lei, et al. "A survey on hallucination in large language models: Principles, taxonomy, challenges, and open questions." arXiv preprint arXiv:2311.05232 (2023).
3. Data Management For Large Language Models: A Survey : https://arxiv.org/abs/2312.01700
Wang, Zige, et al. "Data Management For Large Language Models: A Survey." arXiv preprint arXiv:2312.01700 (2023).
4. Large language models for information retrieval: A survey : https://arxiv.org/abs/2308.07107
Zhu, Yutao, et al. "Large language models for information retrieval: A survey." arXiv preprint arXiv:2308.07107 (2023).
5. Survey on Factuality in Large Language Models: Knowledge, Retrieval and Domain-Specificity : https://arxiv.org/abs/2310.07521
Wang, Cunxiang, et al. "Survey on factuality in large language models: Knowledge, retrieval and domain-specificity." arXiv preprint arXiv:2310.07521 (2023).
6. Trends in Integration of Knowledge and Large Language Models: A Survey and Taxonomy of Methods, Benchmarks, and Applications : https://paperswithcode.com/paper/trends-in-integration-of-knowledge-and-large
Feng, Zhangyin, et al. "Trends in Integration of Knowledge and Large Language Models: A Survey and Taxonomy of Methods, Benchmarks, and Applications." arXiv preprint arXiv:2311.05876 (2023).

# 参考
斎藤 康毅(2020). 『ゼロから作る DeepLearning ②』オライリー・ジャパン
https://www.oreilly.co.jp/books/9784873118369/