๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํšŒ๊ณ  ๐Ÿค”/๋„ค๋ถ€์บ  AI Tech

[๋„ค๋ถ€์บ  AI Tech] 6์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ ๐Ÿค“

by judy@ 2023. 12. 15.

๋ชฉ์ฐจ

     


    ํ•™์Šต ์ •๋ฆฌ & ๋ฐฐ์šด์ 

    # 231211

    ์ด๋‚  ํ•˜๋ฃจ๋Š” ํฌ์ŠคํŒ…์„ ํ–ˆ๋‹ค.

     

    # 231212

    ํ•™์Šต ์ •๋ฆฌ ๋ฐ ๋ฐฐ์šด์  ๐Ÿ“š

    - 3๊ฐ• ๋“ฃ๊ธฐ

       - latent factor model: ์œ ์ €๋‚˜ ์•„์ดํ…œ์„ ์ถ•์•ฝ๋œ ๋ฒกํ„ฐ ๊ณต๊ฐ„์— ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์•„์ด๋””์–ด.

       - SVD๋Š” ์ˆ˜ํ•™์ ์œผ๋กœ ๋ถ„ํ•ด, MF๋Š” SVD์˜ ์ผ๋ฐ˜ํ™”๋œ ๋ฒ„์ „์œผ๋กœ ์œ ์ €์™€ ์•„์ดํ…œ ํ–‰๋ ฌ์˜ ์„ ํ˜•์ ์ธ ๊ด€๊ณ„๋ฅผ SGD๋กœ ์บก์ฒ˜ํ•˜์—ฌ ํ•™์Šตํ•˜๋Š” ๋ฐฉ๋ฒ•. MF๋ฅผ ALS๋กœ ํ•™์Šตํ•˜๋ฉด, loss๊ฐ€ parameter์— ๋Œ€ํ•ด convex ํ˜•ํƒœ๊ฐ€ ๋˜์–ด ํ•™์Šต์ด ๋” ์‰ฌ์›Œ์ง€๋ฉฐ, ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ ธ ๋” ํšจ์œจ์ ์ธ ํ•™์Šต ๊ฐ€๋Šฅํ•จ

       - hybrid ์ ‘๊ทผ๋ฒ•: weighted, switching, mixed ๊นŒ์ง€๋Š” ์ดํ•ด๊ฐ€ ๊ฐ€๋Š”๋ฐ, Feature combination, augmentation ๋“ฑ์€ ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ๋จ

       - GBTM ๋ฐฉ์‹ ์ค‘ GBM์„ ๋ฐœ์ „์‹œํ‚จ ์„ธ ์ข…๋ฅ˜์˜ ๋ชจ๋ธ(XGBoost, lightGBM, CatBoost)์— ๋Œ€ํ•ด ํ•™์Šตํ•จ. ์„ธ ๋ชจ๋ธ์€ ์ถ”์ฒœ ๋ฌธ์ œ์—์„œ๋„ robustํ•˜๋ฉฐ, ๋†’์€ ์„ฑ๋Šฅ์„ ๋‚ด๋Š” ํŽธ์ด๋ผ๊ณ  ํ•จ -> ์ด๋ฒˆ ๋Œ€ํšŒ์—๋„ ์ ์šฉํ•ด๋ด„.

    - ๋ถ€์บ  ์‚ด๋กฑ์„ ํ†ตํ•ด ๋‹ค๋ฅธ ์บ ํผ๋“ค๊ณผ ๊ด€์‹ฌ์‚ฌ๋ฅผ ์„œ๋กœ ๊ณต์œ ํ•จ. ๋ช‡ ํŒ€์ด ๊ฒฐ์„ฑ๋จ์— ๋”ฐ๋ผ ์กฐ๋ฐ”์‹ฌ๋„ ๋‚˜๊ณ , ์‹ ์ค‘ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๊ณ  ๊ณ ๋ฏผ์ด ๋งŽ์•˜๋˜ ๋‚ ์ด์—ˆ์Œ

    # 231213

    ํ•™์Šต ์ •๋ฆฌ ๋ฐ ๋ฐฐ์šด์  ๐Ÿ“š

    - ๋ฌด์‚ฌํžˆ ํŒ€์—…์„ ์™„๋ฃŒํ•จ. ๊ฐ™์ด ์ž˜ํ•ด๋ณด์•„์š” ๐Ÿฅฐ

    - Book Rating ๋Œ€ํšŒ์˜ ๋ฆฌ๋”๋ณด๋“œ๊ฐ€ ์˜คํ”ˆ๋œ ๋‚ . ์›”ํ™” ๋™์•ˆ ๋งŽ์€ ๊ณ ๋ฏผ์„ ํ–ˆ์ง€๋งŒ, GPU์„œ๋ฒ„๋ฅผ ๋ฐ›์•„ ์„ธํŒ…ํ•˜๋‹ˆ ์‹œ๊ฐ„์ด ๋งŽ์ด ํ˜๋ €๋‹ค.

    - ์šฐ์„  ์ž˜ ์ž‘์„ฑ๋˜์–ด ์žˆ๋Š” ๋ฒ ์ด์Šค ์ฝ”๋“œ ์ค‘ ๋ฐฐ์› ๋˜ ๊ฒƒ๋“ค์„ ์œ„์ฃผ๋กœ ๋œฏ์–ด๋ณด๊ณ , ์žฌ๊ตฌ์„ฑํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๊ณ  ๋ฐค ๋Šฆ๊ฒŒ๊นŒ์ง€ ๋œฏ์–ด๋ณด๋ฉฐ 1ํšŒ ์ œ์ถœ์„ ํ•ด๋ณด์•˜๋‹ค. ๊ณต์ง€ํ•ด์ฃผ์‹  loss ๋Œ€๋น„ ๋†’๊ฒŒ ๋‚˜์˜จ ๊ฐ์ด ์žˆ์–ด ์•ž์œผ๋กœ ์–ด๋–ป๊ฒŒ ์‹คํ—˜ ๊ด€๋ฆฌ๋ฅผ ํ•ด์•ผํ• ์ง€ ๊ณ ๋ฏผ์ด ๋˜๋Š” ๋‚ ์ด์—ˆ๋‹ค.

    - ๋‚ด๊ฐ€ ๋ถ„์„ํ•œ ๋ชจ๋ธ์€ CNN-FM๋กœ, ๋ฐฐ์šด ๊ฐœ๋…์„ ์•„์ฃผ ์•ฝํ•˜๊ฒŒ ์‘์šฉํ•œ ๋ชจ๋ธ์ด์—ˆ์Œ. ์ฑ…ํ‘œ์ง€ ์ด๋ฏธ์ง€์—์„œ CNN์„ ํ†ตํ•ด ํŠน์„ฑ์„ ์ถ”์ถœํ•˜๊ณ  ID ์ž„๋ฒ ๋”ฉ๊ณผ ๋‚ด์ ์„ ํ†ตํ•ด rating์„ ์˜ˆ์ธกํ•˜๋Š” ๋ชจ๋ธ์ด์—ˆ์Œ. ๋‚ด์†์œผ๋กœ ๋‹ค์‹œ ๋ชจ๋ธ์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ๋ณด๋‹ˆ np.cumsum ๋“ฑ์„ ํ™œ์šฉํ•˜๋Š” ๊ณณ์—์„œ ์ต์ˆ™ํ•˜์ง€ ์•Š์•˜๋Š”๋ฐ, ์ด๋ฒˆ ๊ธฐํšŒ๋ฅผ ํ†ตํ•ด FM vs. FFM์˜ ๊ฐœ๋…์„ ๊ตฌํ˜„์„ ํ†ตํ•ด ๋‹ค์‹œ ํ•œ ๋ฒˆ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ๋จ

    # 231214

    ํ•™์Šต ์ •๋ฆฌ ๋ฐ ๋ฐฐ์šด์  ๐Ÿ“š

    - ํŒ€์›๋“ค๊ณผ Git์„ ํ†ตํ•œ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์˜ค๋žœ ์‹œ๊ฐ„ ๋…ผ์˜ํ•˜๊ณ , ์•ž์œผ๋กœ ์–ด๋–ค ์‹คํ—˜์„ ํ•  ๊ฒƒ์ด๋ฉฐ, ๊ณต์œ ๋ฅผ ์–ด๋–ป๊ฒŒ ํ• ์ง€ ๋…ผ์˜ํ•จ.

    - ํ˜ผ์žํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์†๋„๋Š” ๋œ ๋‚˜์ง€๋งŒ, ๊ฐ™์ด ํ•˜๊ฒŒ ๋˜์–ด ์„œ๋กœ์˜ ์ง€์‹์„ ๊ณต์œ ํ•˜๊ณ , ํ˜‘์—…์„ ์œ„ํ•ด์„œ ์–ด๋–ป๊ฒŒ git์„ ๊ด€๋ฆฌํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•ด ์ถฉ๋ถ„ํžˆ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด ๋˜์–ด ์ข‹์•˜์Œ.

    - ํŒ€์› ์ค‘ ํ•œ ๋ช…์ด manual parameter tuning์œผ๋กœ ๋‹น์ผ ๋ฆฌ๋”๋ณด๋“œ 1์œ„๋ฅผ ํ–ˆ๋Š”๋ฐ, ๋‚˜๋„ ๊ทธ๋Ÿฌ๊ณ  ์‹ถ๋‹ค + ์Œ..์ € ๋ชจ๋ธ์ด ์—ฌ๊ธฐ์„œ ์ž˜ ๋™์ž‘ํ•˜๋Š” ์ด์œ ๋Š” ๋ญ˜๊นŒ ์ƒ๊ฐํ•ด๋ณด๊ฒŒ ๋จ.

    - ๋‹ค์Œ์ฃผ๊นŒ์ง€ cheatsheet draft๋ฅผ ๋งŒ๋“ค๊ณ  ๊ตฌ์ฒดํ™”ํ•ด์„œ 1์›” ๋‚ด๋กœ ์ „์ฒด์— ๋ฐฐํฌํ•ด๋ด์•ผ๊ฒ ๋‹ค๋Š” ๋‹ค์ง(๊ณผ ์‹คํ–‰)์„ ํ•œ ๋‚ 

    - ๊ทธ๋ฆฌ๊ณ  ์•ž์œผ๋กœ ์–ด๋–ค ์‹์œผ๋กœ ๋Œ€ํšŒ์— ์ž„ํ•ด๋ณผ์ง€ ๊ณ„ํšํ•ด๋ณด์•˜๋‹ค. ์•„์ง์€ ๋Œ€ํšŒ ์ค‘์ด๋‹ˆ ๋ง์„ ์•„๊ปด์•ผ๊ฒ ์ง€๋งŒ, ๊ณ„ํšํ•œ ๊ฑฐ ๋‹คํ•˜๋ฉด ๊ทธ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๋‚˜ ์Šค์Šค๋กœ ์ •๋ง ์ž˜ํ–ˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

     

    # 231215

    ํ•™์Šต ์ •๋ฆฌ ๋ฐ ๋ฐฐ์šด์  ๐Ÿ“š

    - ์ง€๋‚œ ๋ฐค์— ํ•™์›์„ ๋‹ค๋…€์™€์„œ ๋ฐ”๋กœ ํ•ด๋ณด๊ณ  ์‹ถ์€ ์‹œ๋„๋ฅผ ํ•ด๋ดค๊ณ , ๊ฐ€๋Šฅ์„ฑ์ด ๋ณด์˜€๋‹ค.

    - ์˜ค์ „์— FM vs. FFM๊ณผ nn.Parameter vs. nn.Embedding์˜ ๊ตฌํ˜„์— ๋Œ€ํ•ด์„œ ์ดํ•ด๊ฐ€ ๊ฐ€๋„๋ก ํŒ€์›๋“ค์—๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ์—ˆ๋Š”๋ฐ, ๋ชจ๋‘ ์ดํ•ด๊ฐ€ ์ž˜ ๊ฐ€๊ณ  ์ข‹์•˜๋‹ค๊ณ  ํ•ด์„œ ๋ฟŒ๋“ฏํ–ˆ๋‹ค! ์•ž์œผ๋กœ๋„ ๋„์™€๊ฐ€๋ฉด์„œ ๋‚˜๋„ ๊ณต๋ถ€ ๋”ํ•˜๊ณ  ๊ทธ๋ ‡๊ฒŒ ๊ณ„์† ํ•ด๋ณด์Ÿˆ!!

    - ์‹คํ—˜๊ด€๋ฆฌ ํˆด์„ ์„ธํŒ…ํ•˜๋‹ˆ ํ™•์‹คํžˆ ๊ฒฐ๊ณผ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ๋งค์šฐ ํŽธํ•œ ๊ฒƒ ๊ฐ™์•˜๋‹ค.

    - Git issue, pull request ๊ณ„์†ํ•ด๋„ conflict ๋„ ๋‚˜๊ณ  ๊ผฌ์ด๊ณ  ํ•˜์ง€๋งŒ, ๊ทธ๋ž˜๋„ ํ•˜๋‚˜์”ฉ ์–ป์–ด๊ฐ€๋Š” ๊ฒƒ ๊ฐ™์•„ ์žฌ๋ฏธ์žˆ๋‹ค.

    - ๋งค์ผ ๋ฌด๋…๋ฌด์ƒ์œผ๋กœ git pull... ํ–ˆ๋Š”๋ฐ ์ด์ œ๋Š” git fetch.. git merge or rebase.. ์˜ ์Šต๊ด€์œผ๋กœ ๋ฐ”๋€Œ์–ด๊ฐ„๋‹ค.

    - git checkout vs. git switch + git restore ์ •ํ™•ํžˆ๋Š” ์ดํ•ด๋˜์ง€ ์•Š์•˜์ง€๋งŒ, ๋ธŒ๋žœ์น˜๊ฐ„ ์ „ํ™˜์—๋Š” switch, ์›Œํ‚น ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ ์ˆ˜์ • ์‚ฌํ•ญ์„ head commit์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ •๋„๋งŒ ์•Œ์•˜๋‹ค. ์• ์ดˆ์— checkout์„ ์ด ์šฉ๋„๋กœ๋งŒ ์“ด ๊ฒƒ ๊ฐ™์€๋ฐ ํ˜น์‹œ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์ด ๋” ์žˆ์—ˆ๋˜ ๊ฑด๊ฐ€..?

     


    5์ฃผ์ฐจ ์ดํ‰ ๐Ÿค”

    ๊ทน๋น„๋„ ์žˆ์œผ๋‹ˆ๊นŒ ์ด๋ฒˆ์ฃผ๋Š” ์กฐ์šฉํžˆ ๋งˆ๋ฌด๋ฆฌ, ๋‹ค์Œ์ฃผ ๋žฉ์—… ๋ฆฌํฌํŠธ ์ž˜ ์ œ์ถœํ•˜๊ธฐ ์œ„ํ•ด ์ง€๊ธˆ๊นŒ์ง€ ํ•œ ์ž‘์—…๋“ค์„ ์ฐจ๊ณก์ฐจ๊ณก ์ž˜ ์ •๋ฆฌํ•ด๋‘์–ด์•ผ๊ฒ ๋‹ค. ํ˜ผ์ž๋Š” ์ž‘์€ ๋Œ€ํšŒ ๋ช‡ ๋ฒˆ ์ฐธ์—ฌํ•ด๋ดค์œผ๋‚˜, ๊ฐ™์ด ํ•˜๋Š” ๋Œ€ํšŒ๋Š” ๋˜ ์ฒ˜์Œ์ด๋ผ ์–ด๋ ต๊ธฐ๋„ ์žฌ๋ฏธ์žˆ๊ธฐ๋„ ํ•˜๋‹ค. ๊ฐ™์ด ๋งˆ์Œ ๋งž์ถฐ์„œ ์„ฑ์žฅ๋„ ์ž˜ํ•˜๊ณ , ์ข‹์€ ์„ฑ๋Šฅ๊นŒ์ง€ ๋ค์œผ๋กœ ๋”ฐ๋ผ์˜ค๋ฉด ์ข‹๊ฒ ๋‹ค!

    ๋ฐ˜์‘ํ˜•