EdNet 데이터셋

1 개요[ | ]

EdNet

EdNet은 국내 78만명 이상의 사용자를 대상으로 하는, Android, iOS, Web을 통한 멀티플랫폼 AI 개인지도 서비스인 Santa가 2년 동안 수집한 모든 학생-시스템 상호작용 데이터셋이다.

2 EdNet의 특징[ | ]

EdNet 데이터셋에는 학생이 이용한 학습자료, 답안, 주어진 문제를 푸는 데 소요한 시간 또는 전문가의 해설을 읽는 데 소요된 시간과 같은 학생 행동의 다양한 피처(feature, 특성변수)가 포함되어 있다. 그리고 EdNet에는 다음과 같은 몇 가지 특징이 있다.

2.1 대규모[ | ]

EdNet은 2017년부터 Santa 학생 784,309명으로부터 수집된 총 131,441,538개의 상호작용으로 구성되어 있다. 각 학생이 Santa를 이용할 때, 평균 441.20건의 상호작용이 발생하였다. 이러한 상호작용을 기반으로 하는 EdNet에서 연구자는 대규모 실제 ITS 데이터에 접근할 수 있다. 또한 Santa는 총 13,169개의 문제와, 293종의 스킬 태그가 붙은 1,021개의 강의를 제공하며, 각각 95,294,926회, 601,805회 이용되었다. 우리가 아는 한, 이것은 전체 학생 수, 상호작용, 상호작용유형 측면에서 퍼블릭으로 쓸 수 있는 교육분야에서 가장 큰 데이터셋이다.

2.2 다양성[ | ]

EdNet은 기존의 모든 ITS 데이터들 중에서 가장 다양한 상호작용 집합을 제공한다. EdNet에는 다른 곳에서는 제공하지 않는 해설 보기, 강의 시청과 같은 학습활동이 포함되어 있기 때문에 학습과 직접 관련된 일련의 행동도 다른 데이터셋보다 풍부하다. 이러한 다양성을 통해 연구자들은 다양한 관점에서 학생들을 분석할 수 있다. 예를 들어, 구매 로그는 학습에 대한 학생의 참여를 분석하는 데 도움이 될 수 있다. 또한 컨텐츠 정보 테이블은 별도로 제공된다.

2.3 계층[ | ]

EdNet은 서로 다른 데이터 포인트의 계층 구조를 가지고 있다. 일관되고 체계적인 방식으로 다양한 종류의 작업을 할 수 있도록 EdNet은 각각 KT1, KT2, KT3, KT4라는 네 가지 수준의 데이터셋를 제공한다. 데이터셋의 수준이 증가하면 관련된 작업의 수와 유형도 증가한다. 각 데이터셋의 세부정보와 설명은 아래에 설명되어 있다.

2.4 멀티플랫폼[ | ]

학생들이 개인용 컴퓨터에서 스마트폰과 AI 스피커에 이르는 다양한 장치에 접근할 수 있는 시대에 ITS가 여러 플랫폼에서 이용할 수 있도록 하는 것은 필수적이다. 그에 맞춰 Santa도 iOS, Android, Web에서 이용할 수 있는 멀티플랫폼 시스템이며 EdNet에는 모바일 및 데스크톱에서 수집된 데이터 포인트가 포함되어 있다. 이를 통해 다양한 플랫폼에서 수집된 데이터를 일관된 방식으로 활용하여 미래의 다중플랫폼 ITS에 적합한 AIEd 모델을 연구할 수 있다.

3 데이터셋[ | ]

앞서 말했듯이, 범위가 다른 KT1, KT2, KT3, KT4라는 4개의 데이터셋이 있다. 다음은 이러한 데이터셋의 공통적인 피처이다.

  • 전체 데이터셋은 학생으로 나뉜다. {user_id}.csv에는 {user_id}의 상호작용만 포함된다.
  • 타임스탬프는 보안 이슈에 따라, 수정(고정값으로 이동)된 값으로 실제 값과 다르다.

3.1 다운로드 링크[ | ]

3.2 KT1[ | ]

bit.ly/ednet_kt1에서 .zip 파일 다운로드

사양
압축된 파일의 크기 1.2GB
압축되지 않은 파일의 크기 5.6GB
파일 수 784,309

3.2.1 구조[ | ]

KT1은 학생들의 문제풀이 로그로 구성되어 있으며, Deep Knowledge Tracing, Self-Attentive Knowledge Tracing과 같은 다양한 딥러닝 지식 추적 모델에서 사용할 수 있는 가장 기본적이고 기본적인 정보이다. EdNet-KT1은 이 문제-답안 시퀀스 형식에 따라 2017년 4월 18일 이후 수집된 Santa의 기록이다. EdNet의 주요 특징은 문제가 번들로 제공된다는 것이다. 즉, 공통 지문, 그림, 청취 자료를 공유하는 문제 모음이다. 예를 들어 ID q2319, q2320, q2321의 문제는 동일한 읽기 지문을 공유할 수 있다. 이 경우 문제는 번들을 형성하고 공유지문과 함께 학생에게 제공된다. 번들이 제공되면 학생은 모든 문제에 접근할 수 있으며 번들을 완료하기 위해 모든 문제에 응답해야 한다.

3.2.2 설명[ | ]

  • timestamp는 문제가 제공된 일시이며 유닉스 타임스탬프 (밀리초)로 표시된다.
  • solving_id는 각 번들에 해당하는 학생의 각 학습 세션을 나타낸다. 1부터 시작하는 단일 integer의 형태이다.
  • question_id는 학생에게 주어진 문제의 ID로 q{integer}의 형식이다.
  • user_answer는 학생이 제출한 답안으로 a ~ d 사이의 문자로 기록된다.
  • elapsed_time은 학생들이 각 문제에 소요된 시간으로 밀리초 단위이다.

3.2.3 예시[ | ]

timestamp solving_id question_id user_answer elapsed_time
1548996377530 48 q2844 d 47000
1548996378149 48 q2845 d 47000
1548996378665 48 q2846 d 47000
1548996671661 49 q4353 c 67000
1548996787866 50 q3944 a 54000

3.3 KT2[ | ]

bit.ly/ednet-kt2에서 .zip 파일 다운로드

사양
압축된 파일의 크기 0.6GB(555.8MB)
압축되지 않은 파일의 크기 3.1GB
파일 수 297,444

3.3.1 구조[ | ]

문제-답안 순서 형식의 주요 단점은 학생 행동의 고유한 특이성을 설명할 수 없다는 것이다. 예를 들어, 학생은 최종 답안을 제출하기 전에 두 가지 답안 중 하나를 번갈아 선택할 수 있으며, 이는 두 가지 옵션 중 하나에 대해 확신이 없다는 신호일 수 있다. 문제-답안 형식의 제한으로 인해 EdNet-KT1과 같은 형식을 따르는 데이터셋은 이러한 상황을 효과적으로 표현할 수 없다. 이러한 한계를 극복하기 위해 산타는 2018년 8월 27일부터 학생들의 모든 행동을 수집했다. 그 결과 각 사용자의 행동 시퀀스 데이터셋 EdNet-KT2, EdNet-KT3, EdNet-KT4가 컴파일된다. 각 작업은 비디오 강의보기, 답안 옵션 선택지, 지문 읽기와 같이 Santa UI에서 학생이 수행한 단일 단위의 행동을 나타낸다. 학생의 행동을 있는 그대로 기록함으로써 데이터셋은 각 학생의 행동을 보다 정확하게 나타내고 AIEd 모델이 학습 기록의 세부사항을 연계할 수 있도록 한다. EdNet의 가장 간단한 활동 기반 데이터셋인 EdNet-KT2는 문제풀이 활동과 관련된 활동으로 구성된다. KT1의 피처는 KT2의 컬럼으로 완전히 복원해낼 수 있으며 KT2에는 학생의 학습 모드 또는 학생이 제공하는 중간 답안과 같은 추가 정보가 포함되어 있다.

3.3.2 설명[ | ]

  • action_typeenter, respond, submit 중 하나이다.
    • enter는 학생이 UI를 통해 문제 번들을 처음 받고 볼 때 기록된다.
    • respond은 학생이 번들의 문제 중 하나에 대한 답을 선택할 때 기록된다. 학생은 동일한 문제에 여러 번 응답할 수 있다. 이 경우 최종 답안을 제출하기 전 마지막 답안만 답안으로 간주된다.
    • submit은 학생이 주어진 번들에 대한 최종 답안을 제출할 때 기록된다.
  • item_id는 작업과 관련된 항목의 ID이다. EdNet-KT2의 경우 문제 및 번들의 ID만 기록된다. enter, submit 유형의 작업에 번들이 할당된다.
  • source는 학생이 Santa UI에서 문제를 풀거나 강의를 보는 을 알려준다. Santa에는 학생들이 문제를 풀거나 강의를 볼 수 있는 몇 가지 소스가 있다. KT2의 경우 문제풀이 환경을 제공하는 소스만 기록된다.
    • sprint에서 학생들은 공부하고 싶은 부분을 선택한다. 그 후에는 다른 부분으로 변경하거나 다른 소스를 선택할 때까지 선택한 부분에 속한 문제만 풀 수 있다.
    • Santa는 매일 각 학생의 현재 지식 상태, 즉 협업 필터링 모델에서 예측한 정확성 확률을 기반으로 문제와 강의를 추천한다. 이러한 출처를 '오늘의 추천'이라고 한다. 특정 부분에 속하는 문제를 추천할 수 있다. todays_recommendation::sprint, todays_recommendation::review_quiz
    • 특정 태그가 있는 문제에 대한 오답 횟수가 일정 기준을 초과하면 Santa가 해당 태그로 강의 및 문제를 제안한다. 이러한 제안은 adaptive_offer로 기록된다. 또한 특정 태그가 있는 문제의 평균 정정률이 특정 임계값 이상 감소한 경우 강의 및 문제를 제공한다.
    • All Parts는 학생들이 Santa가 가능한 모든 후보군로부터 특정 알고리즘을 따르도록 권장하는 문제를 풀 수 있는 소스이다. 이것은 tutor로 기록된다.
    • 학생은 in_review로 기록되는 복습 시스템을 사용하기 전에 이미 풀었던 문제를 다시 실행할 수 있다.
  • user_answeraction_typerespond일 때 기록되며, 학생이 제출한 답안을 나타낸다. 알파벳 a, b, c, d 중 하나이다.
  • platform은 학생이 mobile또는 web인 Santa를 이용한 위치를 알려준다.

3.3.3 예시[ | ]

timestamp action_type item_id source user_answer platform
1358114668713 enter b4957 diagnosis mobile
1358114691713 respond q6425 diagnosis c mobile
1358114701104 respond q6425 diagnosis d mobile
1358114712364 submit b4957 diagnosis mobile
1358114729868 enter b5180 sprint mobile
1358114745592 respond q6815 sprint c mobile
1358114748023 respond q6816 sprint a mobile
1358114748781 respond q6814 sprint a mobile
1358114751032 submit b5180 sprint mobile

3.4 KT3[ | ]

bit.ly/ednet-kt3에서 .zip 파일 다운로드

사양
압축된 파일의 크기 0.8GB (762.8MB)
압축되지 않은 파일의 크기 4.3GB
파일 수 297,915

3.4.1 구조[ | ]

Santa에서 학생은 문제에 대한 전문가의 해설을 읽거나 시스템에서 제공하는 강의를 보는 등, 문제풀이 외에도 다양한 학습활동에 참여할 수 있다. EdNet-KT3는 EdNet-KT2 데이터셋에 다음 작업을 추가하여 이러한 학습활동을 연계한다. 이러한 행동은 학습활동이 각 학생의 지식 상태에 미치는 영향을 추론하는 데 활용될 수 있다. 예를 들어, enter, quit 작업의 timestamp의 차이를 계산하여 각 학생이 주어진 자료를 공부하는 데 소요한 시간을 분석하고 이를 활용할 수 있다. 학생들의 다양한 학습 행동의 효과를 연구한다.

3.4.2 설명[ | ]

위에서 말했듯이 해설강의가 추가되었다.

  • 해설 보기
    • 각 학생이 주어진 문제를 풀면 그에 대한 해설이 제공된다. sprint, review의 문제에 대한 해설 소스는 각각 after_sprint, after_review로 기록된다. my_note에서 그가 풀었던 문제에 대한 해설을 다시 볼 수도 있다.
    • 학생이 Santa UI에서 해설 보기에 들어가거나 보기를 종료할 때마다 해설 ID가 item_identer, quit 유형의 활동이 기록된다. 해설 ID는 번들 ID와 정확히 같다.
  • 강의 시청
    • 학생이 강의를 볼 수 있는 소스는 archive, adaptive_offer, todays_recommendatin::lecture이다. 학생은 archive에서 가능한 모든 강의에 접근할 수 있다. 또한 Santa는 문제와 함께 '오늘의 추천' 또는 '적응적 제안'으로 강의를 제안할 수 있다.
    • 학생이 강의 동영상을 재생하거나 동영상 시청을 중단할 때마다 item_id로 강의 ID를 사용하여 enter, quit 유형의 해당 활동이 기록된다.

3.4.3 예시[ | ]

timestamp action_type item_id source user_answer platform
1573364188664 enter b790 sprint mobile
1573364206572 respond q790 sprint b mobile
1573364209673 respond q790 sprint d mobile
1573364209710 submit b790 sprint mobile
1573364209745 enter e790 sprint mobile
1573364218306 quit e790 sprint mobile
1573364391205 enter l540 adaptive_offer mobile
1573364686796 quit l540 adaptive_offer mobile
1573364693793 enter b6191 adaptive_offer mobile
1573364702213 respond q8840 adaptive_offer c mobile
1573364705838 submit b6191 adaptive_offer mobile

3.5 KT4[ | ]

bit.ly/ednet-kt4에서 .zip 파일 다운로드

사양
압축된 파일의 크기 1.2GB
압축되지 않은 파일의 크기 6.4GB
파일 수 297,915

3.5.1 구조[ | ]

EdNet-KT4에서는 Santa가 수집한 전체 작업 목록이 제공된다. 특히 다음 유형의 작업이 EdNet-KT3에 추가된다 : erase_choice, undo_erase_choice, play_audio, pause_audio , play_video, pause_video, pay, refund, enroll_coupon

3.5.2 설명[ | ]

  • erase_choice, undo_erase_choice
    • 사용자의 편의를 위해 학생은 답을 지워서 숨길 수 있다. 학생은 또한 선택을 다시 고려하기 위해 자신의 행동을 취소할 수 있다. 선택항목을 지우고 실행취소하는 작업은 각각 erase_choice, undo_erase_choice 유형의 작업으로 제공된다. 지워지거나 지워지지 않은 대답 선택은 user_answer 열에 제공된다.
  • play_audio, pause_audio, play_video, pause_video
    • 학생은 주어진 멀티미디어 자료를 재생하거나 일시정지할 수 있다. 비디오의 경우, 커서를 다른 위치로 이동하여 비디오의 다른 지점으로 이동할 수도 있다. 이러한 작업은 작업 유형 play_audio, pause_audio, play_video, pause_video 중 하나로 표시된다. EdNet-KT4에 cursor_time 열이 추가되어 그가 미디어를 재생하거나 일시정지한 시점을 나타낸다.
  • pay, refund
    • 기본적으로 무료 사용자에게는 매일 파트 2와 5에 해당하는 문제 10개가 제공된다. 결제항목을 구매하면 학생은 모든 파트의 문제에 접근할 수 있다. 결제항목표는 별도로 제공된다(아래 참조). pass 유형의 항목을 사용하면 밀리초 단위로 duration시간 동안 모든 문제를 풀어볼 수 있다. paygo 유형의 항목을 사용하면 학생이 number_of_bundles 열로 표시된 특정 수의 번들을 풀 수 있다.
  • enroll_coupon
    • 학생은 프로모션 쿠폰 코드를 입력하여 해당 혜택을 받을 수 있다. 쿠폰의 ID와 쿠폰을 입력한 시간은 enroll_coupon 유형의 작업으로 기록된다. 쿠폰표는 별도로 제공된다(아래 참조).

3.5.3 예시[ | ]

timestamp action_type item_id cursor_time source user_answer platform
1358114668713 pay p25 mobile
1358114691713 enter b878 sprint mobile
1358114701104 text_enter q878 sprint mobile
1358114712364 play_audio q878 0 sprint mobile
1358114729868 pause_audio q878 10000 sprint mobile
1358114745592 eliminate_choice q878 sprint a mobile
1358114748023 respond q878 sprint c mobile
1358114748781 submit b878 sprint mobile
1358114751032 enter e878 sprint mobile
1358114779211 play_audio e878 0 sprint mobile
1358114792300 pause_audio e878 8000 sprint mobile
1358114842195 quit e878 sprint mobile

3.6 컨텐츠[ | ]

bit.ly/ednet-content에서 .zip 파일 다운로드

사양
압축된 파일의 크기 0.6MB
압축되지 않은 파일의 크기 0.1MB
파일 수 4

Santa가 학생들에게 제공하는 콘텐츠는 '문제', '강의', '결제 항목', '쿠폰', '점수'의 5가지 유형이 있다.

( "점수"는 아직 릴리스되지 않았다. 나중에 릴리스할 예정이다. )

3.6.1 문제[ | ]

문제 정보 테이블에는 question_id, bundle_id, explanation_id, correct_answer, part, tag, deployed_at의 7개 열이 있다.

  • question_id는 문제의 ID이며 q{integer} 형식이다.
  • bundle_id는 문제가 포함된 번들의 ID이며 b{integer} 형식이다. 각 번들에는 1~5개의 문제가 포함될 수 있다.
  • explanation_ide{integer}의 형식인 각 번들에 대한 해당 해설(전문가의 코멘트)의 ID이다. bundle_id와 description_id는 모든 문제에 대해 동일하다.
  • correct_answera ~ d 사이의 문자로 기록된 각 문제의 정답이다. 선택지의 수는 파트별로 다르다. 파트 2에 속하지 않는 모든 문제에는 4개의 선택지가 있고 파트 2에는 3개의 선택지가 있다.
  • part는 각 문제가 해당되는 파트이다. 1 ~ 7까지의 정수이다.
  • tag는 각 문제에 대해 전문가 주석이 달린 태그이다. {integer}; {integer}; ...; {integer} 형식의 정수 목록이다.
  • deployed_at는 각 문제가 Santa에서 제공되기 시작된 일시를 나타내며 유닉스 타임스탬프 (밀리초)로 표시된다.
3.6.1.1 예시[ | ]
question_id bundle_id explanation_id correct_answer part tags deployed_at
q2319 b1707 e1707 a 3 179;53;183;184 1571279008033
q2320 b1707 e1707 d 3 52;183;184 1571279009205
q2321 b1707 e1707 d 3 52;183;184 1571279010285
q2322 b1708 e1708 b 3 52;183;184 1571279012823
q2323 b1708 e1708 c 3 179;52;182;184 1571279013890
q2324 b1708 e1708 d 3 52;183;184 1571279014989

3.6.2 강의[ | ]

강의 정보 테이블에는 lecture_id, part, tags, video_length, deployed_at의 5개 열이 있다.

  • lecture_id는 강의 ID이다. l{integer}의 형식이다.
  • part는 강의가 해당되는 파트이다. 0 ~ 7까지의 단일 정수이다. 여기서 0은 특정 파트에 해당되지 않는 강의를 나타낸다.
  • tags는 각 강의에 대한 전문가 코멘트가 달린 태그로 단일 정수이다. 문제와 강의에 사용되는 태그는 동일하다.
  • video_length는 단일 integer의 형태인 밀리초 단위의 동영상 강의 실행 시간이다.
  • deployed_at는 각 강의가 Santa에서 제공되기 시작된 시각이며 유닉스 타임 스탬프 (밀리초)로 표시된다.

일부 강의의 tag, video_lengthsdeployed_at는 사용할 수 없으며 -1로 기록된다.

3.6.2.1 예시[ | ]
lecture_id part tags video_length deployed_at
l805 5 99 230000 1570426256512
l855 0 203 253000 1570425118345
l1259 1 222 359000 1570424729123
l1260 1 220 487000 1570424738105
l1261 1 221 441000 1570424743162
l1262 1 223 587000 1570424748780

3.6.3 결제 항목[ | ]

결제 항목 정보 테이블에는 payment_item_id, payment_type, duration, number_of_questions의 4개 열이 있다.

  • payment_item_id는 결제 ID이다. p{integer}의 한 형태이다.
  • payment_type은 결제 유형으로 passpaygo의 두 가지가 있다. pass의 경우 학생은 정해진 기간(예: 3개월)동안 Santa를 이용할 수 있다. paygo의 경우 학생은 정해진 수의 문제(예: 4000개)를 풀 수 있다.
  • duration은 학생이 특정 pass를 구매할 때 Santa를 사용할 수 있는 시간이며 밀리초로 표시된다. payment_typepaygo인 경우 -1로 채워진다.
  • number_of_questions는 학생이 단일 integer의 형태인 특정 paygo를 구매할 때 풀 수 있는 문제의 수를 나타낸다. payment_typepass인 경우 -1로 채워진다.
3.6.3.1 예시[ | ]
payment_item_id payment_type duration number_of_bundles
p6 pass 15552000000 -1
p7 paygo -1 4000
p8 pass 10368000000 -1
p9 pass 31536000000 -1

3.6.4 쿠폰[ | ]

쿠폰 정보 테이블은 coupon_id, coupon_type, duration의 3개 열로 구성된다.

  • coupon_id는 쿠폰의 ID이다.
  • c{integer}의 형태이다.
  • coupon_type은 쿠폰 유형이다. type-{integer}의 형식이며, 여기서 유형 ID는 쿠폰 소스에 따라 다르다.
  • duration은 학생이 특정 쿠폰을 사용할 때 Santa를 이용할 수 있는 시간으로 밀리초로 표시된다.
3.6.4.1 예시[ | ]
coupon_id coupon_type duration
c16 type-1 15552000000
c17 type-2 432000000
c18 type-3 1000000
c19 type-3 36000000

3.6.5 점수[ | ]

릴리스 예정.

4 연락처[ | ]

궁금한 점이 있거나 문제가 있는 경우 research@riiid.co 로 문의하자.

5 라이선스[ | ]

데이터셋은 연구 목적으로 Creative Commons Attribution-NonCommercial 4.0 International license(CC BY-NC 4.0)에 따라 공개 릴리스되었다.

6 같이 보기[ | ]

7 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}