k-recipe2vec / backend /docs /logic_explanation.md
๊ฐ•๋ฏผ๊ท 
Refactor: Combine Backend and Frontend into Monorepo structure
9f03b39

AI ์ถ”์ฒœ ๋กœ์ง ์ƒ์„ธ ํ•ด๋ถ€

์ด ์‹œ์Šคํ…œ์€ 12๋งŒ์—ฌ ๊ฐœ์˜ ํ•œ์‹ ๋ ˆ์‹œํ”ผ ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šตํ•œ AI๊ฐ€ ์žฌ๋ฃŒ์˜ ์˜๋ฏธ์™€ ๋ฌธ๋งฅ์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ์ด๋ฆ„์ด ๋น„์Šทํ•œ ์žฌ๋ฃŒ๊ฐ€ ์•„๋‹Œ, '์ง€๊ธˆ ์ด ์š”๋ฆฌ์— ๊ฐ€์žฅ ์ž˜ ์–ด์šธ๋ฆฌ๋Š”' ์ตœ์ ์˜ ๋Œ€์•ˆ์„ ์ฐพ์•„๋‚ด๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.


๐Ÿ’ก AI๋Š” ์žฌ๋ฃŒ๋ฅผ ์–ด๋–ป๊ฒŒ ์ดํ•ดํ• ๊นŒ์š”? (3์ฐจ์› ๋ฒกํ„ฐ ๊ณต๊ฐ„ ์˜ˆ์‹œ)

AI๋Š” ๋ชจ๋“  ์‹์žฌ๋ฃŒ๋ฅผ ๊ฑฐ๋Œ€ํ•œ 3์ฐจ์› ๊ณต๊ฐ„(์‹ค์ œ๋กœ๋Š” ์ˆ˜๋ฐฑ ์ฐจ์›) ์†์˜ **'์ขŒํ‘œ(๋ฒกํ„ฐ)'**๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.

  • ์œ ์‚ฌ๋„๊ฐ€ ๋†’๋‹ค๋Š” ๋œป: ์ด ๊ณต๊ฐ„์—์„œ ๋‘ ์žฌ๋ฃŒ์˜ ์ขŒํ‘œ๊ฐ€ ์„œ๋กœ ๊ฐ€๊นŒ์šด ์œ„์น˜์— ๋ชจ์—ฌ ์žˆ๊ฑฐ๋‚˜, ์›์ ์—์„œ ๋ป—์–ด๋‚˜๊ฐ€๋Š” ํ™”์‚ดํ‘œ์˜ ๋ฐฉํ–ฅ์ด ๋น„์Šทํ•˜๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ '๋ผ์ง€๊ณ ๊ธฐ'์™€ '์†Œ๊ณ ๊ธฐ'๋Š” '์œก๋ฅ˜'๋ผ๋Š” ๋น„์Šทํ•œ ์„ฑ์งˆ์„ ๊ฐ€์ ธ ๊ณต๊ฐ„์ƒ์—์„œ ๊ฐ€๊นŒ์šด ์œ„์น˜์— ๋ชจ์—ฌ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, '์‚ฌ๊ณผ'๋Š” ์„ฑ์งˆ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. AI๋Š” ์ด **'๊ฑฐ๋ฆฌ์™€ ๋ฐฉํ–ฅ์˜ ๋ฉ‚๊ณผ ๊ฐ€๊นŒ์›€'**์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ถ”์ฒœ์— ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.


1๋‹จ๊ณ„. ์˜๋ฏธ ํŒŒ์•… (Word2Vec): "์นœ๊ตฌ๋ฅผ ๋ณด๋ฉด ๋„ˆ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์–ด"

  • ํ•ต์‹ฌ ์›๋ฆฌ: AI๋Š” ์žฌ๋ฃŒ์˜ ๋ง›์ด๋‚˜ ์‹๊ฐ์„ ์ง์ ‘ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹  **'ํ•จ๊ป˜ ์ž์ฃผ ์“ฐ์ด๋Š” ์ฃผ๋ณ€ ์žฌ๋ฃŒ(๋ฌธ๋งฅ)'**๊ฐ€ ๋น„์Šทํ• ์ˆ˜๋ก ์œ ์‚ฌํ•œ ์—ญํ• ์„ ํ•˜๋Š” ์žฌ๋ฃŒ๋กœ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ์‹œ (ํƒ€๊ฒŸ ์žฌ๋ฃŒ: ๋ผ์ง€๊ณ ๊ธฐ)
    • ๋ผ์ง€๊ณ ๊ธฐ์˜ ์นœ๊ตฌ๋“ค: [๊ฐ„์žฅ, ๋งˆ๋Š˜, ์–‘ํŒŒ, ๊ณ ์ถ”์žฅ, ๊น€์น˜, ๋ณถ๊ธฐ]
    • ๐Ÿฅฉ ์†Œ๊ณ ๊ธฐ (์œ ์‚ฌ๋„ 0.85): [๊ฐ„์žฅ, ๋งˆ๋Š˜, ์–‘ํŒŒ, ์ฐธ๊ธฐ๋ฆ„, ๋ถˆ๊ณ ๊ธฐ] โ†’ ๊ฒน์น˜๋Š” ์นœ๊ตฌ๊ฐ€ ๋งค์šฐ ๋งŽ์Œ (๋น„์Šทํ•œ ์žฌ๋ฃŒ!)
    • ๐ŸŸ ๊ณ ๋“ฑ์–ด (์œ ์‚ฌ๋„ 0.45): [๊ฐ„์žฅ, ๋งˆ๋Š˜, ๋ฌด, ์ƒ๊ฐ•, ๋น„๋ฆฐ๋‚ด] โ†’ ์ผ๋ถ€ ๊ฒน์น˜์ง€๋งŒ, ๋‹ค๋ฅธ ์นœ๊ตฌ๋“ค๋„ ๋งŽ์Œ (์กฐ๊ธˆ ๋‹ค๋ฅธ ์žฌ๋ฃŒ)
    • ๐ŸŽ ์‚ฌ๊ณผ (์œ ์‚ฌ๋„ 0.10): [์„คํƒ•, ๋งˆ์š”๋„ค์ฆˆ, ์ƒ๋Ÿฌ๋“œ, ์•„์นจ] โ†’ ๊ฒน์น˜๋Š” ์นœ๊ตฌ๊ฐ€ ๊ฑฐ์˜ ์—†์Œ (์™„์ „ํžˆ ๋‹ค๋ฅธ ์žฌ๋ฃŒ)

2๋‹จ๊ณ„. ๋ฌธ๋งฅ ์ดํ•ด (Doc2Vec): "๊ฐ™์€ ์กฐ๋ฆฌ๋ฒ• ์ƒํ™ฉ์—์„œ์˜ ๊ถํ•ฉ ํŒŒ์•…"

  • ํ•ต์‹ฌ (์ฝ”๋“œ ๊ตฌํ˜„ ๋‚ด์šฉ): ๋‹จ์ˆœํžˆ '์ด ์žฌ๋ฃŒ๊ฐ€ ์š”๋ฆฌ์— ์–ด์šธ๋ฆฌ๋‚˜?'๋ฅผ ๋ณด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, 'ํ˜„์žฌ์˜ ์กฐ๋ฆฌ๋ฐฉ๋ฒ•(์˜ˆ: ๋“์ด๊ธฐ, ๋ณถ๊ธฐ)'๊ณผ ๋™์ผํ•œ ์ƒํ™ฉ์—์„œ ์ž˜ ์–ด์šธ๋ฆฌ๋Š”์ง€๋ฅผ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.
  • ์ž‘๋™ ์›๋ฆฌ (Ver.1 DB ๋ชจ๋“œ ๊ธฐ์ค€):
    1. ํ˜„์žฌ ํƒ€๊ฒŸ ์š”๋ฆฌ์˜ **'์กฐ๋ฆฌ๋ฐฉ๋ฒ•'(์˜ˆ: ๋“์ด๊ธฐ)**์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    2. ํ›„๋ณด ์žฌ๋ฃŒ๊ฐ€ ์‚ฌ์šฉ๋œ ์ˆ˜๋งŽ์€ ๋ ˆ์‹œํ”ผ ์ค‘, ๊ฐ™์€ ์กฐ๋ฆฌ๋ฐฉ๋ฒ•('๋“์ด๊ธฐ')์ด ์‚ฌ์šฉ๋œ ๋ ˆ์‹œํ”ผ๋“ค๋งŒ ๊ณจ๋ผ๋ƒ…๋‹ˆ๋‹ค.
    3. ๊ณจ๋ผ๋‚ธ ๋ ˆ์‹œํ”ผ๋“ค์˜ ์ขŒํ‘œ๊ฐ€ ํ˜„์žฌ ํƒ€๊ฒŸ ์š”๋ฆฌ์˜ ์ขŒํ‘œ์™€ ์–ผ๋งˆ๋‚˜ ๊ฐ€๊นŒ์šด์ง€ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
  • ์™œ ์ด๋ ‡๊ฒŒ ํ•˜๋‚˜์š”? ๊ฐ™์€ ์žฌ๋ฃŒ๋ผ๋„ '๋ณถ์„ ๋•Œ'์™€ '๋“์ผ ๋•Œ'์˜ ์—ญํ• ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์กฐ๋ฆฌ๋ฒ• ์กฐ๊ฑด์„ ๊ฑธ์–ด ๋” ์ •ํ™•ํ•œ ๋ฌธ๋งฅ ํŒŒ์•…์„ ํ•ฉ๋‹ˆ๋‹ค.

3๋‹จ๊ณ„. ํ†ต๊ณ„์  ์ ํ•ฉ์„ฑ (Ver.1 DB ๋ชจ๋“œ ์ „์šฉ): "๋ฐ์ดํ„ฐ ๊ฒ€์ฆ (Lift)"

  • ์—ญํ• : ์‹ค์ œ ๋ฐ์ดํ„ฐ์—์„œ ํ•ด๋‹น ์žฌ๋ฃŒ๊ฐ€ ํŠน์ • ์กฐ๋ฆฌ๋ฒ•์ด๋‚˜ ์š”๋ฆฌ ์นดํ…Œ๊ณ ๋ฆฌ์— '์œ ๋…' ๋งŽ์ด ์“ฐ์ด๋Š”์ง€ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. (์—ฌ๊ธฐ์„œ ์นดํ…Œ๊ณ ๋ฆฌ ์ •๋ณด๋„ ํ•จ๊ป˜ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.)
  • ํ•ต์‹ฌ ๊ฐœ๋… (Lift, ํ–ฅ์ƒ๋„): ํ‰๊ท ์ ์ธ ์‚ฌ์šฉ ํ™•๋ฅ  ๋Œ€๋น„, ํŠน์ • ์กฐ๊ฑด์—์„œ ์‚ฌ์šฉ ํ™•๋ฅ ์ด ์–ผ๋งˆ๋‚˜ ๋†’์•„์ง€๋Š”์ง€๋ฅผ ๋ด…๋‹ˆ๋‹ค. ๊ธฐ์ค€๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.
  • ํŒ๋‹จ ๊ธฐ์ค€:
    • Lift > 1 (์ถ”์ฒœ): ํ‰๊ท ๋ณด๋‹ค ์ด ์กฐ๊ฑด์—์„œ ๋” ์ž์ฃผ ์“ฐ์ž„ (๊ถํ•ฉ์ด ์ข‹์Œ)
    • Lift โ‰ˆ 1 (๋ณดํ†ต): ํ‰๊ท ์ ์ธ ์ˆ˜์ค€์œผ๋กœ ์“ฐ์ž„
    • Lift < 1 (๋น„์ถ”์ฒœ): ํ‰๊ท ๋ณด๋‹ค ์ด ์กฐ๊ฑด์—์„œ ๋œ ์“ฐ์ž„ (๊ถํ•ฉ์ด ์•ˆ ์ข‹์Œ)
  • ์˜ˆ์‹œ (์กฐ๋ฆฌ๋ฒ•: ๋“์ด๊ธฐ): ๋‘๋ถ€(Lift > 1, ๋“์ผ ๋•Œ ํ•„์ˆ˜), ์ƒ์ถ”(Lift < 1, ๋“์ผ ๋•Œ ์•ˆ ์”€)

๐Ÿš€ ์ถ”์ฒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹ฌํ™”: ์–ด๋–ป๊ฒŒ ์ตœ์ ์˜ ์žฌ๋ฃŒ๋ฅผ ์ฐพ์•„๋‚ผ๊นŒ?

1. ๋‹จ์ผ ์žฌ๋ฃŒ ๋Œ€์ฒด (Best N ์ฐพ๊ธฐ)

  • ์œ„ 1~3๋‹จ๊ณ„ ์ ์ˆ˜์— ๊ฐ€์ค‘์น˜๋ฅผ ์ ์šฉํ•œ ์ตœ์ข… ์ข…ํ•ฉ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ์ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ์ˆœ์„œ๋Œ€๋กœ ์ƒ์œ„ N๊ฐœ์˜ ์žฌ๋ฃŒ๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

2. ๋‹ค์ค‘ ์žฌ๋ฃŒ ๋Œ€์ฒด (์ตœ์  ์กฐํ•ฉ ์ฐพ๊ธฐ - ๋น” ์„œ์น˜)

  • ์—ฌ๋Ÿฌ ์žฌ๋ฃŒ๋ฅผ ๋™์‹œ์— ๋ฐ”๊ฟ€ ๋•Œ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ํญ๋ฐœ์ ์œผ๋กœ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ํšจ์œจ์ ์ธ ํƒ์ƒ‰์„ ์œ„ํ•ด **'๋น” ์„œ์น˜(Beam Search)'**๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ž‘๋™ ์›๋ฆฌ (๋งค ๋‹จ๊ณ„๋งˆ๋‹ค):
    1. ํ˜„์žฌ๊นŒ์ง€ ๊ตฌ์„ฑ๋œ ์กฐํ•ฉ์— ์ƒˆ๋กœ์šด ์žฌ๋ฃŒ ํ›„๋ณด๋ฅผ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•ด๋ด…๋‹ˆ๋‹ค.
    2. ์ƒˆ๋กœ์šด ์กฐํ•ฉ์˜ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. (์ ์ˆ˜ = ํ˜„์žฌ๊นŒ์ง€์˜ ์ ์ˆ˜ + ์ƒˆ ์žฌ๋ฃŒ์˜ AI ์ ์ˆ˜)
    3. ๋ชจ๋“  ํ›„๋ณด ์กฐํ•ฉ ์ค‘ ์ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ์ƒ์œ„ K๊ฐœ(Beam Width)์˜ ์กฐํ•ฉ๋งŒ ๋‚จ๊ธฐ๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.
    4. ์ด ๊ณผ์ •์„ ๋ชฉํ‘œํ•œ ์žฌ๋ฃŒ ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ ๊ฐ€์žฅ ์ข‹์€ ์กฐํ•ฉ์„ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค.

      ๐Ÿ’ก ๋น„์œ : ์–ด๋‘์šด ์ˆฒ์†์—์„œ ๋ณด๋ฌผ์„ ์ฐพ์„ ๋•Œ, ์—ฌ๋Ÿฌ ๊ฐˆ๋ž˜ ๊ธธ ์ค‘ ๊ฐ€์žฅ ๋ฐ์€ ๋น›์ด ๋น„์ถ”๋Š” ๊ธธ 3๊ณณ(K=3)๋งŒ ๊ณจ๋ผ์„œ ๊ณ„์† ๋”ฐ๋ผ๊ฐ€๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.


๐Ÿ† ์ตœ์ข… ์ข…ํ•ฉ ์ ์ˆ˜ ๊ณ„์‚ฐ ์˜ˆ์‹œ (๊ฐ€์ค‘์น˜ ์ ์šฉ)

(์‹œ๋‚˜๋ฆฌ์˜ค: ๊น€์น˜์ฐŒ๊ฐœ(๋“์ด๊ธฐ, ๊ตญ/ํƒ•)์—์„œ '๋ผ์ง€๊ณ ๊ธฐ' ๋Œ€์‹  '์ฐธ์น˜์บ”' ์ถ”์ฒœ ์‹œ)

  • 1. ์˜๋ฏธ ์ ์ˆ˜: 0.70 ร— ๊ฐ€์ค‘์น˜ 5.0 = 3.50
  • 2. ๋ฌธ๋งฅ ์ ์ˆ˜: 0.95 ร— ๊ฐ€์ค‘์น˜ 1.0 = 0.95 (๊ฐ™์€ '๋“์ด๊ธฐ' ์š”๋ฆฌ๋“ค๊ณผ ๋น„๊ต)
  • 3. ์กฐ๋ฆฌ ํ†ต๊ณ„: 0.90 ร— ๊ฐ€์ค‘์น˜ 1.0 = 0.90 ('๋“์ด๊ธฐ' ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ)
  • 4. ๋ถ„๋ฅ˜ ํ†ต๊ณ„: 0.85 ร— ๊ฐ€์ค‘์น˜ 1.0 = 0.85 ('๊ตญ/ํƒ•' ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ)

๐Ÿ‘‰ ์ด์ : 3.50 + 0.95 + 0.90 + 0.85 = 6.20 / (์ด ๊ฐ€์ค‘์น˜ 8.0) = ์ตœ์ข… ์ ํ•ฉ๋„ 77.5%


๐Ÿ’ฐ ์˜ˆ์ƒ ์›๊ฐ€ ๋ณ€๋™ (๋ณ„๋„ ๊ณ„์‚ฐ)

AI ์ ์ˆ˜์™€ ๋ณ„๊ฐœ๋กœ ์ œ๊ณต๋˜๋Š” ์ฐธ๊ณ  ์ •๋ณด์ž…๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ์ •ํ™•ํ•œ ์‹œ์„ธ๊ฐ€ ์•„๋‹Œ, **์‚ฌ์ „์— ์ •์˜๋œ ์žฌ๋ฃŒ๋ณ„ ์ƒ๋Œ€์  ๊ฐ€๊ฒฉ ๋“ฑ๊ธ‰(1~5๋“ฑ๊ธ‰)**์„ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.

  • ์˜ˆ: ๋ผ์ง€๊ณ ๊ธฐ(4๋“ฑ๊ธ‰) โžก๏ธ ๋‘๋ถ€(2๋“ฑ๊ธ‰) ๋Œ€์ฒด ์‹œ 4 - 2 = +2 (๐ŸŸข ์ด +2๋‹จ๊ณ„ ์ ˆ๊ฐ ์˜ˆ์ƒ)