# Process Discovery for Event Logs with Multi-Occurrence Event Types
## 4 Test Experiments
### Tests on Prediction of Equivalence  
For the prediction of the \(\Lambda\) equivalence, we built up the architecture containing four main modules. There are three modules to process the context features related to the event \begin{table}
\begin{tabular}{l l} \hline \hline
**Schema** & **Complexity** \\ \hline
[“\%’, 'a’, 'X’, [[\"a’], [\"b’], 'd’, 'e’, \"#’] & (1, 0): \(\chi^{1}\)L\({}^{0}\) \\
[“\%’, 'a’, 'c’, d’, L, [[\"a\"], [\"b\"]], 'c’, \"#’] & (1, 1): \(\chi^{1}\)L\({}^{1}\) \\
[”\%’, 'a’, 'X’, [[\"f’], [b’, 'X’, [[\"], [\"]], 'i’]],'s’, \"#’] & (2, 0): \(\chi^{2}\)L\({}^{0}\) \\
[“\%’, 'e’, L’, [[’a’, 'b’, 'L’, [[\"x’, 'y’, 'L’, [[’o’, 'i’]]], 'c’], [’x’, 'b’]], ’f’, \"#’] & (1, 3): \(\chi^{1}\)L \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Sample for complexity calculations. types. One module is for the input context, one is for the output context, and one combines both directions. We have four input contexts; three of them are assigned to the mentioned three modules. The fourth input contains a context generated by the loop detection module. It shows the chance of the loop existence. The main neural network block will process the concatenation of the three outputs plus the fourth context as input for the link prediction. The code outline is presented in the Listing 1. ```
input_shape1=(2*wsize,2*wsize,1) input_shape2=(wsize,wsize,1) input_shape3=(2,)
```  
\(I1\) = Input (shape = input_shape1, name = \"I1\")  
\(L11\) = Conv2D (32, (2, 2), activation ='relu', padding ='same', name = \"L11\") (I1)  
\(L12\) = MaxPooling2D ((2, 2), name = \"L12\") (L11)  
\(L13\) = Conv2D (64, (3, 3), activation ='relu', name = \"L13\") (L12)  
\(L14\) = MaxPooling2D ((2, 2), name = \"L14\") (L13)  
\(L15\) = Flatten (name = \"L15\") (L14)  
\(L16\) = Dense (128, activation ='relu', name = \"L16\") (L15)  
\(L17\) = Dropout (0.5, name = \"L17\") (L16)  
\(O1\) = Dense (2, activation ='softmax', name = \"O1\") (L17)  
\(I2\) = Input (shape = input_shape2, name = \"I2\")  
\(L21\) = Conv2D (32, (2, 2), activation ='relu', padding ='same', name = \"L21\") (I2)  
\(L22\) = MaxPooling2D ((2, 2), name = \"L22\") (L21)  
\(L23\) = Conv2D (64, (3, 3), activation ='relu', name = \"L23\") (L22)  
\(L25\) = Flatten (name = \"L25\") (L23)  
\(L26\) = Dense (128, activation ='relu', name = \"L26\") (L25)  
\(L27\) = Dropout (0.5, name = \"L27\") (L26)  
\(O2\) = Dense (2, activation ='softmax', name = \"O2\") (L27)  
\(I3\) = Input (shape = input_shape2, name = \"I3\")  
\(L31\) = Conv2D (32, (2, 2), activation ='relu', padding ='same', name = \"L31\") (I3)  
\(L32\) = MaxPooling2D ((2, 2), name = \"L32\") (L31)  
\(L33\) = Conv2D (64, (3, 3), activation ='relu', name = \"L33\") (L32)  
\(L35\) = Flatten (name = \"L35\") (L33)  
\(L36\) = Dense (128, activation ='relu', name = \"L36\") (L35)  
\(L37\) = Dropout (0.5, name = \"L37\") (L36)  
\(O3\) = Dense (2, activation ='softmax', name = \"O3\") (L37)  
\(I4\) = Input (shape = input_shape3, name = \"I4\")  
\(X1\) = Concatenate (name = \"X1\") ([O1, O2, O3, I4])  
\(X2\) = Dense (16, activation ='relu', name = \"X2\") (X1)  
\(O\) = Dense (2, activation ='sigmoid', name = \"O\") (X2)  
\(model1\) = Model (inputs = \(\Pi\), outputs = O1)  
\(model2\) = Model (inputs = \(\Pi\), outputs = O2)  
\(model3\) = Model (inputs = \(\Pi\), outputs = O3)  
\(model4\) = Model (inputs = \(\Pi\), 12, 13, I4], outputs = O)In the training phase, we first trained the model1, model2, and model3 components separately. In the second phase, we changed these models to be frozen and only trained the main model. In the first tests, we investigated the accuracy of the proposed embedding and similarity methods. We involved two widely used benchmark embedding methods used in heterogeneous graphs containing labeled nodes. These two methods are the Hin2 Vec and GraphSAGE methods.