딥 러닝 ( Tensorflow ) 을 이용 한 추천 시스템 개발 [ Image Source :   TensorFlow , ‘ Reading Data ’] 4 . 모델 설계   1 ) 데 이타 수집 :   Slidejoy 컨텐츠 를 제공 함 으로써 수집 하 는 데 이타 는 크 게 다음 과 같 습니다 . 유저 아이디 , 성별 , 나이 등 의   기본 유저 데 이타 카테고리 , provider 아이디 , 제목 , description 등 의   컨텐츠 데 이타 컨텐츠 display 순서 , 시간 및 클릭 여부 등   유저 interaction 데 이타 Tensorflow 의 training input 으로 사용 하 기 쉽 게 날짜 별 로 위 의 데 이타 를 tfrecord ( 참고 :   https : / / www . tensorflow . org / api _ docs / python / python _ io / # tfrecords _ format _ details ) 파일 에 저장 했 습니다 . 초기 training 을 위해서 총 3 달 분량 의 데 이타 를 사용 했 습니다 .   2 ) 모델 components :   Tensorflow 에서 는 먼저 데 이타 를 담 을 tensor ( 간단 하 게 vector 로 생각 하 면 됩니다 ) 들 을 이용 하 여 데 이타 의 흐름 ( input 부터 back propagation 까지 ) 을 정의 하 는   그래프 를 만듭니다 . 그래프 정의 시 에 는 모든 tensor 관련 연산 은 tensorflow 함수 를 이용 해야 합니다 ( 참고 : https : / / www . tensorflow . org / api _ docs / python / array _ ops / ). 일반 적 으로 쓰이 는 numpy 나 list 연산 은 그래프 에 적용 이 안 됩니다 . 그래프 정의 후 에 session 을 시작 하 여 그래프 의 한 operation 에 실제 데 이타 를 흘려 ( flow ) 보내 면 learning 이 진행 됩니다 . 그리하여 이름 이 “ Tensorflow ” 인 것 이 죠 . 머신 러닝 을 처음 접하 면 직관 적 이 지 않 은 개발 방식 이 라 어색 할 수 있 지만 , underlying 그래프 만 을 저장 / 로드 / 분석 을 하 기 에 상당히 편리 한 방식 입니다 .   5 . 시스템   https : / / www . buzzvil . com / 2017 / 02 / 22 / buzzvil - techblog - tensorflow - deeplearning /