학술 추천 시스템 API의 설계와 구현
초록
본 논문은 학술 디지털 라이브러리와 레퍼런스 매니저가 손쉽게 과학 논문 추천 기능을 도입할 수 있도록 하는 “Recommendations as‑a‑Service”(RaaS) API, Mr. DLib의 설계와 구현을 소개한다. RESTful 인터페이스, 모듈형 아키텍처, 오픈소스 코드베이스를 기반으로 하며, GESIS Sowiport와 JabRef에 실제 적용된 사례와 2년간 9400만 건의 추천·CTR 0.12% 성과를 보고한다.
상세 분석
Mr. DLib는 학술 분야에 특화된 추천‑as‑a‑service 플랫폼으로, 기존 학술 서비스가 자체적으로 추천 엔진을 구축·운영하는 데 드는 인력·시간·비용을 크게 절감하도록 설계되었다. 핵심 설계 원칙은 모듈성, 확장성, 재현성이며, 이를 위해 4계층 아키텍처를 채택한다.
첫 번째 계층은 API 게이트웨이로, 외부 클라이언트가 HTTP GET/POST 요청을 통해 JSON 형태의 파라미터(사용자 ID, 문서 ID, 요청 수 등)를 전달한다. 요청 검증과 인증(토큰 기반) 후, 내부 메시지 버스(Kafka)로 비동기 전송한다. 두 번째 계층은 추천 엔진 코어이며, 현재는 콘텐츠 기반(CB)와 협업 필터링(CF) 두 가지 알고리즘을 파이프라인 형태로 조합한다. CB는 TF‑IDF와 BM25를 이용해 메타데이터·초록을 벡터화하고, 코사인 유사도로 후보를 선정한다. CF는 사용자‑문서 상호작용 로그를 기반으로 ALS 행렬 분해를 수행한다. 두 알고리즘의 점수는 가중 평균으로 결합되며, 가중치는 실시간 A/B 테스트 결과에 따라 동적으로 조정된다.
세 번째 계층은 데이터 레이어로, 메타데이터는 PostgreSQL에, 대용량 텍스트 인덱스는 Elasticsearch에, 사용자 행동 로그는 ClickHouse에 저장한다. 데이터 파이프라인은 Apache Spark 스트리밍으로 구현돼 실시간 피드백(클릭, 스킵)을 수집하고, 모델 재학습 주기를 일일 단위로 설정한다. 또한, 캐시 레이어(Redis)와 CDN를 활용해 인기 아이템에 대한 응답 지연을 50 ms 이하로 유지한다.
네 번째 계층은 모니터링·평가이다. Prometheus와 Grafana를 통해 요청량, 오류율, 레이턴시, CTR 등을 실시간 시각화하고, 로그 기반의 오프라인 평가(Precision@10, MAP)와 온라인 A/B 테스트를 병행한다. 특히, 0.12%라는 평균 CTR는 산업 표준에 비해 낮아 보이지만, 학술 추천 특성상 클릭 의도가 낮고, 장기적인 논문 열람·인용 전환을 목표로 하는 점을 고려하면 의미 있는 성과라 할 수 있다.
시스템은 오픈소스(MIT 라이선스)로 제공돼, 외부 개발자가 새로운 알고리즘(예: 그래프 신경망 기반 메타데이터 임베딩)이나 도메인(학회 초청, 연구비) 등을 플러그인 형태로 추가할 수 있다. 현재는 논문 추천에 초점을 맞추었지만, 설계 단계부터 멀티도메인 확장을 염두에 두고, 추천 객체 스키마를 추상화하고 있다.
보안 측면에서는 HTTPS 전송, API 키 관리, IP 화이트리스트, 그리고 GDPR·CCPA 준수를 위한 데이터 익명화 모듈을 제공한다. 또한, **서비스 레벨 어그리먼트(SLA)**를 정의해 99.9% 가용성을 목표로 하며, 장애 발생 시 자동 페일오버와 롤백 메커니즘을 갖춘다.
전체적으로 Mr. DLib는 학술 서비스 제공자가 최소한의 개발 노력으로 최신 추천 기술을 활용하도록 돕는, 실용적이면서도 연구 친화적인 플랫폼이라 평가할 수 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기