# Multi-Feature-Enhanced Academic Paper Recommendation Model with Knowledge Graph
## 3 Approach of This Paper
### Knowledge Graph Information
#### 3.3.2 Utilization of Edge Information  
In academic paper recommendation systems, the edge information within the knowledge graph plays a crucial role. It reveals the complex patterns of interaction between academic entities through relationships such as citations between papers and author collaboration networks. This edge information not only enriches the semantics of the paper content but also has a significant impact on understanding user interests and enhancing the performance of the recommendation system. However, many existing recommendation systems have not fully leveraged this resource. Deep mining of edge information can evaluate the influence and academic value of papers, thereby improving the accuracy and personalization level of recommendations. It also helps to explore users' potential interests and effectively mitigates the cold start problem. Therefore, in the design of this academic paper recommendation system, by mining and integrating the edge information of the knowledge graph, the relevance of the recommendation results and user satisfaction are enhanced. Firstly, it is necessary to extract the feature information of nodes and edges from the knowledge graph constructed in Section 3.3.1. For each node (e.g., a paper or a user), collect its attributes (such as the field of the paper, the user's workplace, etc.). For each edge (e.g., citation relationships between papers, collaborations between authors, etc. ), extract its attributes (such as the number of citations, the strength of collaboration, etc.). Assuming in this knowledge graph that each edge \(e\) connects two nodes \(u\) and \(v\) and is associated with a set of attributes \(\{a_{1},a_{2},\ldots,a_{n}\}\), then the edge vector \(f_{e}\) can be constructed using Equation (20):  
\[f_{e}=\text{integrate}(\Phi(a_{1}),\Phi(a_{2}),\ldots,\Phi(a_{n})) \tag{20}\]  
In the aforementioned equation, \(\Phi\) represents the process of creating an embedding matrix for each type of attribute, where the number of rows is equal to the count of attributes, and the number of columns is the dimension of the embedding vector. This matrix is initially filled with simple pretrained embeddings and then refined by training a multi-layer perceptron (MLP) to adjust the embedding matrix. This results in obtaining the embeddings for the respective attributes. The term \"integrate\" refers to a self-attention layer that takes a collection of attribute embeddings as input, determines the importance of each attribute, normalizes these importance scores, and then performs a weighted combination to ultimately output the integrated edge vector \(f_{e}\). Subsequently, to capture the importance of edges in the recommendation system, an edge attention mechanism is introduced. This mechanism adjusts the attention weights between nodes based on the features of the edges. Specifically, for a neighbor node \(v\) of node \(u\), the attention weight \(\alpha_{uv}\) of edge \(e_{uv}\) can be calculated using Equation (21):  
\[\alpha_{uv}=\text{softmax}(\frac{\exp(f_{e}^{T}\text{W}_{e})}{\sum_{uv\in N(u )}\exp(f_{e_{uv}}^{T}\text{W}_{e})}) \tag{21}\]  
where \(\text{W}_{e}\) is a learnable weight matrix used to transform the edge feature vector, and \(N(v)\) is the set of neighboring nodes of node \(u\). By leveraging the edge attention weights, the features of the nodes can be updated. The knowledge graph node update formula in this paper, which incorporates edge information, is shown in Equation (22), and it is also the specific implementation of Equation (18), as discussed in Section 3.3.1. For a node \(u\), its updated feature \(h_{u}^{(l+1)}\) can be calculated by aggregating the features of its neighboring nodes \(v\) as well as the associated edge information:  
\[h_{u}^{(l+1)}=\sigma(\sum_{v\in N(u)}\alpha_{uv}W_{v}\text{h}_{v}^{(l)}\oplus f _{e}) \tag{22}\]  
where \(\text{W}_{v}\) is the node feature transformation matrix. \(h_{v}^{(l)}\) represents the feature vector of node \(v\) at layer \(l\).