## 3 Materials and Methods
### PreferSAGE-SCF
#### 3.3.3 PreferSAGE Aggregation  
After sampling positive and negative samples, as well as neighboring nodes, the next step is to aggregate neighbors' information. PreferSAGE uses local feature aggregation, which aggregates subgraphs generated by sampled nodes. This paper designs PreferSAGE as a three-layer nodes features aggregation structure, and the aggregation process refers to the PinSAGE algorithm, with some improvements made. In order to alleviate the problem of information loss caused by multiple convolution operations in the information aggregation process, a skip-connection connecting the outermost nodes features was added before the final activation function, retaining the detailed information in the original input data and making it easier for information to propagate backwards. The aggregation process of the PreferSAGE model is shown in Figure 3, and the algorithm flow is shown in Algorithm 1.  
```
0: Nodes embedding \(z_{u}\); neighbors weight \(\alpha\), aggregate function \(\gamma\)
0: New nodes embedding \(z_{u}^{(1)}\)
1:\(n_{u}^{(3)}\leftarrow\gamma(ReLU(Q_{2}\cdot dropout(z_{u}^{(3)})+q_{2}),\alpha)\)
2:\(z_{u}^{(2)}\gets ReLU(W_{2}\cdot dropout(concat(z_{u}^{(2)},n_{u}^{(3)})) +w_{2})\)
3:\(z_{u}^{(2)}\leftarrow z_{u}^{(2)}/\|z_{u}^{(2)}\|_{2}\)
4:\(n_{u}^{(2)}\leftarrow\gamma(ReLU(Q_{1}\cdot dropout(z_{u}^{(2)})+q_{1}),\alpha)\)
5:\(z_{u}^{(1)}\leftarrow ReLU(W_{1}\cdot dropout(concat(z_{u}^{(1)},n_{u}^{(2)})) +w_{1}+pooling(z_{u}^{(3)}))\)
6:\(z_{u}^{(1)}\leftarrow z_{u}^{(1)}/\|z_{u}^{(1)}\|_{2}\)
```  
**Algorithm 1** PreferSAGE aggregation  
Figure 3: The aggregation process of the PreferSAGE model.  
Node embedding are obtained by summing the node features embedding. The nodes embedding of the third layer go through a dropout layer and are then transformed using a fully connected layer and activated. At this point, the calculation of the third layer nodes is completed (line 1). Subsequently, the results are aggregated using an aggregation function with weights normalized by the number of hits, which is called importance pooling [9]. This method can enhance the influence of important node information during propagation. Afterwards, the aggregated result \(n_{u}^{(3)}\) is concatenated with the nodes embedding of the second layer through a concatenate operation [33]. The operation result is transformed and activated using another fully connected layer after passing through a dropout layer (line 2), and the activated features are normalized (line 3) to obtain the nodes embedding of the second layer. The information propagation process from the second-layer nodes to the first-layer nodes is similar to before, but the difference is that it needs to sum the original nodes embedding of the third layer before the final activation function, and then the activation operation is performed (line 5). Finally, the activated results are normalized (line 6), and the entire aggregation process is completed.  
Due to the inconsistency between the number of nodes in the third layer and the number of nodes in the first layer, direct operations cannot be performed. Therefore, before aggregating the features of the first layer and the third layer, a pooling layer needs to be added to perform pooling operations on the features of the third-layer nodes. The optional forms of pooling layers include average pooling, maximum pooling, etc., and this paper uses average pooling in experiments.