- 추천 시스템을 활용해 서비스각 성장하려면 반드시 평가가 실행되어야 한다.
- 추천 시스템 평가에는 크게 온라인 평가와 오프라인 평가, 사용자 스터디가 있다.
3가지 평가 방법
- 오프라인 평가
- 실제 서비스상에서의 열람, 구매 등 사용자 행동 이력에서 얻은 과거의 로그(서비스 로그)를 사용해 모델의 예측 정밀도 등을 평가한다.
- 서비스 로그를 사용하는 온라인 평가의 장점은 평가 비용이 낮고 데이터양이 풍부하기 때문에 평가 결과의 분산이 적다
- 오프라인 평가의 경우 실제 비즈니스 목표인 사용자 만족도나 매출에 기여하지 않는 경우도 존재
- 오프라인 평가에서는 비즈니스 목적의 대체 지표인 오프라인 평가 지표를 적절히 설정해야 한다.
- 온라인 평가
- 온라인 평가는 새로운 테스트 대상으 추천 모델이나 새로운 사용자 인터페이스를 일부 사용자에게 실제로 표시함으로써 평가를 수행한다.
- 따라서 매출 등 비즈니스 목표에 얼마나 기여했는지 직접 알 수 있어 오프라인 평가보다 정확한 평가를 수행하기 쉽다.
- 출시까지 수행하는 구현 비용이 높고 아직 신규 추천 모델의 성능이 좋지 않은 경우 사용자 만족도를 떨어뜨릴 위험이 있다.
- 사용자 스터디
- 사용자 스터디에 의한 평가는 사용자에게 인터뷰나 설문을 하는 것으로 추천 모델이나 사용자 인터페이스의 정성적인 성질을 조사한다.
- 추천 모델의 예측 정도뿐 아니라 아이템 제공 방법이나 사용성 등 사용자 경험에 관한 피드백을 직접 얻을 수 있어 서비스 로그만으로는 알 수 없는 개선점을 발견할 수 있다.
- 하지만 설문이나 인터뷰 조사로 얻은 대답은 주관에 기반한 경우가 많기에 개인 취향에 따른 대답의 분산이 크고 데이터의 양을 충분히 얻기 어려워 재현성이 떨어진다는 문제도 있다.
| 오프라인평가 | 온라인평가 | 사용자스터디 |
|---|
평가항목 -RMSE -nDCG | 평가항목 - 클릭률 - 매출 - 지속률 | 평가항목 - 만족도 - 유용성 - 신선함 |
평가방법 - 시뮬레이션 | 평가방법 - A/B 테스트 - 인터리빙 | 평가방법 - 인터뷰 - 설문조사 |
3가지 평가 방법의 장점과 단점
| 장점 | 단점 |
|---|
| 오프라인 평가 | 구현 비용이 낮다. | 비즈니스 지표와의 정합성이 없는 경우가 있다. |
| 온라인 평가 | 비즈니스 지표를 직접 평가할 수 있다. | 구현 비용이 높다. 사용자 만족도를 떨어뜨릴 위험이 있다. |
| 사용자 스터디 | 사용자 만족도를 직접 조사할 수 있다. | 조사 결과의 재현성을 보장하기 어렵다. |
오프라인 평가
모델 정밀도 평가
- 추천 시스템에서 모델의 주요 목적은 과거의 사용자 행동을 학습하고 미지의 사용자 행동에 대해 높은 정밀도로 예측을 수행하는 것
- 미지의 데이터에 대한 예측 능력은 모델의 일반화 성능이라고 불린다.
모델 밸리데이션
- 추천 시스템의 서비스 형태에 따라서는 아이템 소비에 관한 시계열 정보가 추천 정밀도에 기여하기도 한다.
- 예) 뉴스나 SNS 등의 서비스에서는 시간에 관한 정보가 학습에 중요하다.
- 실제 서비스를 운영할 때는 모델 학습 시 얻을 수 없는 미래 정보를 사용하는 학습을 피해야 한다.(데이터 누수)
모델 튜닝
-
모델 튜닝이란 예측 성능이 높아지도록 모델이 가진 파라미터를 조정하는 것이다.
-
검증 데이터에 대한 벨리데이션을 통해 수행하며 테스트 데이터만 가지고 수행하지 않도록 주의해야 한다.
-
테스트 데이터로 튜닝을 수행하면 원래 목적인 '미지의 데이터에 대한' 일반화 성능을 평가할 수 없기 때문
-
그리드 서치, 베이즈 최적화를 통하여 수행할 수 있음
평가지표
| 지표 분류 | 사용 목적 | 대표적인 지표 |
|---|
| 예측 오차 지표 | 학습 모델이 얼마나 테스트 데이터 평갓값에 가깝게 예측할 수 있는지 | -MAE -MSE,RMSE |
| 집합 평가 지표 | 모델이 출력한 높은 점수의 아이템 집합 K개에 관한 추출 능력을 측정한다. 클릭이나 구매 유뮤등 이진 분류에 대한 평가나 추천범위를 측정하기 위해 사용 | -Precision -Recall -F1-measure |
| 순위 평가 지표 | 아이템 순서를 고려한 순위 평가에 사용, 모델이 출력한 높은 점수의 아이템 k개가 얼마나 올바르게 나열됬는지 측정 | -nDCG -MAP -MRR |
| 기타 평가 지표 | 클릭 유뮤와 같은 예측 정밀도 외에 사용자 만족도를 직접 측정 | -커러비지 -다양성 -신규성 -흥밀움(세렌디피티) |
온라인 평가
A/B 테스트
- 대표적인 온라인 검증은 A/B 테스트 이다.
- 실험군과 대조군의 2개의 그룹으로 나눈 후 평가를 수행하는 방법.
가설
- A/B 테스트를 할 시에 테스트 대상의 효과에 대해 가설을 세우는 것이 좋다.
| 항목 | 예 |
|---|
| 콘텍스트 | 유행하는 숙소를 쉽게 찾지 못하는 사용자가 있다. |
| 변경점 | 새로운 추천 알고리즘을 도입한다. |
| 대상 | 유럽 지역에서 독일어를 쓰는 사용자 |
| 지표 목표 | 숙박 예약률을 1% 향상시킨다 |
| 비즈니스 목표 | 숙박 예약을 통한 매출을 향상시킨다. |
- 콘텍스트 : 실험 배경은 무엇인가?
- 변경점 : 무엇을 어떻게 바뀌는가?
- 대상 : 대상 사용자는 누구인가?
- 지표 영향 : 변경점이 지표에 어떤 영향을 미치는가?
- 비즈니스 목표 : 이니셔티브를 통해 달성하고 싶은 최종 비즈니스 목표는 무엇인가?
템플릿을 미리 지정하고 비즈니스 목표와의 연결을 명확하게 하도록 하여야한다.
형태를 갖춰 문서로 남겨 이니셔티브의 효과를 확인할 때 커뮤니케이션 부하를 낮추는 효과도 기대할 수 있다.
- 진행 방법
- A/B 테스트의 경우 실제로 사용자에게 변경점을 보여주므로 사용자 만족도를 저하시킬 수 있다.
- 적은 수의 사용자에게 실시할 내용이 의도대로 동작하는지 확인하는 것이 좋다.
- 주의점
- 한쪽 사용자 그룹이 평소에도 극단적으로 클릭을 많이 하는 사용자로만 구성된다면 클릭 수 측정은 A/B 테스트로 올바르게 수행할 수 없다
- 그룹 편향이 생길수 있음
- 학습 데이터 부족등의 원인으로 뒤섞인 행동 로그에 따라 학습해야 할 때도 있기에 로그 혼합또한 주의를 해야함
- 사용자는 새로운 변화에 과도하게 반응하는 경우가 있는데 이런 경우 단기간 테스트와 장기간 테스트의 결과가 달라지기 때문에 집계 기간또한 고려해야한다.
OEC 지표
-
A/B 테스트의 성공과 실패를 최종적으로 판단하는 지표를 OEC 지표라고 한다.
-
OEC 지표는 서비스/비즈니스의 성공을 위해 시스템을 움직이는 것을 돕기 위하여 정의된 지표이다.
-
OEC 지표는 장기적인 서비스 KPI와 연관되어야 하며 동시에 단기간에는 팀이 행동할 때 충분히 공감해야함
-
또한 팀 단위뿐 아니라 조직 전체가 OEC 지표에 대해 합의하는 것이 바람직함
- Happiness : 서비스에 대한 사용자의 감각, 만족도, 시각적 매력, 쉬운 사용성등 사용자의 주관적인 측면과 관계가 있다. 행동 로그만으로 추정하기 어려운 경우 설문을 추가해 실시할 수 있다.
- Engagement : 상품에 대한 사용자의 관여 수준, 어떤 기간동안 서비스의 실행 빈도나 인터랙션 깊이
- Adoption : 어떤 기간에 새로 상품을 사용하기 시작한 신규 사용자
- Retention : 어떤 기간의 사용자 중 몇 명이 그 뒤의 기간까지 여전히 서비스 사용을 지속하고 있는가
- Task success : 효율성(태스크 종료까지의 기간). 유효성(태스크 완료율), 에러율 등 기존 사용자의 만족도
가드레일 지표
-
가드레일 지표는 저하되어서는 안 되는 제약을 표시한다.
-
가드레일 지표는 페이지 열람 수, 서비스 기동률, 응답 속도, 주간 액티브 사용자 수, 수익금 등이 있다.
-
응답 속도의 경우 매우 중요한 부분
-
마이크로소프트 상의 bing 검색에서는 100ms의 차이가 0.6%의 수익금 차이로 이어진다는 보도도 존재
-
사용자 행동의 경우 다양한 트레이드 오프가 존재한다.
-
서비스 내 개인화 모듈의 클릭 정밀도가 향상된 결과로 연관 아이템 모듈의 클릭 수가 감소하는 일 등은 자주 발생
-
A/B 테스트에서는 최종적인 어떤 이니셔티브의 효용을 OEC 지표로 측정하면서 서비스 전체의 트레이드오프를 고려해 가드레일 지표를 설계하는 것이 중요
지표 설계 방침
감도 (Senstivity)
- 지표는 감도가 좋아야 한다. 감도는 2개의 요소로 이루어진다.
- 이동 확률 : 업데이트에 대해 지표가 얼마나 빈번하게 변동하는가를 나타냄
- 좋은 지표는 크게 변화할 확률이 적고 안정적으로 측정할 수 있다.
- 통계력 : 효과에 변동이 있을 때 그것을 얼마나 정확하게 특정할 수 있는가
- 검출력이라고도 불리며, A/B 테스트는 80%를 최소량으로 요구함
신뢰성 (Trustworthiness)
- 지표는 신뢰성이 높아야 한다. 지표값을 얻는 것은 쉽지만 신뢰할 수 있는 지표를 얻는 것은 녹록지 않다.
- 서버 문제등으로 수치가 결손되는 경우도 존재
- '흥미로우며 차이가 명확한 데이터는 대부분 오류다' -> 트위만의 법칙
- 구체적으로 강한 결과가 나타났을 경우 먼저 어떤 외적 원인이나 측정 실수를 의심하고 신뢰성을 확인해야 함
효율성 (Efficiency)
- 효율이 좋은 의사결정으로 연결되어야 한다.
- 성숙한 조직이고 실험 체제가 정리되어 있으면 수행하는 테스트의 수도 증가
- 효율에는 시간, 복잡성, 비용 총 3가지가 있다.
- 넷플릭스는 재생 시간을 1개월 지속할 확률의 대리 변수로 사용하고 있으며 코세라는 과정 자료의 인터랙션과 퀴즈 사용률을 과정 완주율의 대리 지표로 사용
- 대략적으로 보다 빠르게 결과를 얻을 수 있는 변수를 찾는 것이 중요
디버깅 가능성(Debuggability)과 액션 가능성(Actionability)
- 디버그와 관련된 지표또한 필요하다.
- 테스트에 이상이 있을 때 그 이상의 원인을 추적해 수정하는 것과 연결디는 지표도 준비해야 한다.
- 온라인 실험을 수행할 때 어쩔 수 없이 버그가 발생하는 경우가 존재
- 버그나 크래시를 감지할 수 있는 구조를 지표로 설계해야한다
- 숫자가 크게 변동했을 때는 버그일 가능성이 있다.
해석 가능성(Interpretability)과 방향성(Directionality)
-
쉽게 해석할 수 있어야 한다.
-
사용자의 불만을 집계하고 싶은 경우 만족도를 5단계로 평가했을 때 5단계 평가의 평균을 구하는 행위는 해석이 어렵다.
-
이런 경우 불만이 있다고 대답한 사용자의 비율을 집계하는 편이 해석하기 쉽다.
-
방향성은 해당 변수가 개선되었을 때 비즈니스 목표가 달성되는가를 나타낸다.
-
뉴스 어플리케이션에서 사용자 참여 향상을 목적으로 하는 기능을 테스트할 때 어떤 한 기능의 클릭률이 향상돼도 전체 클릭률이 저하된다면 목적을 달성했다고 할 수 있다.
인터리빙
-
온라인 평가의 또 다른 방법으로 인터리빙이 있다. A/B 테스트에서는 테스트 대상의 수만큼 사용자 그룹을 나눠야 한다.
-
결국 테스트 대상이 늘어남에 따라 테스트 사용자 수도 선형적으로 늘어나 평가 효율이 문제될 수 있다.
-
인터리빙은 A/B 테스트보다 10배 ~ 100배 더 효율적인 방법으로 알려져있다.
-
인터리빙은 평가 시 A/B 테스트처럼 사용자 그룹을 나누지 않는다. 그 대신 평가 대상의 각 순위를 하나의 순위로 섞어 사용자에게 제시한다.
-
뒤섞인 순위에 대한 클릭으로 원래 순위끼리 평가한다.
2개의 순위를 섞어 평가하는 방법을 인터리빙이라고 하고 3개 이상의 순위를 섞어 평가하는 방법을 멀티리빙이라 한다.
-
멀티리빙은 많은 모델이나 파라미터를 동시에 테스트하고 싶을 때 A/B 테스트 실시 전 테스트 대상의 필터링에 사용되기도 한다.
Team Draft Multileaving(TDM)
- 2개의 검토 결과를 선택할 때마다 선공/후공을 무작위로 결정하면서 양 순위에서 하나씩 아직 사용되지 않은 검색 결과를 상위 부터 선택
Probabilistic Multileaving(PM)
- 가능한 한 각 순위 안의 검토 결과 순서를 유지하면서 상대적으로 낮은 확률로 임의의 순서에서 검토 결과를 선택하도록 허용한다.
Optimized Multileavning(OM)
- 먼저 출력 후보가 되는 순위를 다수 준비한다.최적화 문제를 풀어냄으로써 출력 후보의 순위 출력 확률을 조정한다.
Pairwise Prreference Multilearvning(PPM)
- 속도가 빠르면서 Considerateness, Fidelity라는 이론적 보증이 가능한 방법
- Considerateness : 섞어서 만든 순위는 원래의 입력 순위보다 품질이 나쁘지 않다., 테스트 시 입력 순위 이상으로는 사용자 만족도를 저하시키지 않는 다는 것을 보증한다는 의미
- Fidelity : 무작위로 클릭을 모든 순위 점수의 기댓값이 같아지고 동시에 보다 우수한 순위의 점수의 기댓값은 더 높아진다는 성질
| Considerateness | Fidelity | 구현 용이성 |
|---|
| TDM | o | | o |
| PM | | o | o |
| OM | o | | |
| PPM | o | o | |
| A/B 테스트 | 인터리빙 |
|---|
| 평가 대상 | 추천 모델, UI포함 | 추천 모델을 사용해 생성한 순위 |
| 평가 효율 | 많은 사용자가 필요 | 적은 사용자로 평가 가능 |
| 구현 비용 | 낮음 | 높음 |
사용자 스터디를 통한 평가
조사 설계
참가자 선정
- 사용자 스터디의 대상의 경우 기본적으로 가급적 실제 사용자에 가까운 사람을 선택하는 것이 좋음
- 전자상거래 사이트 추천 시스템의 사용자의 경우 사용자 스터디를 할때 가급적 그 전자상거래 사이트를 이용하고 있는 사람 또는 다른 전자상거래 사이트를 이용하고 있는 사람이 좋음
- 일반 사용자가 아닌 개발자를 조사하면 자사 서비스에 부족한 기능이나 화면 개선점등이 파악되는 경우도 존재
다양한 유형의 사용자를 대상으로 할때
테스트 대상의 전문 지식 수준(초급, 중급, 상급)
서비스 사용 빈도(서비스의 합계 사용 횟수, 특정 기간의 사용 횟수)
사용자 속성 정보(성별, 나이, 거주 지역, 가족 구성)
- 또한 샘플링을 적절하게 활용하여야 한다
- 단순 무작위 추출법, 계통적 추출법, 층화 추출법, 임의 추출법
참가자 수
- 사용자 스터디의 참가자 수는 조사 목적과 오차 허용 정도에 따라 결정된다.
- 사용성에 관한 오류를 발견하는 것이 목적이라면 5명 정도의 사용자가 80% 이상의 문제를 발견할 수 있다는 주장이 존재
- 시스템의 다양한 측면에 대해 피드백을 얻고자 할 때나 조사 태스크가 매우 많은 경우에는 소수의 의견을 누락시키지 않기 위해 가급적 많은 사람들을 조사해야 함
- 일반적으로 시스템 초기 단계에서는 소수의 참가자를 모아 비교적 중요한 문제를 발견하고 시스템이 완성에 가까워지면 더 많은 참가자를 모아 남아 있는 작은 문제를 발견하는 것이 이상적인 방법
조사 시점
- 스사트업 등에서 신규 서비스 수요를 미리 예측하는 경우 서비스 기능을 최소한으로 구현한 후 또는 서비스의 전체 기능이 완성된 후 등을 들 수 있다.
- 규모가 큰 기업의 성숙하다고 생각되는 서비스에 대해서도 1년에 1회정도는 정성적인 사용자 조사를 수행하는 것이 좋다.
- 단기적인 개선 이니셔티브를 다양하게 실행한 결과, 눈치채지 못한 사이에 서비스 전체의 사용자 만족도가 낮은 상품으로 바뀌어 버리는 경우가 많기 때문
피험자 내 측정/피험자 간 측정
- 피험자 내 측정은 참가자 사이의 특성 차이를 고려할 필요가 없어 비교적 소규모 샘플로도 충분한 경우가 많음
- 참가자가 여러 평가를 순서대로 수행하기 때문에 평과 과정에서 학습이 진행되거나 피로에 따라 수행 능력 및 감각이 달라지는 캐리오버 효과가 발생할 수 있음
- 이러한 캐리오버 효과를 줄이기 위해 카운터 밸런스를 활용한다.
- 가장 단순한 카운터 밸런스는 각 참가자가 태스크를 수행하기 전에 태스크의 순서를 무작위로 뒤섞는 것
- 이를 통해 특정 평가가 항상 특정한 순서로 대답되는 것 처럼 순서로 인해 발생하는 영향을 피험자 전체 관점에서 줄일 수 있다.
1개의 정확한 측정이 1000명의 전문가 의견보다 가치가 있다라는 말을 통해서라도 추천 시스템의 성숙도에 대하여 적절한 평가를 하는 것이 중요
공감하며 읽었습니다. 좋은 글 감사드립니다.