Relation extraction (RE) is a fundamental task in natural language processing (NLP) that seeks to identify and categorize relationships among entities referenced in the text. Traditionally, RE has relied on rule-based systems. Still, recently, a variety of deep learning approaches have been employed, including recurrent neural networks (RNNs), convolutional neural networks (CNNs), and bidirectional encoder representations from transformers (BERT). This review aims to provide a comprehensive overview of relation extraction, focusing on deep learning models. Given the complexity of the RE problem, we will present it from a multi-dimensional perspective, covering model steps, relation types, method types, benchmark datasets, and applications. We will also highlight both historical and current research in the field, identifying promising research areas for further development and emerging directions. Specifically, we will focus on potential enhancements for relation extraction from poorly labeled data and provide a detailed assessment of current shortcomings in handling complex real-world situations.