M.S. thesis · NLP · 2023

리뷰 텍스트와 평점 예측Review rating prediction

Google Play 리뷰 3,756,164건을 수집해, 중간 평점의 모호함을 BERT 기반 2단 분류와 예측 신뢰도 측정으로 다룬 석사 연구입니다.A master’s thesis using 3,756,164 Google Play reviews to study ambiguity in the middle ratings through a BERT-based two-stage classifier and confidence estimation.

Rating distribution chart from the master’s thesis
석사논문 그림 2 · 전체 데이터셋의 평점 분포Figure 2 from the thesis · Rating distribution across the full dataset
1 STAR759,8182 STAR171,1873 STAR203,0524 STAR354,2255 STAR2,267,882
BEST ACCURACY75.78%단일 단계 최고 대비 +6.25%p+6.25 pp over the best one-stage model
연구자Researcher
석사학위 논문 · 단독 연구Master’s thesis · Independent research
책임진 결정Decisions owned
가설 · 비교 조건 · 신뢰도 평가Hypothesis · Comparison design · Confidence evaluation
직접 수행Built hands-on
Collection · Preprocessing · Modeling · Evaluation
평가Evaluation
Held-out test · n = 147,763
Google Play Store 사용자 리뷰 점수 예측을 위한 BERT 기반 2단 분류 모델BERT-based Two-Stage Classification Models for Google Play Store User Review Rating Prediction논문 원문 보기 ↗Read the thesis ↗
01 · QUESTION

언어와 별점은 늘 같은 말을 하지 않습니다.Language and stars do not always say the same thing.

예를 들어 “괜찮지만 다시 쓰지는 않을 것”은 2점일까요, 3점일까요, 4점일까요?For example: “It’s fine, but I wouldn’t use it again.” Is that two stars, three, or four?

앱 리뷰의 텍스트 의미와 사용자가 선택한 1–5점 평점은 항상 일치하지 않습니다. 특히 2·3·4점은 감정과 판단 기준이 겹치며, 최종 전처리 데이터에서 5점 리뷰 2,219,925건과 2점 리뷰 169,818건 사이의 클래스 불균형도 컸습니다.Review language and a selected one-to-five-star rating do not always align. The middle classes—two, three, and four—overlap in sentiment and criteria, while the final dataset was also highly imbalanced: 2,219,925 five-star reviews versus 169,818 two-star reviews.

연구 질문은 “중간 평점만 별도로 분류하면, 한 번에 다섯 평점을 구분하는 모델보다 나은 결과를 얻을 수 있는가?”였습니다.I asked whether routing the middle ratings to a second classifier could improve prediction over a single five-class model.

02 · HYPOTHESIS

쉬운 극단과 어려운 중간을 분리Separate easy extremes from hard middle classes

Stage 1은 1점, 중간 그룹(2·3·4점), 5점을 먼저 구분합니다. Stage 2는 중간 그룹만 다시 2·3·4점으로 분류합니다. 서로 다른 난이도의 경계를 한 모델에 한꺼번에 학습시키지 않는 구조입니다.Stage 1 separates one-star reviews, a middle group of two-, three-, and four-star reviews, and five-star reviews. Stage 2 then classifies the middle group into its three individual ratings. This avoids forcing a single model to learn boundaries of very different difficulty at once.

01

원 분포를 유지한 평가Retain the original class distribution

학습 데이터만 언더샘플링으로 균형화하고, 검증·테스트 데이터는 원래의 불균형 분포를 유지했습니다.Only the training data was balanced through undersampling; validation and test retained the original imbalance.

02

모델 계열을 체계적으로 비교Compare model families systematically

BERT, BiLSTM, BiGRU, Text-CNN, 감성 분석과 전통적 머신러닝 접근을 폭넓게 비교했습니다.Compared BERT, BiLSTM, BiGRU, Text-CNN, sentiment, and traditional machine-learning approaches.

03

예측과 신뢰도를 분리Separate prediction from confidence

점수만 내는 대신 낮은 신뢰도의 리뷰를 구분하는 방법을 추가로 평가했습니다.Evaluated a method for identifying lower-confidence reviews alongside the prediction.

03 · EXPERIMENT

17개 단일 모델과 196개 조합을 같은 조건에서 비교했습니다.17 one-stage models and 196 combinations, compared on the same test set.

2022년 11월 10일 기준 전 세계 유료·무료 상위 앱 각 45개, 총 90개 앱에서 리뷰·평점 레코드 3,756,164건을 수집했습니다. 전처리 후 3,694,069건을 모델링 데이터로 사용했습니다.I collected 3,756,164 review-rating records from 90 apps—the top 45 paid and 45 free apps worldwide as of November 10, 2022. After preprocessing, 3,694,069 records were used for modeling.

3,756,164

수집한 리뷰·평점 레코드Collected review-rating records

3,694,069

전처리 후 모델링 데이터Preprocessed modeling dataset

17

비교한 단일 단계 모델One-stage models compared

196

평가한 Stage 1 × Stage 2 조합Stage 1 × Stage 2 combinations evaluated

성과 지표는 147,763건의 별도 테스트셋에서 평가한 5개 평점 분류 결과입니다.Performance was measured on a held-out test set of 147,763 reviews across five rating classes.

04 · RESULT

같은 테스트셋에서 확인한 6.25%p의 차이A 6.25 pp difference on the same test set

가장 강한 단일 단계 BERT-BiLSTM의 정확도는 69.53%였습니다. 같은 구조 2단계 최고는 75.45%, 교차 구조 최고는 75.47%였고, Simple Hard Voting의 한 변형에서 최고 정확도 75.78%를 기록했습니다. 단일 단계 최고보다 6.25%p 높은 결과입니다.The strongest one-stage BERT-BiLSTM reached 69.53% accuracy. The best same-structure two-stage model reached 75.45%, the best cross-structure combination 75.47%, and one Simple Hard Voting variant reached 75.78%—6.25 percentage points above the strongest one-stage result.

최고 가중 F1은 74.09%였습니다. 최고 정확도와 최고 가중 F1은 서로 다른 동률 처리 방식에서 나온 결과입니다.The highest weighted F1 was 74.09%. The highest accuracy and weighted F1 came from different tie-breaking variants.

정확도 상승만으로 모든 평점을 동일하게 잘 구분했다고 볼 수는 없습니다. 클래스 불균형과 중간 평점의 모호함이 남아 있어, 예측 신뢰도가 낮은 사례를 별도로 식별하고 결과의 적용 범위를 명시했습니다.Higher accuracy does not mean every rating class was separated equally well. Class imbalance and ambiguity in the middle ratings remained, so I also identified lower-confidence predictions and stated the limits of the result.

2023년 석사 연구 · 오프라인 실험 결과2023 master’s thesis · Offline experimental results

05 · DESIGN RELEVANCE

이 연구가 디자인 실무에 더한 것What this research added to my design practice

이 연구에서 가장 크게 배운 것은 최종 점수보다 공정한 비교 조건을 만드는 일이었습니다. 지금도 정성 조사에서 나온 가설을 측정 가능한 질문으로 바꾸고, 결과의 불확실성까지 제품 판단에 포함합니다.The most useful lesson was not the final score; it was learning to define fair comparisons. I now use that discipline to turn qualitative findings into testable hypotheses and to carry uncertainty into product decisions.

데이터가 결정을 대신한다고 보지는 않습니다. 어떤 가설을 더 믿어도 되는지, 어디까지 조심해야 하는지를 판단하는 근거로 씁니다.Data does not replace judgment for me. It shows which hypotheses deserve more confidence—and where caution is still needed.