GithubHelp home page GithubHelp logo

doslim / job-recommendation-pjfnn Goto Github PK

View Code? Open in Web Editor NEW
16.0 1.0 2.0 3.81 MB

Several baseline models and PJFNN on Job Recommendation Challenge

Jupyter Notebook 100.00%
job-recommendation pytorch recommender-system

job-recommendation-pjfnn's Introduction

Job Recommendation PJFNN

This repository contains several baseline models and PJFNN (Person-Job Fit Neural Network from the paper: Person-Job Fit: Adapting the Right Talent for the Right Job with Joint Representation Learning) on the datasets from Job Recommendation Challenge.

Requirements and Structures

The following packages are required.

  • torch-1.11.0
  • nltk-3.6.5
  • gensim-3.8.3

The structure of our project is as follows.

  • code: contain all the code in the form of jupyter notebooks.
    • build_dataset.ipynb: a set of functions to build a small dataset from the original dataset.
    • baseline.ipynb: build and evaluate baseline models on the person-job fit task (binary classification).
    • ranking.ipynb: build and evaluate baseline models on the job recommendation task.
    • pjfnn.ipynb: build and evaluate modified PJFNN on the two tasks.
  • report.pdf: a brief report (in Chinese) of the details of our implementations and implementation results.

Usage

To run our codes, you should first download the datasets from Kaggle. And rewrite the data path in our codes (mostly in build_dataset.ipynb).

Results

We conduct our experiments on a subset of the original dataset, where we set the WindowID=6. Since the data only have the application records (positive samples), we carry out randomly negative sampling to build a dataset such that the ratio of postive and negative samples are 1:1. More details can be found in the build_dataset.ipynb.

We consider the following two tasks:

  • Person-Job Fit: the inputs are in the forms like (job, person), and the outputs are binary labels indicating that whether the people are suitable for the jobs.
  • Job Recommendation: the models are required to rank 20 randomly selected jobs for the given person.

We use classic metrics for binary classification in the person-job fit task and hit rate in the recommendation task.

Person-Job Fit

Accuracy Precision Recall F1-score AUC
Linear Regression 0.544 0.546 0.522 0.534 0.549
Logistic Regression 0.534 0.536 0.510 0.523 0.550
Naive Bayes 0.514 0.516 0.446 0.479 0.531
Decision Tree 0.605 0.609 0.590 0.599 0.631
Random Forest 0.637 0.634 0.647 0.640 0.702
AdaBoost 0.526 0.529 0.465 0.495 0.535
GBDT 0.629 0.630 0.624 0.628 0.663
XGBoost 0.607 0.606 0.615 0.610 0.614
PJFNN-m 0.660 0.654 0.679 0.667 0.715

Hit Rate@N

N=1 N=5 N=10 N=20
Linear Regression 0.008 0.100 0.158 0.288
Logistic Regression 0.008 0.092 0.142 0.300
Naive Bayes 0.015 0.085 0.208 0.369
Decision Tree 0.031 0.081 0.162 0.304
Random Forest 0.027 0.123 0.227 0.431
AdaBoost 0.019 0.123 0.212 0.327
GBDT 0.038 0.150 0.235 0.404
XGBoost 0.027 0.104 0.196 0.377
PJFNN-m 0.042 0.150 0.262 0.446

job-recommendation-pjfnn's People

Contributors

doslim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.