bcaitech1 / p4-dkt-team-ikyo

p4-dkt-p4-dkt-team-ikyo created by GitHub Classroom
3 stars 2 forks source link

pjh add feature & user-question mask model #19

Closed PJHgh closed 3 years ago

PJHgh commented 3 years ago

args

  • max seq len : 15
  • optimizer : adamW
  • scheduler : plateau
  • learning rate : 5e-5

feature engineering

non-sequence feature

categorical feature

  • testid_experience : user가 마지막 question의 testid를 풀어본 적 있는지
  • assessmentItemID_experience : user가 마지막 question을 풀어본 적 있는지

    continuous feature

  • user_total_answer : user가 푼 전체 문제 수
  • user_correct_answer : : user가 푼 전체 문제 중 정답 수
  • user_acc : user가 푼 전체 문제에 대한 정답 비율
  • knowledgetag_total_solving_num : user가 푼 마지막 question의 knowledgetag 문제 수
  • knowledgetag_correct_solving_num : user가 푼 마지막 question의 knowledgetag 문제 중 정답 수
  • knowledgetag_total_solving_rate : user가 푼 마지막 question의 knowledgetag 문제에 대한 정답 비율
  • question_class_total_solving_num : user가 푼 마지막 question의 question_class 문제 수
  • question_class_correct_solving_num : user가 푼 마지막 question의 question_class 문제 중 정답 수
  • question_class_solving_rate : user가 푼 마지막 question의 question_class 문제에 대한 정답 비율

    sequence feature

    categorical feature

  • new_time : user가 마지막 문제를 풀기 시작한 시간과의 차이 시간
    • 0 : 1일 이내
    • 1 : 1일 ~ 14일
    • 2 : 14일 이상

model

  • non-sequence feature는 dense layer로, sequence data는 bert를 통해 user의 knowledge 정보를 추출
  • 마지막 question, testid, tag, question class에 대한 embedding vector로 mask를 만들어 활용
PJHgh commented 3 years ago

auroc loss 아직 구현이 제대로 안되어서 사용하시면 안됩니다!!!

feedback

sequence feature

  • 마지막 sequence data는 sequence feature를 만들 때 사용하면 안된다. → mask를 생성할 때만 사용해야 함

    mask feature

  • question에 대한 feature(= mask를 만드는데 사용하는 feature)를 좀 더 user에 관계없이 만들어야 한다. ex ) 전체 data에 대해 question, testid, tag, question class의 accuracy

    augmentation

  • validation과 test data의 가장 긴 sequence의 data를 제외한 나머지 data는 train data로 활용 가능
PJHgh commented 3 years ago

sequence feature

PJHgh commented 3 years ago

model 개선