{"id":18439455,"url":"https://github.com/idiap/node_weighted_gcn_for_depression_detection","last_synced_at":"2026-01-23T16:37:15.358Z","repository":{"id":189970662,"uuid":"647678467","full_name":"idiap/Node_weighted_GCN_for_depression_detection","owner":"idiap","description":"Node-weighted Graph Convolutional Network for Depression Detection in Transcribed Clinical Interviews","archived":false,"fork":false,"pushed_at":"2025-05-16T13:22:09.000Z","size":9186,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-16T14:37:28.723Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/idiap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-31T09:41:54.000Z","updated_at":"2025-05-16T13:22:13.000Z","dependencies_parsed_at":"2024-04-24T10:41:41.657Z","dependency_job_id":null,"html_url":"https://github.com/idiap/Node_weighted_GCN_for_depression_detection","commit_stats":null,"previous_names":["idiap/node_weighted_gcn_for_depression_detection"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/idiap/Node_weighted_GCN_for_depression_detection","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idiap%2FNode_weighted_GCN_for_depression_detection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idiap%2FNode_weighted_GCN_for_depression_detection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idiap%2FNode_weighted_GCN_for_depression_detection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idiap%2FNode_weighted_GCN_for_depression_detection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/idiap","download_url":"https://codeload.github.com/idiap/Node_weighted_GCN_for_depression_detection/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idiap%2FNode_weighted_GCN_for_depression_detection/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28695612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T15:57:05.722Z","status":"ssl_error","status_checked_at":"2026-01-23T15:56:27.656Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T06:24:50.932Z","updated_at":"2026-01-23T16:37:15.352Z","avatar_url":"https://github.com/idiap.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Node-weighted Graph Convolutional Network for Depression Detection in Transcribed Clinical Interviews\n\n### Authors: \n\n#### *Sergio Burdisso, Esaú Villatoro-Tello, Srikanth Madikeri, Petr Motlicek*\n\n###### Paper accepted at [INTERSPEECH 2023 Conference](https://interspeech2023.org/) ([ARXIV Version](https://arxiv.org/abs/2307.00920)).\n\n_( :point_right: You might also be interested in [our more recent work](https://github.com/idiap/bias_in_daic-woz), presented at NAACL 2024.)_\n\n## Abstract\n\n\u003e We propose a simple approach for weighting self-connecting edges in a Graph Convolutional Network (GCN) and show its impact on depression detection from transcribed clinical interviews. To this end, we use a GCN for modeling non-consecutive and long-distance semantics to classify the transcriptions into depressed or control subjects. The proposed method aims to mitigate the limiting assumptions of locality and the equal importance of self-connections vs. edges to neighboring nodes in GCNs, while preserving attractive features such as low computational cost, data agnostic, and interpretability capabilities. We perform an exhaustive evaluation in two benchmark datasets. Results show that our approach consistently outperforms the vanilla GCN model as well as previously reported results, achieving an F1=0.84 on both datasets. Finally, a qualitative analysis illustrates the interpretability capabilities of the proposed approach and its alignment with previous findings in psychology.\n\n---\n## :computer: How to use?\n\n**IMPORTANT:** Be aware that for running the experiments you need to download the corresponding datasets and for generating the LIWC plots also the LIWC dictionary. Read the README files in [`data/`](data/) and [`plots/LIWC_plot`](plots/LIWC_plot) for more info.\n\nFirst, make sure your environment and dependencies are all set up:\n\n```bash\n$ conda env create -f conda_env.yaml\n$ conda activate gcndepression\n(gcndepression)$ pip install -r requirements.txt\n```\n\nThe script `main.py` contains the implementation of the InducT-GCN and the experimentation. To relpicate paper experiments, call the script first with no arguments to get the list of all possible configuration to run, for example:\n\n```bash\n$ python main.py\n\nThere's a total of 42 task options. List by task id:\n  1. Dataset=AVEC_16 (eval on devset); Features=all; Pagerank=True;\n  2. Dataset=AVEC_16 (eval on devset); Features=all; Pagerank=False;\n  3. Dataset=AVEC_16 (eval on devset); Features=auto; Pagerank=True;\n  4. Dataset=AVEC_16 (eval on devset); Features=auto; Pagerank=False;\n  5. Dataset=AVEC_16 (eval on devset); Features=top-100; Pagerank=True;\n  6. Dataset=AVEC_16 (eval on devset); Features=top-100; Pagerank=False;\n  ...\n```\n\nThen, select one option and call the script passing the index to the `-i` argument. For instance, suppose we want to run the experiment number 3 above, then we call main script simply as follows:\n\n```bash\n$ python main.py -i 3\n```\n\n**TIP:** you can use this indices to call multiple instances in parallel, each with different `-i` value.\n\nFor replicating baselines experiments, you can follow the exact same process but with the scripts `baselines-basic.py` and `baselines-bert.py` for replicating, respectively, the baselines with simple/classic models and with bert-based models. For instance:\n\n```bash\n$ python baselines-bert.py\n\nThere's a total of 36 task options. List by task id:\n  1. Dataset=AVEC_16 (eval on devset); Model: bert-base-cased; Finetuned=True;\n  2. Dataset=AVEC_16 (eval on devset); Model: bert-base-cased; Finetuned=False;\n  3. Dataset=AVEC_16 (eval on devset); Model: bert-base-uncased; Finetuned=True;\n  4. Dataset=AVEC_16 (eval on devset); Model: bert-base-uncased; Finetuned=False;\n  5. Dataset=AVEC_16 (eval on devset); Model: bert-large-cased; Finetuned=True;\n  6. Dataset=AVEC_16 (eval on devset); Model: bert-large-cased; Finetuned=False;\n  ...\n```\n\nThen, let's say I want to replicate option 6:\n\n```bash\n$ python baselines-bert.py -i 6\n```\n---\n### Plots\n\nPlots shown in the paper as well as interactive plots are located in the `plots` folder. The interactive plots are 4 for each dataset (AVEC_16 and AVEC_19):\n  - `AVEC_XX_data_plot_umap_3d[graph_250words].html` - 3D plot with the learned graph and embeddings.\n  - `AVEC_XX_data_plot_umap_3d[250word_embeddings].html` - 3D plot with the learned embeddings.\n  - `AVEC_XX_data_plot_umap[graph_250words].html` - 2D plot with the learned graph and embeddings.\n  - `AVEC_XX_data_plot_umap[250word_embeddings].html` - 2D plot with the learned embeddings.\nWhere XX is either 16 or 19.\n\nTo re-generated the plots you can use the script:\n\n```bash\n$ python plots_generator.py\n```\n\nTo generate the plot with distribution of LIWC categories learned by the model you can run the script located in the `plots/LIWC_plot` as follow:\n\n```bash\n$ cd plots/LIWC_plot\n$ python plot_generator.py\n```\n\n---\n### Optuna Results Reported in the paper\n\nThis repo also contains the original optuna sqlite database files (`db_baselines.sqlite3`, `db_inductgcn.sqlite3`) with results reported in the paper after optimization process, to read then simply call the dashboard with either of the files as follows:\n\n```bash\n$ optuna-dashboard sqlite:///db_inductgcn.sqlite3\n```\n\n---\n## :page_facing_up: Citation\n\nIf you found the paper and/or this repository useful, please consider citing our work: :blush::+1:\n\n```bibtex\n@inproceedings{burdisso23_interspeech,\n  title     = {Node-weighted Graph Convolutional Network for Depression Detection in Transcribed Clinical Interviews},\n  author    = {Sergio Burdisso and Esaú Villatoro-Tello and Srikanth Madikeri and Petr Motlicek},\n  year      = {2023},\n  booktitle = {Interspeech 2023},\n  pages     = {3617--3621},\n  doi       = {10.21437/Interspeech.2023-1923},\n  issn      = {2958-1796},\n}\n\n@inproceedings{burdisso-etal-2024-daic,\n    title = \"{DAIC}-{WOZ}: On the Validity of Using the Therapist`s prompts in Automatic Depression Detection from Clinical Interviews\",\n    author = \"Burdisso, Sergio  and\n      Reyes-Ram{\\'i}rez, Ernesto  and\n      Villatoro-tello, Esa{\\'u}  and\n      S{\\'a}nchez-Vega, Fernando  and\n      Lopez Monroy, Adrian  and\n      Motlicek, Petr\",\n    booktitle = \"Proceedings of the 6th Clinical Natural Language Processing Workshop\",\n    month = jun,\n    year = \"2024\",\n    address = \"Mexico City, Mexico\",\n    publisher = \"Association for Computational Linguistics\",\n    url = \"https://aclanthology.org/2024.clinicalnlp-1.8/\",\n    doi = \"10.18653/v1/2024.clinicalnlp-1.8\",\n    pages = \"82--90\"\n}\n```\n\n## :ticket: License\n\nCopyright (c) 2025 [Idiap Research Institute](https://www.idiap.ch/).\n\nApache-2.0 License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fidiap%2Fnode_weighted_gcn_for_depression_detection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fidiap%2Fnode_weighted_gcn_for_depression_detection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fidiap%2Fnode_weighted_gcn_for_depression_detection/lists"}