[논문 리뷰] A Dataset for GitHub Repository Deduplication: Extended Description
이 논문은 1060만 개의 GitHub 프로젝트로 구성된 데이터셋을 소개하며, 이는 포크 또는 클론 작업을 통해 식별된 중복 프로젝트들로, 각 프로젝트는 1820만 개 노드와 1200만 개 엣지로 구성된 노이즈가 제거된 그래프를 통해 최종 부모 프로젝트와 연결된다. 이 방법은 여섯 가지 지표와 패턴 매칭 히ュ리스틱을 사용하여 클러스터를 걸러내고 연결 성분을 계산하여 주요 기준 데이터셋에서 3만 개의 중복 프로젝트를 발견한다. 이는 독립적으로 생성된 데이터셋과 비교했을 때 강한 겹침이 있지만, 일부 차이점도 존재한다.
GitHub projects can be easily replicated through the site's fork<br> process or through a Git clone-push sequence. This is a problem for<br> empirical software engineering, because it can lead to skewed results<br> or mistrained machine learning models. We provide a dataset of 10.6<br> million GitHub projects that are copies of others, and link each record<br> with the project's ultimate parent. The ultimate parents were derived<br> from a ranking along six metrics. The related projects were calculated<br> as the connected components of an 18.2 million node and 12 million<br> edge denoised graph created by directing edges to ultimate parents.<br> The graph was created by filtering out more than 30 hand-picked and 2.3<br> million pattern-matched clumping projects. Projects that introduced<br> unwanted clumping were identified by repeatedly visualizing shortest path<br> distances between unrelated important projects. Our dataset identified<br> 30 thousand duplicate projects in an existing popular reference dataset<br> of 1.8 million projects. An evaluation of our dataset against another<br> created independently with different methods found a significant overlap,<br> but also differences attributed to the operational definition of what<br> projects are considered as related.
연구 동기 및 목표
- 실증 소프트웨어 공학 연구와 기계 학습 모델에 왜곡을 주는 중복된 GitHub 저장소 문제를 해결하기 위해.
- 그래프 기반 접근 방식을 사용하여 1060만 개의 중복 프로젝트를 그들의 최종 부모 저장소에 연결하기 위해.
- 30개의 수작업 선별 및 230만 개의 패턴 매칭 클러스터를 걸러내어 그래프 내의 노이즈를 줄이기 위해.
- 이미 존재하는 180만 개 프로젝트 기반 데이터셋에서 3만 개의 중복 프로젝트를 탐지하여 데이터셋의 정확도를 검증하기 위해.
- 다른 운영 정의를 사용한 독립적으로 생성된 데이터셋과 비교하여 일관성과 정의 차이를 평가하기 위해.
제안 방법
- 여섯 가지 순위 지표를 기반으로 엣지를 프로젝트에서 그들의 최종 부모로 향하게 하여 1820만 개 노드, 1200만 개 엣지로 구성된 그래프를 구축하였다.
- 노이즈를 줄이기 위해 30개의 수작업 선별 및 230만 개의 패턴 매칭 클러스터링 프로젝트를 식별하고 걸러내었다.
- 관련이 없는 중요한 프로젝트 간의 최단 경로 거리 시각화를 통해 불필요한 클러스터를 탐지하고 제거하였다.
- 노이즈가 제거된 그래프에서 연결 성분을 계산하여 동일한 최종 부모를 공유하는 프로젝트를 그룹화하였다.
- 프로젝트 특성에 기반하여 각 프로젝트의 최종 부모를 결정하기 위해 다중 지표 순위 시스템을 적용하였다.
- 이미 존재하는 180만 개 프로젝트 기반 데이터셋에서 3만 개의 중복 프로젝트를 탐지하여 데이터셋을 검증하였다.
실험 결과
연구 질문
- RQ1포크 또는 클로닝을 통해 다른 프로젝트와 중복되는 GitHub 프로젝트는 얼마나 되며, 기존 기준 데이터셋에 얼마나 비중을 차지하는가?
- RQ2제안된 그래프 기반 중복 제거 방법이 프로젝트 클러스터링으로 인한 오소거지(거짓 양성)를 얼마나 줄이는가?
- RQ3다른 운영 정의를 사용한 독립적으로 생성된 데이터셋과 비교했을 때 중복 제거 결과의 일관성은 어느 정도인가?
- RQ4수작업 선별 및 패턴 매칭 클러스터를 걸러내는 것이 최종 부모 식별 정확도에 어떤 영향을 미치는가?
- RQ5180만 개의 대규모 실세계 기준 데이터셋에서 이 데이터셋은 중복 프로젝트를 얼마나 잘 탐지하는가?
주요 결과
- 이 데이터셋은 널리 사용되는 180만 개 프로젝트 기준 데이터셋 내에서 3만 개의 중복 프로젝트를 식별하여 높은 중복 비율을 시사한다.
- 이 데이터셋과 독립적으로 생성된 데이터셋 간에 상당한 겹침이 발견되어 중복 관계 식별의 강건성을 시사한다.
- 비록 겹침이 있었지만, 관련 프로젝트로 간주되는 기준이 다름에 따라 차이점이 관찰되었다.
- 230만 개의 패턴 매칭 및 30개의 수작업 선별 클러스터를 걸러내는 것이 중복 제거 과정의 노이즈를 크게 줄였다.
- 그래프 기반 접근 방식은 지표 기반 네트워크를 통해 1060만 개의 프로젝트를 최종 부모에 성공적으로 연결하였다.
- 관련이 없는 중요한 프로젝트 간 최단 경로 거리의 시각화가 가짜 클러스터를 효과적으로 탐지하고 제거하는 데 기여하였다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.