Trường: Đại học Công Nghệ Thông Tin - Đại học Quốc gia Hồ Chí Minh
Lớp: SE505.K21 (Khóa luận tốt nghiệp)
Giảng viên hướng dẫn: TS. Huỳnh Ngọc Tín
Nhóm sinh viên thực hiện: Nguyễn Hữu Đạt - 15520104
Khởi động chương trình minh họa: python src/main.py
Chạy thuật toán và đánh giá: python src/train.py
Ghi chú: Do Github không cho phép đăng tệp có kích thước hơn 100MB nên bạn đọc vui lòng tải mô hình đã huấn luyện tại Google Drive và đặt vào thư mục public/.
Tài liệu:
Trong nghiên cứu khoa học, việc cộng tác đem lại nhiều lợi ích cho các nhà nghiên cứu khi chung tay thực hiện công trình nghiên cứu của mình. Dần theo thời gian, kho dữ liệu bài báo khoa học trở nên khổng lồ và kích thước tăng đáng kể. Do đó, bài toán khuyến nghị cộng tác dần nhận được quan tâm bởi các nhà khoa học. Và cũng theo xu hướng, sự ra đời phương pháp học sâu Node2vec cũng đang nhận được nhiều sự quan tâm của các nhà nghiên cứu. Nhất là các nghiên cứu viên nghiên cứu đề tài trong lĩnh vực khoa học máy tính. Bản thân Node2vec cũng có một số công trình nghiên cứu kế thừa nhằm giải quyết thách thức và khó khăn mà Node2vec còn bỏ ngỏ. Việc khuyến nghị cộng tác dựa trên tiếp cận học sâu Node2vec sẽ giúp hỗ trợ cộng đồng học thuật trong việc nghiên cứu ứng dụng của Node2vec. Đồng thời, việc so sánh Node2vec với một số phương pháp truyền thống khi giải quyết bài toán khuyến nghị cộng tác sẽ làm nổi bật ưu nhược điểm của Node2vec so với các phương pháp truyền thống. Nhờ vào đó, các nghiên cứu viên/ nhà phát triển có thể chọn lựa sử dụng giữa Node2vec và phương pháp truyền thống trong khuyến nghị cộng tác.
Nhằm để hiện thực hóa kết quả đầu ra sau khi huấn luyện mô hình Node2vec, em xây dựng phần mềm weCoNet nhằm thực hiện khuyến nghị Top10 nghiên cứu viên cho từng nghiên cứu viên trong tập gồm 319,247 nghiên cứu viên dựa trên mô hình Node2vec đã học được từ mạng đồng tác giả cho trước (mô tả trong Báo cáo Khóa Luận Tốt Nghiệp Khuyến Nghị Cộng Tác Dựa Trên Tiếp Cận Học Sâu).
Youtube Xem thêm trình chiếu sử dụng phần mềm weCoNet tại: Youtube
Tập dữ liệu
Tên | Số liên kết cộng tác | Thời gian xét | Số nghiên cứu viên |
---|---|---|---|
Huấn luyện | 1,042,092 | 2014-2015 | 319,247 |
Đánh giá | 290,502 | 2016 | 114,327 |
Chức năng
- Xem danh sách khuyến nghị: Phần mềm sẽ cho xem danh sách khuyến nghị Top10 của 1 nghiên cứu viên bất kì từ tập huấn luyện
- Xem kết quả khuyến nghị: Phần mềm sẽ cho xem kết quả khuyến nghị của từng khuyến nghị. Cụ thể như sau:
Kí hiệu | Mô tả |
---|---|
True-positive | Nghiên cứu viên và ứng viên cộng tác thực sự cộng tác năm 2016 |
False-positive | Nghiên cứu viên và ứng viên cộng tác KHÔNG cộng tác năm 2016 |
Acquantaince | Nghiên cứu viên và ứng viên cộng tác có cộng tác năm 2014-2015 |
Công nghệ
- Python phiên bản 3.7.3
Cơ sở dữ liệu
Thư viện
Thư viện | Phiên bản | Trang chủ |
---|---|---|
Networkx | 2.2 | Trang chủ |
Numpy | 1.15.1 | Trang chủ |
Py2neo | 4.3.0 | Trang chủ |
Tkinter | ------- | Trang chủ |
Thư mục
Tên | Ý nghĩa | Đường dẫn |
---|---|---|
src/components | Những thành phần dùng để hiển thị trên màn hình | Đường dẫn |
src/controllers | Xử lý logic giữa phần mềm và cơ sở dữ liệu | Đường dẫn |
src/models | Các thuật toán khuyến nghị cộng tác | Đường dẫn |
src/screens | Các màn hình | Đường dẫn |
src/services | Tương tác cơ sở dữ liệu | Đường dẫn |
src/utils | Công cụ hỗ trợ khác: Thời gian, kết nối CSDL, ... | Đường dẫn |
Thuật toán khuyến nghị
Thuật toán | Mô tả | Mã nguồn |
---|---|---|
Node2vec | Tham khảo từ trang nguồn | node2vec.py |
Content-based | Xem Chương 2 Báo cáo docx | node2vec.py |
Adamic Adar | Xem Chương 2 Báo cáo docx | adamic.py |
Jaccard Coefficient | Xem Chương 2 Báo cáo docx | jaccard.py |
Common Neighbors | Xem Chương 2 Báo cáo docx | common_neighbor.py |
**Kết quả thực nghiệm: **
Thuật toán | Precision | Recall | F-Measure |
---|---|---|---|
Content-based | 0.36 | 0.35 | 0.33 |
Common Neighbors | 0.19 | 0.33 | 0.24 |
Adamic Adar | 0.2 | 0.35 | 0.25 |
Jaccard Coefficient | 0.17 | 0.29 | 0.21 |
Node2vec | 0.17 | 0.35 | 0.23 |