1 Introduction  
2 Definition  
2.1 Sequential Single Interaction  
2.2 Sequential Multiple Interactions  
2.3 Parallel Interaction  
3 Retriever  
3.1 Sparse Retriever  
3.2 Dense Retriever  
3.3 Internet Retrieval  
3.4 Hybrid Retrieval  
4 Language Models  
4.1 Auto Encoder Language Model  
4.2 Auto Regressive Language Model  
4.3 Encoder-Decoder Language Model  
5 RALM Enhancement  
5.1 Retriever Enhancement  
5.2 LM Enhancement  
5.3 Overall Enhancement  
6 Data Sources  
6.1 Structured Data  
6.2 Unstructured Data  
7 Applications  
7.1 RALM on NLG Tasks  
7.2 RALM on NLU Tasks  
7.3 RALM on both NLU and NLG Tasks  
8 Evaluation  
9 Discussion  
9.1 Limitations  
9.2 Future Prospects  
10 Conclusion