Amazon Personalize Updates(~2021.04) ๋ฐ FAQ
1. Personalize ๊ธฐ๋ฅ ์ฃผ์ ์
๋ฐ์ดํธ ๋งํฌ
Batch Recommendation (2019.11.18)
10x more Item Metadata Fields (2020.02.07)
Handling missing metadata (2020.07.02)
User personalization (2020.08.17)
Incrementally add items and users (2020.10.02)
Training time improvement (2020.10.09)
Dynamic Filters for applying Business Rules (2020.11.13)
2. Simple Updates
Contextual Information
User-Personalization ๋๋ Personalized-Ranking ๋ ์ํผ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, user์ ํ์ฌ ์์น, ์ฌ์ฉ์ค์ธ ๊ธฐ๊ธฐ, ์๊ฐ&์์ผ ๋ฑ์ ๋ฉํ ๋ฐ์ดํฐ ์์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ถ์ฒ ๊ฒฐ๊ณผ๋ฅผ ํํฐ๋งํ ์ ์์ต๋๋ค. ์ด๋ฒคํธ ๋ฐ์ ์ ์ฌ์ฉ์ ํ๊ฒฝ์์ ์์ง์ํฉ๋ณ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ฉด ๊ธฐ์กด user์๊ฒ ๋ณด๋ค ๊ฐ์ธํ๋ ์ถ์ฒ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
Recommendation Score
์์์ ์ํ๋ฉด item ์ ์ ๋ชจ๋ item์ ๋์์ผ๋ก ๊ณ์ฐํ๊ธฐ ๋๋ฌธ์ ์ ์๋ฅผ ์๋์ ์ผ๋ก ํด์ํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, item์ด 3๊ฐ์ผ ๊ฒฝ์ฐ score๋ 0.6, 0.3, 0.1์ด ๋ ์ ์์ง๋ง, 1๋ง๊ฐ์ผ ๊ฒฝ์ฐ ํ๊ท ์ ์๋ 1/10,000 ์ด๊ธฐ์, ์ต๊ณ score๋ฅผ ๋ฐ์ item๋ score๊ฐ ์์ ์ ์์ต๋๋ค.
SIM์ Popularity-Count ๋ชจ๋ธ์ ์ด ๊ธฐ๋ฅ์ ์ง์ํ์ง ์์ต๋๋ค.
Recommendation Filters
interaction ์ ๋ณด์ ๋ํ ํํฐ๋ง๊ณผ metadata ์ ๋ณด์ ๋ํ ํํฐ๋ง์ด ๋ชจ๋ ๊ฐ๋ฅํฉ๋๋ค.
interaction: https://aws.amazon.com/ko/blogs/machine-learning/introducing-recommendation-filters-in-amazon-personalize/
ํ ๋ฒ ์ถ์ฒ์ ๋ฐ๊ณ ์ ์ ๊ฐ ์ ํ(์: ํด๋ฆญ, ๋ค์ด๋ก๋)ํ ๊ฒ์ ๋ํด์, ๋ค์ ์ถ์ฒ์ ์ํ์ง ์์ ๊ฒฝ์ฐ ์ ์ฉํฉ๋๋ค.
EXCLUDE itemId WHERE INTERACTIONS.event_type in ("Click","Download")
interaction ํํฐ๋ง์ ๊ฒฝ์ฐ, ์ต๊ทผ 100๊ฐ์ ์ค์๊ฐ interaction๊ณผ ์ต๊ทผ 200๊ฐ์ historical interaction๋ง ๊ณ ๋ คํฉ๋๋ค.
EXCLUDE ItemId WHERE item.genre in ("Comedy")
Null type
์คํค๋ง ๋ฐ์ดํฐํ์ ์ ์ ์ null๋ ํ์ฉํ๊ฒ ์ ๋ฐ์ดํธ๋จ์ผ๋ก์จ, ์๋์ ๊ฐ์ ํ์ ๋ค์ ์ ์ํ ์ ์์ต๋๋ค.
float / double / int / long / string / boolean / null
Dynamic Filters
IN, =
operator์ dynamic filtering ์ ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค. ๋จ,NOT IN, <, >, <=, >=
operator๋ ์ฌ์ ํ static filter๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.dollar sign($)์ ์ฌ์ฉํ์ฌ placehold ํ๋ผ๋ฉํฐ๋ฅผ ์ถ๊ฐํ๊ณ ์ํฉ์ ๋ฐ๋ผ ๊ฐ์ ์ค์ ํด ์ค๋๋ค.
์์:
INCLUDE Item.ID WHERE items.GENRE IN ($GENRE) | EXCLUDE ItemID WHERE item.DESCRIPTION IN ("$DESCโ)
3. Recipes
Popularity-count
๋ชจ๋ user์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ฅ ์ธ๊ธฐ ์๋ item์ ์ถ์ฒํฉ๋๋ค. ๋ณ๋์ ํ์ดํผํ๋ผ๋ฉํฐ ์ค์ ์ด ํ์ ์์ผ๋ฉฐ, baseline ๋ชจ๋ธ๋ก ํ์ฉํ ์ ์์ต๋๋ค.
User-personalization
์ข ๋์ HRNN, HRNN-Meta, HRNN-Coldstart๋ฅผ ๋ชจ๋ ํฌ๊ดํ๋ฉฐ, ๋ด๋ถ์ ์ผ๋ก MAB(Multi-Armed Bndits)์ ์ฌ์ฉํ์ฌ ์ ๊ท ์์ดํ ์ด ์์ฃผ ์ ๋ฐ์ดํธ๋ ๋์ ์ ํฉํฉ๋๋ค; https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html
MAB์ ๋ํ ์ ๋ณด๋ ์๋ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ์กฐํด ์ฃผ์ธ์.
์ฃผ์ ํ์ดํผํ๋ผ๋ฉํฐ
recency_mask (Default = True)
: ์ด ๊ฐ์ False๋ก ์ง์ ์, ์ต์ popularity ํธ๋๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํ์ง ์์ต๋๋ค. ๊ณผ๊ฑฐ ์์ดํ ์ ์ถ์ฒ ๋น์ค์ ๋์ด๊ณ ์ ํ ๋๋ False๋ก ์ค์ ํด ์ฃผ์ธ์.exploration_weight (Default = 0.3)
: ์ด ๊ฒฝ์ฐ 70%๋ interaction dataset์์, 30%๋ item dataset์์ ์ถ์ฒ. ๋จ, exploration_weight = 1์ด๋ผ๊ณ 100% item dataset์์ ์ถ์ฒํ๋ ๊ฒ์ ์๋๊ณ ๊ทนํ ์ ์ ํ๋ฅ ๋ก interaction dataset์ ์ฐธ์กฐํฉ๋๋ค.exploration_item_age_cut_off (Default = 30)
. interaction dataset์ ๊ฐ์ฅ ๋ง์ง๋ง interaction ๋ ์ง(timestamp)๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ณผ๊ฑฐ 30์ผ ๋์์ item์ item metaset์์ ํ์ํฉ๋๋ค.min_user_history_length_percentile (Default = 0.0, range = [0, 1])
: ์๋ฃจ์ ํ์ต ์ ๋๋ฌด ์ ์ user history๋ฅผ ๋ฐฐ์ ํฉ๋๋ค. ์ด ํ๋ผ๋ฉํฐ๋ HPO ํ๋์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.max_user_history_length_percentile (Default = 0.99, range = [0, 1])
: ์๋ฃจ์ ํ์ต ์ ๋๋ฌด ๋ง์ user history๋ฅผ ๋ฐฐ์ ํฉ๋๋ค. ์ด ํ๋ผ๋ฉํฐ๋ HPO ํ๋์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.
SIMS
Item-based ํ์ ํํฐ๋ง์ผ๋ก cosine similiarity๋ก ์ ์ฌ ์์ดํ ์ ๊ฒ์ํฉ๋๋ค. ์ง๊ด์ ์ผ๋ก user-item ์ํธ ์์ฉ ์ ๋ณด๋ฅผ ํตํด ๋น์ทํ user๋ฅผ ์ฐพ์ ์ ์๊ธฐ์, ๋ด๊ฐ ๋ณด์ง ์์์ง๋ง ๋์ ๋น์ทํ user๊ฐ ๋ดค๋ item์ ์ถ์ฒํ๋ ๊ฒ์ ๋๋ค.
Cold-start problem / sparsity / popularity bias ์ด์๊ฐ ์์ง๋ง, ์ถฉ๋ถํ ๋ฐ์ดํฐ๊ฐ ํ๋ณด๋์๋ค๋ฉด ์ข์ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋๋ค.
์ฃผ์ ํ์ดํผํ๋ผ๋ฉํฐ
popularity_discount_factor (Default = 0.5, range = [0, 1])
: ์ ์ฌ๋๋ฅผ ๊ณ์ฐํ ๋ popularity์ correlation ์ฌ์ด์ ๊ท ํ์ ์กฐ์ ํฉ๋๋ค. 0์ผ๋ก ์ค์ ์, popularํ item๋ง ์ ํํฉ๋๋ค.min_cointeraction_count (Default = 3, range = [0, 10])
: item pair ๊ฐ์ ์ ์ฌ์ฑ์ ๊ณ์ฐํ๋ ๋ฐ ํ์ํ ์ต์ interaction ์์ ๋๋ค.min_user_history_length_percentile (Default = 0.005, range = [0, 1])
: ์๋ฃจ์ ํ์ต ์ ๋๋ฌด ์ ์ user history๋ฅผ ๋ฐฐ์ ํฉ๋๋ค. ์ด ํ๋ผ๋ฉํฐ๋ HPO ํ๋์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.max_user_history_length_percentile (Default = 0.995, range = [0, 1])
: ์๋ฃจ์ ํ์ต ์ ๋๋ฌด ๋ง์ user history๋ฅผ ๋ฐฐ์ ํฉ๋๋ค. ์ด ํ๋ผ๋ฉํฐ๋ HPO ํ๋์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.min_item_interaction_count_percentile (Default = 0.01, range = [0, 1])
: ์๋ฃจ์ ํ์ต ์ ํฌํจํ ์ต์ item interaction์ ๋ฐฑ๋ถ์์์ ๋๋ค. ์ด ํ๋ผ๋ฉํฐ๋ HPO ํ๋์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.max_item_interaction_count_percentile (Default = 0.9, range = [0, 1])
: ์๋ฃจ์ ํ์ต ์ ํฌํจํ ์ต๋ item interaction์ ๋ฐฑ๋ถ์์์ ๋๋ค. ์ด ํ๋ผ๋ฉํฐ๋ HPO ํ๋์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.
Personalized reranking
user์ ๊ณผ๊ฑฐ ํ์คํ ๋ฆฌ์ ๊ธฐ๋ฐํ์ฌ ๊ฐ์ธํ๋ ๋ญํน์ ์ถ์ฒํฉ๋๋ค.
์ฃผ์ ํ์ดํผํ๋ผ๋ฉํฐ
recency_mask (Default = True)
: ์ด ๊ฐ์ False๋ก ์ง์ ์, ์ต์ popularity ํธ๋๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํ์ง ์์ต๋๋ค. ๊ณผ๊ฑฐ ์์ดํ ์ ์ถ์ฒ ๋น์ค์ ๋์ด๊ณ ์ ํ ๋๋ False๋ก ์ค์ ํด ์ฃผ์ธ์.min_user_history_length_percentile (Default = 0.0, range = [0, 1])
: ์๋ฃจ์ ํ์ต ์ ๋๋ฌด ์ ์ user history๋ฅผ ๋ฐฐ์ ํฉ๋๋ค. ์ด ํ๋ผ๋ฉํฐ๋ HPO ํ๋์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.max_user_history_length_percentile (Default = 0.99, range = [0, 1])
: ์๋ฃจ์ ํ์ต ์ ๋๋ฌด ๋ง์ user history๋ฅผ ๋ฐฐ์ ํฉ๋๋ค. ์ด ํ๋ผ๋ฉํฐ๋ HPO ํ๋์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.
4. Incremental User/Item/interaction
Adding New items and users
item, user ์ถ๊ฐ ๊ธฐ๋ฅ์ User-personalization ๋ ์ํผ ์ฌ์ฉ์ ๊ถ์ฅํฉ๋๋ค. User-personalization ๋ ์ํผ๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ, ์๋ฃจ์ ์ฌํ์ต์ด ํ์ํฉ๋๋ค.
์ ๊ท ์์ดํ (PutItems)
User-personalization ๋ ์ํผ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์๋ฃจ์ ์ ์ฌํ์ตํ๋ ๊ฒ์ด ์๋ ๋ฉํ๋ฐ์ดํฐ์ ์ ์ ๋ฐ์ดํธํ๊ธฐ์ ๊ณง๋ฐ๋ก ๋ฐ์๋ฉ๋๋ค. ์ฆ, ์บ ํ์ธ ์ ๋ฐ์ดํธ ์ดํ ์ถ๊ฐ๋ ์์ดํ ์ด ๊ณง๋ฐ๋ก ์ถ์ฒ์ ๋ฐ์๋ฉ๋๋ค.
ํํฐ๋ง์ ๊ฒฝ์ฐ 20๋ถ ๋ด์ ๋ฐ์๋ฉ๋๋ค.
์ ๊ท ์์ดํ ์ถ๊ฐ๋ฟ๋ง ์๋๋ผ ๊ธฐ์กด ์์ดํ ์ ์์ ๋ ๊ฐ๋ฅํฉ๋๋ค. (์ฌ์ฉ ์์: ์์ดํ ์ ์์ฑ์ด ๋ณ๊ฒฝ๋์์ ๋๋, old ์์ดํ ์ ๋ ์ด์ ์ถ์ฒํ๊ณ ์ถ์ง ์์ ๋ old item์ฌ๋ถ์ ๋ํ property๋ฅผ ์ถ๊ฐ)
์ ๊ท ์ ์ (PutUsers)
์ ๊ท ์ ์ (userId๊ฐ ์๋ ์ ์ )์ ๊ฒฝ์ฐ ์ธ๊ธฐ ์์ดํ ๋ง ์ถ์ฒ๋ฉ๋๋ค. PutEvents ์์ ์์ ์ ๋ฌํ sessionId๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฒคํธ๊ฐ ์ ์ ์ ์ฐ๊ฒฐ๋๋ฉฐ, ์ด๋ฒคํธ ๊ธฐ๋ก๋ค์ด ๊ณ์ ๋์ ๋ฉ๋๋ค.
ํํฐ๋ง์ ๊ฒฝ์ฐ 20๋ถ ๋ด์ ๋ฐ์๋ฉ๋๋ค.
Recording Real-time interaction events
User-personalization ๋ ์ํผ ์ฌ์ฉ์ ์๋ฃจ์ (๋ชจ๋ธ) ์ฌํ์ต ํ์ ์์ด, 2์๊ฐ๋ง๋ค ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์๋ฃจ์ ๋ฒ์ ์ ์๋์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค.
์ฃผ์: ์๋ ์ ๋ฐ์ดํธ๋ ๋ชจ๋ธ ํ๋ผ๋ฉํฐ๋ฅผ ์ ๋ฉด์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ์๋๋ผ, ๋ด๋ถ feature store์ PutEvent๋ฅผ ํตํด ์์ธ ๋ฐ์ดํฐ๋ฅผ interaction dataset์ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์, ์ผ์ ์ฃผ๊ธฐ๋ก ์ ์ฒด ์ฌํ์ต์ ์ํํด์ผ ํฉ๋๋ค. (์: 1์ฃผ์ผ ๋จ์๋ก ์ฌํ์ต) ์ฌํ์ต ์ฃผ๊ธฐ๋ฅผ ์ธก์ ํ๊ธฐ ์ํด ๋น์ฆ๋์ค ๊ท์น์ ํ์ฉํ๊ฑฐ๋, ์จ๋ผ์ธ ๋งคํธ๋ฆญ์ ๋ชจ๋ํฐ๋งํ๋ฉด์ ๋ชจ๋ธ ๋๋ฆฌํํธ ์์ ์ ํ์ ํ ์ ์์ต๋๋ค.
์๋ ์ ๋ฐ์ดํธ์ ๋ํ ์ถ๊ฐ ๊ณผ๊ธ์ ์์ผ๋ฉฐ, ์๋ ์ ๋ฐ์ดํธ ์กฐ๊ฑด์ ์๋์ ๊ฐ์ต๋๋ค.
latest solution version์
trainingMode == FULL
์ด๊ณ , ์ ๊ท item ๋๋ ์ ๊ท interactions data๊ฐ ๋ง์ง๋ง์ผ๋ก ์๋์ผ๋ก ์ ๋ฐ์ดํธํ ์ดํ์ ์์ ๊ฒฝ์ฐ์๋ง ์ ๋ฐ์ดํธ๋ฉ๋๋ค. ์ ๋ฐ์ดํธ ์์ ์ ์ฝ์ ํ๋ฉด์ campaign detail์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.๋ค๋ง, ์์ฑํ ์๋ฃจ์ (๋ชจ๋ธ)์ด 2020๋ 11์ 17์ผ ์ด์ ์ด๋ผ๋ฉด ์๋ก ์๋ฃจ์ ์ ์์ฑํด์ผ ํ๊ณ ,
trainingMode = FULL
๋ก ์ธํ ํด์ผ ํฉ๋๋ค.๋ง์ฝ, 2์๊ฐ ์๋ ์ ๋ฐ์ดํธ ๋น๋๊ฐ ์ ํฉํ์ง ์์ ๊ฒฝ์ฐ์๋(์: 30๋ถ ๋จ์๋ก ์ ๋ฐ์ดํธ)
trainingMode = UPDATE
๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ท ์๋ฃจ์ ๋ฒ์ ์ ์์ฑํ๊ณ ์๋์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ๋จ, ์๋ ์ ๋ฐ์ดํธ ์์๋ ์ถ๊ฐ ๋น์ฉ์ด ๋ฐ์ํฉ๋๋ค.Event Tracker ์์ฑ
PutEvents
eventId๋ unique event๋ฅผ ํ๋ณํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ๋ชจ๋ธ์์ ํ์ฉ๋์ง ์์ผ๋ฉฐ, eventId๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ์๋์ผ๋ก ์์ฑํด ์ค๋๋ค. eventType์ ํ์ ๊ฐ์ ๋๋ค.
5. FAQs
https://github.com/aws-samples/amazon-personalize-samples/blob/master/PersonalizeCheatSheet2.0.md ์ ๋จผ์ ํ์ธํด ์ฃผ์ธ์.
์ถ์ฒ ๊ฒฐ๊ณผ๊ฐ ๋๋ฌด ์ต๊ทผ์ฑ๋ง ๋ฐ์๋๋๋ฐ ์ด๋ป๊ฒ ์กฐ์ ํ ๊น์?
User-personalization ๋ ์ํผ๋ฅผ ์ฌ์ฉํ๊ณ hyperparameter์
recency_mask = False(Default=True)
๋ก ๋ถ์ฌํด ์ฃผ์ธ์. ๊ทธ๋ฆฌ๊ณ ํ์์ ๋ฐ๋ผexploration_weight, exploration_item_age_cut_off
๋ ๊ฐ์ ํ๋ผ๋ฉํฐ๋ ์กฐ์ ํฉ๋๋ค.recency_mask
: ๋ชจ๋ธ์ด interaction ๋ฐ์ดํฐ์ ์ ์ต์ ์ธ๊ธฐ ํธ๋ ๋๋ฅผ ๊ณ ๋ คํ ์ง์ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ๋ง์ฝ ๊ณผ๊ฑฐ ๋ชจ๋ interaction์ ๋์ผํ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ๊ณ ์ถ๋ค๋ฉด recency_mask๋ฅผ false๋ก ์ค์ ํฉ๋๋ค.exploration_weight = 0.3 (Default)
์ด ๊ฒฝ์ฐ 70%๋ interaction dataset์์, 30%๋ item dataset์์ ์ถ์ฒ. ๋จ, exploration_weight = 1์ด๋ผ๊ณ 100% item dataset์์ ์ถ์ฒํ๋ ๊ฒ์ ์๋๊ณ ๊ทนํ ์ ์ ํ๋ฅ ๋ก interaction dataset์ ์ฐธ์กฐํฉ๋๋ค.exploration_item_age_cut_off = 30 (Default)
. interaction dataset์ ๊ฐ์ฅ ๋ง์ง๋ง interaction ๋ ์ง(timestamp)๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ณผ๊ฑฐ 30์ผ ๋์์ item์ item metaset์์ ํ์ํฉ๋๋ค.๋ํ, item dataset์ ๋ฐ์ดํฐ์ ํ๋์์ ๊ฐ ์์ดํ ์ ๋ํ
CREATION_TIMESTAMP
๋ฅผ ์ ๋ ฅํ๋ฉด ๋์ฑ ์ ํํ cold item์ ์ถ์ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.์: A์ํ์ CREATION_TIMESTAMP: 2021/04/01, B์ํ์ CREATION_TIMESTAMP: 2021/03/01์ผ ๋ ๋ง์ฝ exploration_item_age_cut_off = 20์ด๊ณ ์ ์ฒด interaction dataset์ ๊ฐ์ฅ ๋ง์ง๋ง timestamp๊ฐ 2021/04/16์ด๋ฉด, 3/28 ์ดํ์ ์๋ ์ํ๋ง ์ถ์ฒํ๊ฒ ๋๊ธฐ์ B ์ํ์ ์ถ์ฒ์ด ๋์ง ์์ต๋๋ค.
์ฆ, exploration_weight, exploration_item_age_cut_off ๋ ํ๋ผ๋ฉํฐ์ ๊ฐ์ ์ฌ๋ฆฌ๋ฉด ์กฐ๊ธ๋ old ์์ดํ ์ด ์ถ์ฒ์ด ๋๋ ํจ๊ณผ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
๋ํ, exploration_weight, exploration_item_age_cut_off๋ ํ์ต๊ณผ๋ ์๊ด์ด ์๊ธฐ์ ์ฌํ์ต ํ์ ์์ด ์บ ํ์ธ์ ์ฌ๋ฌ ๊ฐ ์์ฑํด์ ํ ์คํธํ ์ ์์ต๋๋ค.
ํน์ ์์ดํ
์ ๋๋ฌด ๋ง์ด ์ถ์ฒํด ์ค์.
Interaction ๋ฐ์ดํฐ๊ฐ ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ, ์๊ณ ๋ฆฌ์ฆ์ด popularity(์ธ๊ธฐ๋)์ ๋ํ ๊ฐ์ค์น๋ฅผ ๋์ด๊ธฐ์ popularity bias ๋น๋๊ฐ ๋์ด๋ฉ๋๋ค. interaction ๋ฐ์ดํฐ๋ฅผ ์ถฉ๋ถํ ํ๋ณดํ๊ณ user-personalization ๋ ์ํผ์ ํ์ดํผํ๋ผ๋ฉํฐ๋ฅผ ์กฐ์ ํ์ธ์.
SIMS recipe์ ๊ฒฝ์ฐ, ์ธ๊ธฐ ์์ฃผ์ ์ ์ฌ ์ํ์ ์ถ์ฒํ๊ณ item&user metadata๋ฅผ ์ด์ฉํ์ง ์๊ธฐ์ ํน์ ์์ดํ ๋ค ์์ฃผ๋ก ์ถ์ฒ๋ ์ ์์ต๋๋ค.
user dataset์ ์ปฌ๋ผ์ผ๋ก ํํฐ๋ง์ด ๊ฐ๋ฅํ๊ฐ์?
item, interaction ์ปฌ๋ผ๋ง ํํฐ๋ง ๊ฐ๋ฅํ๋ฉฐ, user์ ๊ฒฝ์ฐ๋ CURRENTUSER๋ง ๊ฐ๋ฅํฉ๋๋ค. (user ์ปฌ๋ผ ๋ถ๊ฐ๋ฅ)
์ฑ๊ณต ์์
INCLUDE ItemID WHERE Items.GENRE IN ("Comedy") IF CURRENTUSER.AGE > 20
INCLUDE ItemID WHERE Items.GENRE IN ("Comedy") IF CURRENTUSER.GENDER = "F"
์คํจ ์์
EXCLUDE ItemID WHERE Items.GENRE IN (โComedyโ) IF users.AGE > 20
# CURRENTUSER๋ง ๊ฐ๋ฅํ๋ฉฐ, user ์ปฌ๋ผ์ผ๋ก ํํฐ๋ง ๋ถ๊ฐ๋ฅINCLUDE ItemID WHERE Items.GENRE IN ("Comedy") IF CURRENTUSER.DIV > 20
# User Meta์ ์ ์๋์ง ์๋ ๊ฒฝ์ฐINCLUDE ItemID WHERE Items.GENRE IN ("Comedy") IF CURRENTUSER.GENDER > 20
# ์๋ชป๋ ์กฐ๊ฑด์ ์ ๋ ฅํ๋ ๊ฒฝ์ฐ
ํ๋ก๋์
๋ฐ์ ์ ์ฑ๋ฅ ํ
์คํธ์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์๋ ค ์ฃผ์ธ์.
Using A/B testing to measure the efficacy of recommendations generated by Amazon Personalize: https://aws.amazon.com/ko/blogs/machine-learning/using-a-b-testing-to-measure-the-efficacy-of-recommendations-generated-by-amazon-personalize/
์บ ํ์ธ ์ซ์์ ์ ํ์ด 5๊ฐ์ธ๋ฐ ๋๋ฆด ์ ์๋์?
Soft Limit์ด๊ธฐ์ ์ฆ๊ฐ ์์ฒญ ๊ฐ๋ฅํฉ๋๋ค. ์๋ ํ์ด์ง๋ฅผ ์ฐธ์กฐํด ์ฃผ์ธ์.
Latency๊ฐ ๋๋ฌด ๋์ต๋๋ค.
item ์๊ฐ ๋๋ฌด ๋ง์ ๊ฒฝ์ฐ(์: 2๋ฐฑ๋ง ๊ฐ) ์ฃผ๋ก ๋ฐ์ํฉ๋๋ค. ํ์ต ์ item ๊ฐ์๋ 75๋ง๊ฐ๊ฐ limit์ด๋ฉฐ, ์บ ํ์ธ ๋ฐฐํฌ ์์ item ๊ฐ์์ ๋ฐ๋ฅธ ์ ํ์ ๊ฑธ์ด ๋์ง๋ ์์์ง๋ง, item ๊ฐ์๊ฐ ์ง๋์น๊ฒ ๋ง์ ๊ฒฝ์ฐ ๋ชจ๋ธ ์ปจํ ์ด๋์์ ๊ณ์ฐ์ ์ํํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ๋ฐ๋ผ์, ๊ฐ๊ธ์ 75๋ง๊ฐ ๋ฏธ๋ง์ผ๋ก ์ ์งํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ๋ํ, ์ ์ ์ TPS๋ก ๋ถํ ํ ์คํธ๋ฅผ ์์ํ๊ณ ์ํ๋ TPS๋ก ๋ถํ๋ฅผ ๋๋ ค์ ํ ์คํธํด ๋ณด์ธ์. ์๋ limit์ ๊ฐ์ด ์ฐธ์กฐ ๋ถํ๋๋ฆฝ๋๋ค.
Maximum number of items that are considered by a model during training. 750 thousand
Maximum number of interactions that are considered by a model during training. 500 million
Maximum number of GetRecommendations requests per second per campaign. 500/sec
References
Amazon Personalize Deep Dive Series: https://www.youtube.com/playlist?list=PLhr1KZpdzukd9GSGRy329wahNO_8TkRo_
Last updated
Was this helpful?