## 3 The Proposed Model
### Recommendation Model  
Through the above feature extraction modules, we obtained feature vectors from three distinct dimensions. For the textual and visual features, we designed a multi-head self-attention module [30]. The multi-head self-attention mechanism aids in capturing subtle feature information within single-modal features, with each head representing an independent subspace that can apply feature weighting to different regions of the input feature vector. By employing the same multi-head self-attention module for both textual and visual features, and leveraging the weight-sharing mechanism of the self-attention module, we not only perform weighted scaling on the feature vectors by MLP [36], but also facilitate information interaction between the two modalities through the self-attention layer [37]. This approach helps establish connections between textual and visual features. For the base model of our recommendation algorithm, we considered the need to integrate multiple dimensions and types of feature data, and thus decided to reference the DeepFM model structure. Starting with the multi-modal feature combination input, we designed a series of embedding layers and fully connected layers to map and transform the input feature vectors. For the sparse feature matrix input [38], we designed two sets of embedding layers to convert discrete, high-dimensional sparse vectors into continuous, low-dimensional dense vectors. The first embedding layer maps each sparse feature into a vector of dimension \(d_{\text{s1}}=1\), denoted as \(embed_{\text{s1}}\), which is used for the first-order summation in the FM module. The second embedding layer projects each sparse feature into a vector of dimension \(d_{\text{s2}}=n\), denoted as \(embed_{\text{s2}}\), which is passed to the second-order summation module and the DNN module of the FM. For the dense textual and visual features of the clothing data, we also designed two sets of fully connected layers. The first set of fully connected layers concatenates all received dense features and maps them into a vector of dimension \(d_{\text{d1}}\), denoted as \(embed_{\text{d1}}\), which is used for the first-order summation in the FM module. The second set of fully connected layers maps each received dense feature individually, generating new low-dimensional dense feature representations \(embed_{\text{d2}}\) with dimension \(d_{\text{d2}}=m\), which are passed to the second-order summation module and the DNN module of the FM. To balance computational performance and accuracy, we adjusted the hyperparameters \(d_{\text{s2}}=n\) and \(d_{\text{d2}}=m\). For the sparse features represented by \(d_{\text{s2}}=n\), we categorized them into ID-type features and statistical-type features based on their data type and statistical quantity. For ID-type features, we set the vector dimension \(d_{\text{s2}\_1}=8\) to obtain the vector \(embed_{\text{s2}\_1}\), while for statistical-type features, we set the vector dimension \(d_{\text{s2}\_2}=3\) to obtain the vector \(embed_{\text{s2}\_2}\). Following the above steps, we obtained four sets of vectors computed through different modules. By concatenating \(embed_{\text{s2}\_1}\), \(embed_{\text{s2}\_2}\) and \(embed_{\text{d2}}\) along the first dimension, we derived a new vector \(embed_{\text{2}}\). In the DeepFM model, the computation module is primarily divided into two components: FM and DNN. In the FM module, we first perform a statistical summation on \(embed_{\text{s1}}\) (obtained by mapping sparse features through the embedding layer) and \(embed_{\text{d1}}\) (obtained by mapping dense features through the fully connected layer) to compute the first-order summation result \(score1\):  
\[linear_{part}=\sum_{i=1}^{d}v_{i}\]  
In the second-order interaction module of the FM, we first compute the square of the sum of the newly concatenated vector \(embed_{\text{2}}\) to capture the interactions between all feature pairs.