๋ฅ ๋ฌ๋๊ณผ ๋จธ์ ๋ฌ๋์ ์ฌ์ฉํ์ฌ BOJ(Baekjoon Online Judge)์ solved.ac ์ ์ ์ ๊ฐ์ธ๋ณ ๋ฌธ์ ํ์ด ์ด๋ ฅ์ ๋ฐํ์ผ๋ก ๋ณธ์ธ์ ์์ค์ ๋ง๋ ๋ฌธ์ ์ ๋ผ์ด๋ฒ์ ์ถ์ฒํ๋ AI ๋ชจ๋ธ ๊ธฐ๋ฐ ์๋น์ค์ ๋๋ค.
๐ฅ ์น ์ฌ์ดํธ ๋ณด๋ฌ ๊ฐ๊ธฐ
โป ๋ณธ ์น ์๋น์ค๋ 2022๋ 9์๊น์ง ์ด์๋ ๊ณํ์ด๋ฉฐ, ํผ๋๋ฐฑ์ ๋ฐํ์ผ๋ก ์ด์ ๊ธฐ๊ฐ๋์ ์ง์ํ์ฌ ๊ฐ์ ์ด ์ด๋ฃจ์ด์ง ์์ ์ ๋๋ค.
BOJ๋ ๊ตญ๋ด ๋ํ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ํ์ด ์ฌ์ดํธ์ด๋ฉฐ, ์ฝ 36๋ง ๋ช ์ ์ฌ์ฉ์์ 2๋ง์ฌ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ณด์ ํ๊ณ ์์ต๋๋ค.1 ํนํ ์ฌ๋ฌ IT ๊ธฐ์ ์์ ์งํํ๋ ์ฝ๋ฉ ํ ์คํธ๋ฅผ ๊ณต๋ถํ๊ณ ์ ๋ง์ ์ทจ์ ์ค๋น์๊ณผ ํ์๋ค์ด ์ด์ฉํ๋ ์ฌ์ดํธ์ด๊ธฐ๋ ํฉ๋๋ค. ์ต๊ทผ์๋ solved.ac์ ์ฐ๊ณ๋์ด ์ฌ์ฉ์๋ค์ด ๋ฌธ์ ๋ณ๋ก ์ง์ ์ธ๋ถํ๋ ํ๊ทธ์ ๋์ด๋๋ฅผ ๋งค๊ธธ ์ ์๊ณ , ๋ณธ์ธ์ด ํผ ๋ฌธ์ ์ด๋ ฅ์ ๋ฐํ์ผ๋ก ์ ์๋ฅผ ์ฐ์ถํ์ฌ ์์ ์ ์ค๋ ฅ์ด ์ด๋ ์ ๋์ธ์ง๋ฅผ ๊ฐ๋ ํ ์ ์์ต๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ค๋ ฅ์ ํฅ์์ํค๊ธฐ ์ํด์๋ ๋ณธ์ธ์ ์ค๋ ฅ์ ๋ง๋ ์ ์ ํ ์๊ณ ๋ฆฌ์ฆ ์ ํ๊ณผ ๋๋์ ๋ฌธ์ ๋ฅผ ์ ํํด ํธ๋ ๊ฒ์ด ์ค์ํ์ง๋ง, ๋ง์ ๋ฌธ์ ์๋ก ์ธํด ์ฌ์ฉ์๊ฐ ์์ ์ ์ค๋ ฅ์ ๋ง๋ ๋ฌธ์ ๋ฅผ ๊ณ ๋ฅด๋ ๋ฐ ์ด๋ ค์์ ๊ฒช๋ ๊ฒฝ์ฐ๊ฐ ์ ์ง ์์ต๋๋ค.2 ๋ํ solved.ac์์๋ ์ฌ๋ฌ ์ฌ์ฉ์ ์ค์์ ์์ ์ด ์ํ๋ ์ฌ๋์ ๋ผ์ด๋ฒ๋ก ๋ฑ๋กํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ์ ์ ๋ผ์ด๋ฒ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ์ ์ ๋น์จ์ 13%์ ๋ถ๊ณผํฉ๋๋ค.3
RECJOON ์น ์๋น์ค๋ฅผ ํตํด ๊ฐ์ธ์ ์ค๋ ฅ์ ๋ง๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ์ถ์ฒํ์ฌ ์ฌ์ฉ์์ ๋ฌธ์ ํ์ ์๊ฐ์ ์ค์ด๊ณ ํ์ต์ ํจ์จ์ฑ์ ๋์ฌ๋๋ฆฌ๊ณ ์ ํฉ๋๋ค. ๋ํ ๊ฐ์ธ์ ์์ค๊ณผ ํ์ด ์ด๋ ฅ์ด ๋น์ทํ ๋ผ์ด๋ฒ์ ์ถ์ฒํด์ค์ผ๋ก์จ ๊ฒฝ์ ์ฌ๋ฆฌ๋ฅผ ์๊ทนํ์ฌ ๋ฌธ์ ํ์ด ๋๊ธฐ๋ฅผ ๋ถ์ฌํ๊ณ ํ์ต ํจ์จ์ ์ฆ๋์ํฌ ์ ์๋ ํจ๊ณผ๋ฅผ ๊ธฐ๋ํด๋ด ๋๋ค.
์ํ๋ ์ถ์ฒ ๊ฒฐ๊ณผ๋ ํธ๋ค ๊ฒ์์ผ๋ก ๊ฐ๋จํ๊ฒ.
๋ณ๋์ ํ์๊ฐ์ ์์ด ๋ฐ๋ก ๊ฒ์์ฐฝ์ BOJ ํธ๋ค๋ง ์ ๋ ฅํ์ธ์. ์ฌ์ฉ์ ๊ฒ์ ์๋์์ฑ์ผ๋ก ๋ณธ์ธ์ ํธ๋ค์ด ๊ฒ์๋๋์ง๋ ํ๋์ ํ์ ํ ์ ์์ต๋๋ค.
๋ด ์ค๋ ฅ์ ๋ง๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ ๋ฌด์์ผ๊น?
์ ์ ๊ฐ๊ฐ์ธ์ solved.ac ํฐ์ด์ ๋ฌธ์ ํ์ด ์ด๋ ฅ์ ๋ฐํ์ผ๋ก ์์ ์ ์ค๋ ฅ์ ๋ง๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ์ถ์ฒํด๋๋ฆฝ๋๋ค.
๋์ ์ค๋ ฅ์ด ๋น์ทํ ๋ผ์ด๋ฒ์ ๋๊ตฌ์ง?
์ ์ ์ ๋ ๋ฒจ๋ณ ๋ฌธ์ ํ์ด ์ด๋ ฅ๊ณผ ํฐ์ด, ํด๋์ค, ๋ ์ดํ ์ ์ข ํฉ์ ์ผ๋ก ๊ณ ๋ คํ์ฌ ํด๋น ์ ์ ์ ์ค๋ ฅ๊ณผ ์ ์ฌํ ๋ค๋ฅธ ์ ์ ๋ค์ 6๋ช 4 ์ถ์ฒํด๋๋ฆฝ๋๋ค.
๋์ ๋ผ์ด๋ฒ์ด ํผ ๋ฌธ์ ๋ ๋ฌด์์ผ๊น?
์ ์ ์ ํ์ด ์ด๋ ฅ์ ๋ฐํ์ผ๋ก ๋ผ์ด๋ฒ์ ํ์์ง๋ง ์ ์ ์์ ์ ํ์ง ์์ ๋ฌธ์ ๋ ๊ฐ์ด ์ถ์ฒํด๋๋ ค์.
- ์ ์ , ๋ฌธ์ , ์ ์ ๋ณ ๋ฌธ์ ํ์ด ์ด๋ ฅ: solved.ac ๋น๊ณต์ API
- ๋ฌธ์ ๊ฐ ์ํ ํด๋์ค: solved.ac ํด๋์ค ํ์ด์ง์์ ์น ์คํฌ๋ ์ดํ
โป Baekjoon Online Judge์์ ๋ฐ์ดํฐ๋ฅผ ์น ์คํฌ๋ ์ดํํ์ง ์์ต๋๋ค.
๐ EDA ๋ณด๋ฌ ๊ฐ๊ธฐ
โป ๋ฐ์ดํฐ ๋ถ์ ๊ฒฐ๊ณผ์ ๊ดํ ์์ธํ ๋ด์ฉ์ EDA ํ์ผ์ ์ฐธ๊ณ ํด์ฃผ์ธ์.
RECJOON์์๋ ์ ํด์ง ์ฃผ๊ธฐ์ ๋ฐ๋ผ batch serving์ผ๋ก ๋ฐ์ดํฐ ์์ง๊ณผ ํจ๊ป ๋ชจ๋ธ ํ์ต๊ณผ ์์ธก์ ์คํํฉ๋๋ค. ๋ชจ๋ ์ถ์ฒ ์๋น์ค๋ ๋ชจ๋ธ ํ์ต ํ ๊ฒ์ฆ ๊ณผ์ ์์ ์ฌ์ ์ ์ ์๋ ์งํ๋ฅผ ์ธก์ ํ๊ณ , ์ฃผ๊ธฐ๋ณ๋ก ๊ฐ์ฅ ์ข์ ๊ฒฐ๊ณผ๋กค ๋ณด์ธ ๋ชจ๋ธ์ ์์ธก ๋ชจ๋ธ๋ก ์ ํํฉ๋๋ค.
์ ์ ๊ฐ ํผ ๋ฌธ์ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Autoencoder ๊ธฐ๋ฐ5์ ๋ฅ ๋ฌ๋ ๋ชจ๋ธ์ ํ์ต์ํค๊ณ , ๊ฒ์ฆ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๋ฏธ๋ฆฌ ์ ์๋ ํ๊ฐ ์งํ6 ๊ฐ์ด ๊ฐ์ฅ ๊ฒฐ๊ณผ๊ฐ ์ ๋์จ ๋ชจ๋ธ์ ์ ํํฉ๋๋ค. ์ดํ ์ ํ๋ ๋ชจ๋ธ์ ๋ฐํ์ผ๋ก ๋ฌธ์ ํ๋ณด๋ฅผ ์ ์ ํ๊ณ ํํฐ๋ง์ ํตํด ์ต์ข ๋ฌธ์ ์ถ์ฒ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.
ํนํ Multi-VAE์ Multi-DAE์์๋ ๋ฌธ์ ์ ํ๊ทธ์ ๊ดํ ์๋ฒ ๋ฉ์ encoder์ ์ ๋ ฅ์ผ๋ก ๊ฐ์ด ๋ฃ์ด์ ๋ฌธ์ ์ ๊ดํ side information๋ ๊ฐ์ด ํ์ตํ ์ ์๋๋ก ํ์ฌ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ ์ ํ์ต๋๋ค.7
| ๋ชจ๋ธ๋ช | ์ฐธ์กฐ |
|---|---|
| Collective MF(Matrix Factorization) | David Cortes. 2020. Cold-start recommendations in Collective Matrix Factorization |
| K-nearest neighbors | Altman, and Naomi S. 1992. An introduction to kernel and nearest-neighbor nonparametric regression |
๋ผ์ด๋ฒ ์ถ์ฒ์์๋ ๋ค์ํ ๋ฅ ๋ฌ๋ ๋๋ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ8์ ํ์ต์ํค๊ณ ์ฌ์ ์ ์ ์ํ ์จโข์คํ๋ผ์ธ ์งํ9 ์ค ๊ฐ์ฅ ๊ฒฐ๊ณผ๊ฐ ์ ๋์จ ๋ชจ๋ธ์ ์์ธก ๋ชจ๋ธ๋ก ์ ์ ํฉ๋๋ค.
| ๋ชจ๋ธ๋ช | ์ฐธ์กฐ |
|---|---|
| BPR(Bayesian Personalized Ranking) | Steffen Rendle, Christoph Freudenthaler, Zeno Gantner, and Lars Schmidt-Thieme. 2009. BPR: Bayesian Personalized Ranking from Implicit Feedback |
| ALS(Alternating Least Squares) MF | Yifan Hu, Yehuda Koren, and Chris Volinsky. 2008. Collaborative Filtering for Implicit Feedback Datasets |
| Item-based CF(Collaborative Filtering) | Badrul Sarwar, George Karypis, Joseph Konstan, and John Riedl. 2001. Item-based Collaborative Filtering Recommendation Algorithms |
๋ผ์ด๋ฒ ๊ธฐ๋ฐ ๋ฌธ์ ์ถ์ฒ์์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ๋ฌ ๋ชจ๋ธ10์ ํตํด ์ฑ๋ฅ ์งํ11๋ฅผ ์ต์ํ ํ๋ ๋ฐฉํฅ์ผ๋ก ์ ์ ์ ๋ฌธ์ ํ์ด ํจํด์ ํ์ตํ๊ณ , ์์ธกํ ๊ฒฐ๊ณผ์์ ์ค์ ๋ก ์์ ์ด ํ์๋ ๋ฌธ์ ๋ ์ ์ธํ์ฌ ํํฐ๋งํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
โป 2022๋ 6์ 15์ผ ์ ํ๋ก AI Stages Server์์ GCP(Google Cloud Platform) VM Instance๋ก ์ ํ๋์์ต๋๋ค.
โป ์ ์ ๋ก๋ถํฐ Explicit Feedback์ ๋ฐ๋ API๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. (2022.06.11)
|
|
|
|
|
| ๊น์์ | ๋ฐ์ ๊ท | ์ด์ํฌ | ์ด์ ํธ | ์ง์ํ |
| ๋ผ์ด๋ฒ ์ถ์ฒ ๋ชจ๋ธ๋ง ๋ผ์ด๋ฒ ๋ฌธ์ ์ถ์ฒ ๋ชจ๋ธ๋ง ํ์คํฌ ์๋ํ ๋ชจ๋ธ ์คํ ์ฝ๋ ๋ชจ๋ํ |
๋ฐ์ดํฐ EDA Front-end ๊ฐ๋ฐ GCP๋ก Airflow ์ด์ |
๋ผ์ด๋ฒ ์ถ์ฒ ๋ชจ๋ธ๋ง ๋ผ์ด๋ฒ ๋ฌธ์ ์ถ์ฒ ๋ชจ๋ธ๋ง ์จโข์คํ๋ผ์ธ ์งํ ๊ฐ๋ฐ ๋ผ์ด๋ฒ ์ถ์ฒ ๊ณ ๋ํ |
Back-end ๊ฐ๋ฐ Front-end ๋์์ธ CI & CD ์๋ํ ๋ฌธ์ ์ถ์ฒ ๋ชจ๋ธ ์ ์ฒ๋ฆฌ |
๋ฐ์ดํฐ ์์ง๊ณผ EDA ๋ฌธ์ ์ถ์ฒ ๋ชจ๋ธ๋ง ํฐ์ด ํํฐ๋ง |
๐น ๋ฐํ ์์ ๋ณด๋ฌ ๊ฐ๊ธฐ ๐ ๋ฐํ ์๋ฃ ๋ณด๋ฌ ๊ฐ๊ธฐ
ํ๋ก์ ํธ์ ๊ดํ ์ ๋ฐ์ ์ธ ๋ด์ฉ ์๊ฐ๋ ๋ฐํ ์์ ๋๋ ์๋ฃ๋ฅผ ํ์ธํด์ฃผ์ธ์.
๐ Wrap-up Report ๋ณด๋ฌ ๊ฐ๊ธฐ
์ฃผ ์ฌ์ฉ ๋ชจ๋ธ ์คํโข๋ถ์ ๊ฒฐ๊ณผ์ ํ๋ก์ ํธ ์งํ์ ๊ดํ ์์ธํ ๋ด์ฉ์ ๋ฐํ ์๋ฃ์ Wrap-up Report๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์.
๐ป RECJOON Server Git Repository
GitHub Action ๊ถํ ๋ฌธ์ ๋ก ์ธํด ์น ์๋ฒ๋ก์ ๋ฐฐํฌ๋ ํ์ฌ Repository๋ฅผ ํตํด ์ด๋ฃจ์ด์ง์ง ์์ต๋๋ค.
์ค์ ์น ์๋ฒ๋ก ๋ฐฐํฌ๋ ์ฝ๋๋ ์์ Git Repository๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
1. Baekjoon Online Judge ์ฌ์ดํธ ์ ์ ์์ ๊ณต๊ฐ๋ ๋ฌธ์ ์ (2022.04.21) โฉ
2. Baekjoon Online Judge ๋ฌธ์ ์ ๋ผ์ด๋ฒ ์ถ์ฒ ์๋น์ค ์์ ์ ํธ๋ ์กฐ์ฌ. 'BOJ ๋ฌธ์ ๋ฅผ ์ ํํ๋ ๋ฐ ์์ด์ ์ด๋ ์ ๋์ ์ด๋ ค์์ ๊ฒช๊ณ ์์ผ์ ๊ฐ์?'. ์ฝ 51.1%์ ์๋ต์ ๋ณดํต ์ด์ ์๋ต. (45๋ช ์ฐธ์ฌ, S ๋ํ๊ต ICPC Team Slack ์ฑ๋ ๋ฑ)โฉ
3. EDA ๋ถ์ ๊ฒฐ๊ณผ, '๋ผ์ด๋ฒ๊ณผ ์ญ๋ผ์ด๋ฒ ์ ๋ถ์' (2022.04.21) โฉ
4. ์๋น์ค ๊ฐ์์ผ ๊ธฐ์ค (2022.06.11), ์ถํ ๋ณ๋ ๊ฐ๋ฅ โฉ
5. RecVAE(Variational AutoEncoder), Multi-VAE, Multi-DAE(Denoising AutoEncoder) (์๋น์ค ๊ฐ์์ผ ๊ธฐ์ค, 2022.06.11) โฉ
6. Recall@30(๋ชจ๋ธ์ด ํด๋น ์ ์ ๊ฐ ์ข์ํ ๊ฒ์ด๋ผ๊ณ ์์ธกํ ์์ 30๊ฐ ๋ฌธ์ ๊ฐ ์ค์ ๋ก ์ ์ ๊ฐ ์ข์ํ๋ ๋ฌธ์ ์ ์ํ๋ ๋น์จ) โฉ
7. Yifan Chen, and Maarten de Rijke. 2017. A Collective Variational Autoencoder for Top-N Recommendation with Side Information. ACM โฉ
8. Collaborative MF(Matrix Factorization), K-nearest neighbors (์๋น์ค ๊ฐ์์ผ ๊ธฐ์ค, 2022.06.11) โฉ
9. solved.ac ๋ ์ดํ ์ฐ์ถ๋ฒ์ ๊ธฐ๋ฐํ ์๋ ์ธ ๊ฐ์ง ์งํ ๊ฐ์ ํ๊ท
10. BPR(Bayesian Personalized Ranking), ALS(Alternating Least Squares) Matrix Factorization, item-based CF(Collaborative Filtering) (์๋น์ค ๊ฐ์์ผ ๊ธฐ์ค, 2022.06.11) โฉ
11. ์ถ์ฒ๋ ๋ฌธ์ ์ ํ๊ฒ ์ ์ ๊ฐ ํผ ๋ฌธ์ ์ ๋์ด๋ ์ฐจ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ ์งํ










