inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

(UPDATED) Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능

Keras로 mf 구현하기 에러

해결된 질문

272

1987

작성한 질문수 2

1

모델 fitting 할 때 이런 에러가 계속 뜹니다,,, 강의에 사용한 코드와 동일하게 입력했는데 해결이 되지 않습니다ㅠㅠ

추천-시스템 딥러닝

답변 1

0

거친코딩

안녕하세요.!

질문 남겨주셔서 감사합니다.

해당 에러를 보니까 학습자님의 input 값에 2147483647 이란 값이 있는데, 이 값이 구축하신 embedding layer에 올바르지 않다고 나와있네요.
아래 예시코드와 같이 한번 해보시구 그래도 안되시면 코드 & 에러 첨부해주셔서 다시 한번 연락주시면 감사하겠습니다.

-거친코딩 드림-

 

# 학습 및 테스트 데이터 받기
r_cols = ['user_id','movie_id','rating','timestamp']
ratings = pd.read_csv('drive/MyDrive/RecoSys/Data/u.data',
names=r_cols,
sep='\t',
encoding='latin-1')

ratings_train,ratings_test = train_test_split(ratings,
test_size=0.2,
shuffle=True,
random_state=2021)
 
====================
모델 구축 부분 생략
====================
 
 
# Model fitting
# 위에서 구성한 신경망을 학습시키는 부분
result = model.fit(
# train set의 입력을 지정하는 부분으로,
# 입력은 각 사용자와 아이템을 구분하기 위한
# One-hot encoding을 위해서 각 사용자와 아이템의 ID가 사용된다.
x=[ratings_train.user_id.values,
ratings_train.movie_id.values],
# train set의 출력을 지정하는 부분
# 출력은 평점값에서 전체평균을 빼서 사용한다.
# 전체 평균을 빼는 이유는 앞에서 설명한 것과 같이
# 전체 평균을 신경망 모델에 직접 넣는 것은 복잡하기 때문이다.
y=ratings_train.rating.values - mu,
# 학습 반복 횟수를 지정한다.
epochs=60,
# 한 번에 학습하는 batch 크기를 지정한다.
batch_size=256,
# 정확도 측정을 위한 test set을 지정한다.
validation_data=(
[ratings_test.user_id.values,
ratings_test.movie_id.values],
ratings_test.rating.values - mu
)
)

0

1987

제가 외부 데이터를 가지고 해보는 중이라 m,n 값을 이렇게 수정해서 그런걸까요?

0

거친코딩

네! 보여주신 코드 그대로 임베딩 레이어의 수는 고유 유니크한 id의 개수만큼 생성되는데, 값 자체가 1씩 증가하는 연속적인 값이 아니니 인덱스와 따로 노는 것입니다.

(임베딩 자체가 유저 데이터가 representation(one hot encoding) 되었다는 것을 가정하기 때문)

이러한 경우에는  index mapping 한번 해주신다음에 돌리시면 좋을거 같아요~!
예를들어 유저id :2356335 -> 1 , 2544654->2, ...

한번 위와 같이 매핑하신다음에 돌려보시구 피드백 주시면 감사하겠습니다:)

 

0

1987

Index mapping을 아직 못해서 임의로 값들을 연속되는 수로 만들었더니 해결되었습니다! 감사합니다:)

혹시 user id에 중복된 값이 있으면 어떻게 id 값을 바꿔줄 수 있을까요?

0

거친코딩

연속되는 수로 만드셔서 일단 해결하셨다니 다행입니다 ㅎㅎ

하지만 단순히 연속되는 수로 하셨으면 말씀하신대로 중복유저 문제에 부딪히셨을것입니다. 그래서 단순 연속되는 숫자를 사용하시는것에 조금 더 나아가 중복체크를 하면서 연속 숫자로 만드셔보길 바랍니다:) 

예)

<Origin data>

13,19,17,13,20

<Transformed data>

1,2,3,1,4

model.predict 의 결과 값 index가 왜 movie id ?

0

415

3

model.predict에 특정 user id로 상위 movie 5개 출력?

0

391

3

새로운 회원이 선택한 영화를 모델로 넘기는 방법 질문

0

311

1

올려주신 파일과 sparse matrix

0

345

1

Unable to allocate 55.9 GiB for an array with shape (25000, 100000, 3) and data type int64

0

1007

3

사용자 집단별 추천 코드

0

253

1

무비렌즈 최신 데이터를 이용하고싶은데요~

1

330

2

추천시스템의 이진데이터 적용

1

343

1

평가 관련

1

272

1

딥러닝 추천시스템 변수추가 부분 코드 관련 질문입니다.

1

3539

1

딥러닝을 위한 추천시스템 원핫 인코딩 질문

0

290

1

CF_knn_bias 실습에서 not in index error 발생합니다.

0

717

3

MergeError가 납니다

0

565

2

sparse matrix를 추천 알고리즘에 적용하기에서

0

288

1

코드 오류 질문입니다!

1

609

3

코드를 똑같이 따라햇을때

1

375

1

강의자료는 어디서 다운로드 받을 수 있나요?

0

320

1

train,test 분리 MF알고리즘에서 결과가 출력이 안되요 ㅠㅠ

1

397

1

알고리즘을 프로젝트에서 써보고 싶은데요

1

204

1

ML 방식 모델 활용방안에 대해서

1

252

1

그 외의 CF 정확도 개선방법에서

1

184

1

화면이 안나오는데 정상인가요?

1

214

1

아이템 기반 CF 코드 질문

1

308

3

실시간 처리 질문

1

208

1