Skip to content

๐ŸŽญ ๊ธธ๋™๊ตญ์‚ฌ - ๋‹น์‹ ์„ ์œ„ํ•œ ํ•œ๊ตญ์‚ฌ๋Šฅ๋ ฅ๊ฒ€์ •์‹œํ—˜ ๋ฌธ์ œ ์ถ”์ฒœ AI

Notifications You must be signed in to change notification settings

boostcampaitech4lv23recsys1/level3_productserving-level3-recsys-03

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

88 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽญ ๊ธธ๋™๊ตญ์‚ฌ

ย ย ย ย ย ย ย ย 

"ํ•œ๊ตญ์‚ฌ ์ž๊ฒฉ์‹œํ—˜ ๏ฆŽ 51๋งŒ๋ช…โ€ฆ์ด์   ์ˆ˜๋Šฅ๋ณด๋‹ค ๋งŽ์ด ๋ณธ๋‹ค" ใ€Œํ•œ๊ตญ๊ฒฝ์ œใ€, 2022๋…„ 08์›”
"ํ•œ๊ตญ์‚ฌ๋Šฅ๋ ฅ๊ฒ€์ •์‹œํ—˜ ์ ‘์ˆ˜ ํ™ˆํŽ˜์ด์ง€ ๋งˆ๋น„... ์ˆ˜ํ—˜์ƒ ๋ถˆํŽธ ๊ฒช์–ด" ใ€Œ์—ฐํ•ฉ๋‰ด์Šคใ€, 2021๋…„ 01์›”
"์—ฐ๊ตฌ์‚ฌยท์ง€๋„์‚ฌ ๊ณต์ฑ„ ํ•œ๊ตญ์‚ฌ ๊ณผ๋ชฉ, ํ•œ๊ตญ์‚ฌ๋Šฅ๋ ฅ๊ฒ€์ •์‹œํ—˜์œผ๋กœ ๋Œ€์ฒด" ใ€Œ์—ฐํ•ฉ๋‰ด์Šคใ€, 2020๋…„ 04์›”
"ํ•œ๊ตญ์‚ฌ๋Šฅ๋ ฅ๊ฒ€์ •์‹œํ—˜ ๅนด 4ํšŒโ†’6ํšŒ ํ™•๋Œ€" ใ€Œ์„œ์šธ์‹ ๋ฌธใ€, 2019๋…„ 11์›”


โ€œ๋‹น์‹ ์„ ์œ„ํ•œ ํ•œ๊ตญ์‚ฌ๋Šฅ๋ ฅ๊ฒ€์ •์‹œํ—˜ ๋ฌธ์ œ ์ถ”์ฒœ AI - ๊ธธ๋™๊ตญ์‚ฌ" [๋ฐ”๋กœ๊ฐ€๊ธฐ]

แ„€แ…ตแ†ฏแ„ƒแ…ฉแ†ผแ„€แ…ฎแ†จแ„‰แ…ก_readme



1. ํŒ€์›

๊น€์„ ๋„ ๋‚˜์ธํ˜ ๋…ธํƒœ์—ฝ ๋ฐ•์šฐ์„ ์ „๋ณ‘์›…
ํ”„๋ก ํŠธ์—”ํŠธ
๋ชจ๋ธ๋ง
๋งˆ์ผ€ํŒ…
๋ฐฑ์—”๋“œ
๋ชจ๋ธ๋ง
๋ฐ์ดํ„ฐ
๋ฒ ์ด์Šค ์„ค๊ณ„
ํ”„๋ก ํŠธ์—”๋“œ
๋ชจ๋ธ๋ง
๋งˆ์ผ€ํŒ…
๋ฐฑ์—”๋“œ
๋ชจ๋ธ๋ง
์‹œ๊ฐํ™”
๋ฐฑ์—”๋“œ
๋ชจ๋ธ๋ง
ํฌ๋กค๋ง



2. ์†Œ๊ฐœ

๐ŸŽญ ๊ธธ๋™๊ตญ์‚ฌ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

ํ•œ๊ตญ์‚ฌ๋Šฅ๋ ฅ๊ฒ€์ •์‹œํ—˜์€ ๋Œ€ํ•œ๋ฏผ๊ตญ ๊ต์œก๋ถ€ ์‚ฐํ•˜์˜ ๊ตญ์‚ฌํŽธ์ฐฌ์œ„์›ํšŒ๊ฐ€ ์ฃผ๊ด€ํ•˜๋Š” ํ•œ๊ตญ์‚ฌ ์‹œํ—˜์ž…๋‹ˆ๋‹ค.

์ฃผ๋กœ ๊ณต๋ฌด์› ์‹œํ—˜, ๊ณต๊ธฐ์—… ์ทจ์—… ๋“ฑ์— ๊ฐ€์‚ฐ์ ์œผ๋กœ ํ™œ์šฉ๋˜๋ฉฐ ํ˜„์žฌ ์—ฐ๊ฐ„ 50๋งŒ ๋ช…์ด ์‘์‹œํ•˜๋Š” ํฐ ์‹œํ—˜์ž…๋‹ˆ๋‹ค.

๊ธธ๋™๊ตญ์‚ฌ๋Š” ํ•œ๊ตญ์‚ฌ๋Šฅ๋ ฅ๊ฒ€์ •์‹œํ—˜์„ ์ค€๋น„ํ•˜๋Š” ๋ชจ๋“  ์ˆ˜ํ—˜์ƒ์„ ๋•๊ณ ์ž ์‹œ์ž‘ํ•œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

ํ•œ๊ตญ์‚ฌ๋Šฅ๋ ฅ๊ฒ€์ •์‹œํ—˜ ์ค€๋น„์˜ ๊ธฐ๋ณธ์ธ ๊ธฐ์ถœ๋ฌธ์ œ๋ถ€ํ„ฐ ์˜ค๋‹ต ๋ถ„์„, ๋ฌธ์ œ ํ•ด์„ค, ๋ฌธ์ œ ์ถ”์ฒœ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๊ธธ๋™๊ตญ์‚ฌ๋Š” ์‚ฌ์šฉ์ž์˜ ๋‹ค์–‘ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ ๊ทน์ ์œผ๋กœ ์ˆ˜์šฉํ•˜์—ฌ ์ง€์†์ ์ธ ๊ฐœ์„ ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ, ๊ธธ๋™๊ตญ์‚ฌ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ๊ฐ„๋žตํžˆ ์†Œ๊ฐœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

(1) ๊ธฐ์ถœ ๋ฌธ์ œ

ํ•œ๊ตญ์‚ฌ๋Šฅ๋ ฅ๊ฒ€์ •์‹œํ—˜ ๊ฐœ์ • ์ดํ›„ ๋ชจ๋“  ํšŒ์ฐจ(47ํšŒ~62ํšŒ)์˜ ๊ธฐ์ถœ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. (2023๋…„ 1์›” ๊ธฐ์ค€)

(2) ๋žœ๋ค ๋ฌธ์ œ

๊ธฐ๋ณธ, ์‹ฌํ™” ๊ฐ ์‹œํ—˜์—์„œ ๋ฌด์ž‘์œ„๋กœ ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋žœ๋ค๋ฌธ์ œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

(3) ์˜ค๋‹ต๋…ธํŠธ / ๋ถ๋งˆํฌ

ํ‹€๋ฆฐ ๋ฌธ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์˜ค๋‹ต ๋ถ„์„์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋‹ต๋…ธํŠธ, ์ค‘์š”ํ•œ ๋ฌธ์ œ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๋ถ๋งˆํฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

(4) ์ธ๊ณต์ง€๋Šฅ ๋ฌธ์ œ ์ถ”์ฒœ

๊ธธ๋™๊ตญ์‚ฌ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ธ ์‚ฌ์šฉ์ž์˜ ๋ฌธ์ œ ํ’€์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ธ๊ณต์ง€๋Šฅ ๋ฌธ์ œ ์ถ”์ฒœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


2023๋…„ 2์›” ๊ธฐ์ค€ : ๋ˆ„์  ๊ฐ€์ž… ์œ ์ € 192๋ช… / ๋ˆ„์  ๋ฌธ์ œ ํ’€์ด ๊ฑด์ˆ˜ 12390๊ฑด
2023๋…„ 1์›” ๊ธฐ์ค€ : ๋ˆ„์  ๊ฐ€์ž… ์œ ์ € 130๋ช… / ๋ˆ„์  ๋ฌธ์ œ ํ’€์ด ๊ฑด์ˆ˜ 7800๊ฑด


3. ๊ตฌ์กฐ๋„

แ„Œแ…ฅแ†ซแ„Žแ…ฆแ„ƒแ…ฉแ„‰แ…ตแ†จ drawio

React : Client
Firebase : Database & Middleware
FastAPI : Backend Server
PostgreSQL : Dataset Backup
Airflow : Continuous Integration



4. ๊ธฐ๋Šฅ

๊ธธ๋™๊ตญ์‚ฌ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

(1) ํšŒ์ฐจ ํ’€์ด

แ„’แ…ฌแ„Žแ…กแ„‘แ…ฎแ†ฏแ„‹แ…ตg



(2) ๋žœ๋ค ๋ฌธ์ œ ํ’€์ด

แ„…แ…ขแ†ซแ„ƒแ…ฅแ†ทแ„‘แ…ฎแ†ฏแ„‹แ…ตg



(3) ํ’€์—ˆ๋˜ ๋ฌธ์ œ, ์˜ค๋‹ต๋…ธํŠธ, ๋ถ๋งˆํฌ

แ„‘แ…ณแ„…แ…ฉแ„‘แ…ตแ†ฏg



(4) TF-IDF๋ฅผ ํ™œ์šฉํ•œ ์œ ์‚ฌ ๋ฌธ์ œ ์ถ”์ฒœ



(5) ์ธ๊ณต์ง€๋Šฅ ๋ฌธ์ œ ์ถ”์ฒœ

แ„‹แ…ตแ†ซแ„€แ…ฉแ†ผแ„Œแ…ตแ„‚แ…ณแ†ผg





5. ๋ชจ๋ธ

๊ธธ๋™๊ตญ์‚ฌ์— ์‚ฌ์šฉ๋œ ๋จธ์‹ ๋Ÿฌ๋‹, ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

(1) ์˜คํ”„๋ผ์ธ ํ…Œ์ŠคํŠธ

image

  • ์‹ค์ œ ํ‹€๋ฆด๋งŒํ•œ ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ์ปค๋ฒ„ํ•˜๋Š”๊ฒŒ ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Recall์ด ์˜๋ฏธ์žˆ์„ ๊ฒƒ์ด๋ผ ํŒ๋‹จ
  • ํ‹€๋ฆด ํ™•๋ฅ  ์ƒ์œ„ 5๊ฐœ์˜ ๋ฌธ์ œ๋ฅผ ์ถ”์ฒœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•  ๊ฒƒ์ด๋ผ ํŒ๋‹จํ•˜์—ฌ NDCG๋ฅผ ์ฐธ๊ณ 
  • ๋”ฐ๋ผ์„œ NDCG@10๊ฐ€ ์ œ์ผ ๋†’์€ EASE, Recall@10๊ฐ€ ์ œ์ผ ๋†’์€ SASRec๋ฅผ ์„œ๋น™ ๋ชจ๋ธ๋กœ ์„ ์ •

(2) KFC

image

  • ์ž์ฒด์ ์œผ๋กœ ๊ณ ์•ˆํ•œ ๋ชจ๋ธ
  • KoNLPy, TF-IDF, ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„(Cosine Similarity)๋ฅผ ํ•ฉ์นœ ๋ชจ๋ธ
  • (1) KoNLPy๋ฅผ ํ†ตํ•ด ๊ฐ ๋ฌธ์ œ์˜ ํ•ด์„ค ๋ถ€๋ถ„์—์„œ ์ฃผ์š” ํ˜•ํƒœ์†Œ๋ฅผ ์ถ”์ถœ
  • (2) ๋ถˆ์šฉ์–ด ์ „์ฒ˜๋ฆฌ ํ›„ TF-IDF๋กœ ์ž„๋ฒ ๋”ฉ
  • (3) ์ž„๋ฒ ๋”ฉ๋œ ๋ฒกํ„ฐ๋ผ๋ฆฌ์˜ ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ Top-K ๋ฌธ์ œ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ถ”์ฒœ

(3) EASE

image

  • Collaborative Filtering์—์„œ๋Š” hidden layer๋ฅผ ์ ๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ์ด ๋” ์ข‹๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— hidden layer๋ฅผ ์•„์˜ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” EASE๊ฐ€ ์ข‹์€ ์„ฑ๋Šฅ์„ ๊ธฐ๋กํ•  ๊ฒƒ์ด๋ผ ์˜ˆ์ƒ
  • EASE๋ชจ๋ธ์€ ๋‹ค๋ฅธ ๋ชจ๋ธ์— ๋น„ํ•ด inference๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ถ”์ฒœ์„ ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š” ํ˜„์žฌ ์„œ๋น„์Šค์— ์ ํ•ฉํ•˜๋‹ค๊ณ  ํŒ๋‹จ

(4) SASRec

image

  • Transformer ๊ตฌ์กฐ๋ฅผ ์ถ”์ฒœ์— ํ™œ์šฉํ•œ ์ฒซ ๋ชจ๋ธ
  • Self-attention ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— Sparse ๊ตฌ์กฐ์— ์ ํ•ฉํ•œ Markov Chain์˜ ๋‹จ๊ธฐ์  ์˜ˆ์ธก ๋Šฅ๋ ฅ ๊ทธ๋ฆฌ๊ณ  dense ๊ตฌ์กฐ์— ์ ํ•ฉํ•œ RNN์„ ์ด์šฉํ•œ ์žฅ๊ธฐ์  ์˜ˆ์ธก ํŠน์ง•์„ ๋ชจ๋‘ ๋ฐ˜์˜ ๊ฐ€๋Šฅ

6. ์ฐธ๊ณ  ์ž๋ฃŒ

(1) ๋ชจ๋ธ

๋ชจ๋ธ๋ช… ์ฐธ์กฐ
TF-IDF Luhn, H. P. (1957). A statistical approach to mechanized encoding and searching of literary information
BM25 S. E. Robertson, K. Sparck Jones. (1976). Relevance weighting of search terms
SASRec(Self-Attentive Sequential Recommendation) Wang-Cheng Kang, Julian McAuley. (2018). Self-Attentive Sequential Recommendation
EASE(Embarrassingly Shallow Autoencoders for Sparse Data)) Harald Steck. (2019). Embarrassingly Shallow Autoencoders for Sparse Data

(2) ์›น ์‚ฌ์ดํŠธ


About

๐ŸŽญ ๊ธธ๋™๊ตญ์‚ฌ - ๋‹น์‹ ์„ ์œ„ํ•œ ํ•œ๊ตญ์‚ฌ๋Šฅ๋ ฅ๊ฒ€์ •์‹œํ—˜ ๋ฌธ์ œ ์ถ”์ฒœ AI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published