Files
2026-07-13 13:35:51 +08:00

85 lines
2.9 KiB
Markdown

# DGL Implementation of the TAHIN
This DGL example implements the TAHIN module proposed in the paper [HCDIR](https://arxiv.org/pdf/2007.15293.pdf). Since the code and dataset have not been published yet, we implement its main idea and experiment on two other datasets.
Example implementor
----------------------
This example was implemented by [KounianhuaDu](https://github.com/KounianhuaDu) during her software development intern time at the AWS Shanghai AI Lab.
Dependencies
----------------------
- pytorch 1.7.1
- dgl 0.6.0
- scikit-learn 0.22.1
Datasets
---------------------------------------
The datasets used can be downloaded from [here](https://github.com/librahu/HIN-Datasets-for-Recommendation-and-Network-Embedding). For the experiments, all the positive edges are fetched and the same number of negative edges are randomly sampled. The edges are then shuffled and splitted into train/validate/test at a ratio of 6:2:2. The positive edges that appear in the validation and test sets are then removed from the original graph.
The original graph statistics:
**Movielens**
(Source : https://grouplens.org/datasets/movielens/)
| Entity |#Entity |
| :-------------:|:-------------:|
| User | 943 |
| Age | 8 |
| Occupation | 21 |
| Movie | 1,682 |
| Genre | 18 |
| Relation |#Relation |
| :-------------: |:-------------:|
| User - Movie | 100,000 |
| User - User (KNN) | 47,150 |
| User - Age | 943 |
| User - Occupation | 943 |
| Movie - Movie (KNN) | 82,798 |
| Movie - Genre | 2,861 |
**Amazon**
(Source : http://jmcauley.ucsd.edu/data/amazon/)
| Entity |#Entity |
| :-------------:|:-------------:|
| User | 6,170 |
| Item | 2,753 |
| View | 3,857 |
| Category | 22 |
| Brand | 334 |
| Relation |#Relation |
| :-------------: |:-------------:|
| User - Item | 195,791 |
| Item - View | 5,694 |
| Item - Category | 5,508 |
| Item - Brand | 2,753 |
How to run
--------------------------------
```python
python main.py --dataset amazon --gpu 0
```
```python
python main.py --dataset movielens --gpu 0
```
Performance
-------------------------
**Results**
| Dataset | Movielens | Amazon |
|---------| ------------------------ | ------------------------ |
| Metric | HAN / TAHIN | HAN / TAHIN |
| AUC | 0.9297 / 0.9392 | 0.8470 / 0.8442 |
| ACC | 0.8627 / 0.8683 | 0.7672 / 0.7619 |
| F1 | 0.8631 / 0.8707 | 0.7628 / 0.7499 |
| Logloss | 0.3689 / 0.3266 | 0.5311 / 0.5150 |