## 1 Introduction  
In recent years, software development has become increasingly complex and collaborative, resulting in a growing dependency among elements. These dependencies are interconnected, with one component providing services necessary for another. For example, elements X, Y, and Z may have an interdependence, where Z provides services necessary for Y, and Y provides services necessary for X. Modifying a component can introduce errors and create incompatibilities with other parts of the software. To maintain compatibility, the programmer must fix these inconsistencies, but these fixes can also create new issues. This ripple effect of changes in software elements is often referred to as change propagation (CP) [1, 2]. The cost of change propagation in the software industry has been reported in the literature. Unforeseen and uncorrected inconsistencies can lead to software errors [3, 4] and, according to estimates, software maintenance costs account for more than 60% of the total cost of a product's life cycle. In addition, ripple effect analysis is responsible for approximately 40% of software maintenance costs [5], so it is important to use tools and analysis techniques to improve the quality of the change propagation process. Therefore, the ability to predict these change propagation effects is crucial for ensuring the stability and reliability of software systems. Scholars have used data from version control systems (VCSs) to examine the changes that software systems have undergone, which has facilitated the prediction of their characteristics [6; 7]. This can aid in identifying hidden dependencies or interactions in the system [8]. Several approaches have been proposed to analyze CP at different abstraction levels using various techniques. For example, a heuristic approach [9] was used to predict a change in one source code element propagating to other elements. [PERSON] et al. [10] developed a stochastic model known as K3B, which predicts how far a set of changes propagates throughout the system [11]. [PERSON] et al. [12] used the Bayesian belief network as a probabilistic tool to predict possible models of the affected system, given a change in the system at the package level. [PERSON] et al. [6] analyzed change coupling at the file level. [PERSON] et al. [5] proposed a class coupling network (CCN) model of the structure of software at the class level to evaluate the stability of the software. Previously, [PERSON] and [PERSON] [13] proposed a method to predict the change probability of software elements given the set of current edited files. To estimate the probability, they utilized a graphical model called a dependency network (DN). A DN provides an approximation method for estimating the joint distribution among random variables. It first learns the local distribution of each software element and combines them using Gibbs sampling for probabilistic inference. Although their approach provides a well-defined model for predicting change propagation, the DN-based approach has two major limitations: scalability issues when handling a large number of files and difficulties in interpreting complex and large models. As a result, the approach is limited to the package level, and its predictions are not specific enough to be useful at the granularity level where changes are implemented. To address this limitation, we introduce FCP2 Vec, which is inspired by the Word2 vec algorithm [14; 15]. Word2 vec is a shallow neural network that utilizes unsupervised learning to learn relationships between words within a sentence. Although not considered as a deep learning technique in the strictest sense, Word2 vec shares some similarities with deep learning models, such as its neural network foundation. The neural network learns from a collection of sentences to predict the surrounding words for each word in the sentence.