본문 바로가기

[Day31] 추천 시스템 Basic 2-2 TF-IDF를 활용한 컨텐츠 기반 추천 컨텐츠 기반 추천 Content-based Recommendation 사용자가 과거에 선호한 아이템과 비슷한 아이템을 그 사용자에게 추천 ex) 같은 장르의 음악 장점 단점 다른 유저의 데이터가 필요하지 않음 아이템의 적합한 피쳐를 찾는 것이 어려움 :이미지냐 텍스트냐에 따라 feature preprocessing도 달라져 시간이 오래 걸린다. 새로운 아이템이나 인기도가 낮은 아이템을 추천할 수 있음 한 분야의 추천 결과가 계속 나온다 overspecialization 설명 가능 다른 유저의 데이터 활용 불가 Item Profile item이 가진 부가정보로 feature를 찾아서 item profile을 만들어야 한다. 아이템이 가진 feature를 vector형태로 표현하는 것이 쉽다. 하나의 fea..
[Day31] 추천 시스템 Basic 2-1 연관 분석 추천 시스템 분야는 다른 분야에 비해 ML기법을 DL기법 보다 많이 사용한다. DL이 더 좋은 성능을 내긴 하지만 향상 폭이 dramatic하지 않고, 많은 유저가 이용하는 서비스에서 큰 트래픽을 감당하기에 DL은 연산량이 많아서 무겁다. 연관 규칙 분석=장바구니 분석=서열 분석 Association Rule Analysis=Association Rule Mining 소비자가 한 장바구니 안에 어떤 물건을 같이 담는지 유저가 상품을 구매하는 연속된 거래 사이에서 규칙을 발견하기 위해서 적용 ex) 컴퓨터를 산 고객이 같이 구매하는 상품 연관 규칙 Association Rule 하나의 상품이 등장했을 때 다른 상품이 같이 등장하는 규칙을 찾는 것 ex) 기저귀를 샀을 때 맥주도 같이 산다 : {기저귀}$\..
[Day31] 추천 시스템 Basic 1-2 추천시스템의 평가 지표와 인기도 기반 추천 추천시스템의 평가지표 비즈니스 / 서비스 관점 추천 시스템을 적용했을 때 매출인 PV(page view)가 증가했느냐 추천 아이템으로 인해 유저의 CTR(Click Through Rate:노출 대비 클릭)이 증가했느냐 품질 관점 연관성 Relevance ex) 40대 남성에게 화장품이 추천되는 상황 다양성 Diversity ex)너무 머그컵만 추천하는 상황 새로움 Novelty ex) 창을 새로고침 할 때 마다 같은 아이템만 추천되는 상황 참신함 Serendipity 품질평가에서의 주요 특징보단 재미요소이다. 연관성과 충돌할 수 있다. Offline Test : 추천 모델을 검증하기 위해 가장 우선적으로 수행되는 단계 데이터를 train/valid/test로 나누어 객관적인 지표로 평가한다. offlin..
[Day31] 추천 시스템 Basic 1-1 추천시스템이란 검색은 사용자의 의도가 담긴 query라는 키워드가 사용된다. 검색을 통해 아이템을 소비하는 것을 pull이라고 하고, 반대로 추천은 push이다. 의도를 가진 키워드를 제공하지 않더라도 item을 흥미나 의도를 고려해서 아이템을 제공한다. 과거에는 유저가 접근할 수 있는 상품이 적어서 추천이 딱히 필요하지 않았다. 하지만 검색 환경이 좋아지고, 상품과 컨텐츠들도 다양해졌다. 많은 아이템들이 Long tail로 분포되며 소비되고 있다. 이렇게 아이템의 갯수가 많아지면 정보를 찾는 시간이 오래 걸리게 되었다. 또한 유저가 원하는 아이템을 찾기위해 어떤 키워드로 검색해야할지 모를 수도 있다. 인기있는 소수의 아이템이 소비되는 면적보다 다수의 아이템이 적게 소비되는 면적이 넓어지게 하는 것이 Long-Tail..
[Day21] AI 서비스 기초 5. MLflow MLflow가 없을 때 각각 코드를 돌리고, 모델 학습시 사용했던 파라미터나 metric을 따로 기록한다. 학습하며 생긴 weight file을 공유해야하는 상황도 있고, versioning을 귀찮아서 하지 않게 되는 경우도 많다. 또한, 메모리 초과로 학습이 중단되니까 중간에 기록을 하면 좀 더 상황이 좋아질 수 있다. MLflow : 머신러닝 실험, 배포를 쉽게 관리하는 오픈소스 MLflow는 실험 재현 코드 재현 모델 패키징 & 배포 모델 관리를 위한 중앙 저장소 을 위해서 만들어졌다. 해당 기능을 제공하며 머신러닝 라이프 사이클을 관리한다. 모델의 파라미터와 결과를 기록을 해야한다. MLflow에서 자동으로 기록된 기록들을 보고 best 성능을 가져와서 사용하면 된다. MLflow는 모델 메타 정..
[Day21] AI 서비스 기초 특강 5. AI 시대의 커리어 빌딩 Careers in AL AI를 직업으로 가지려면 학교로 가야할까 회사로 가야할까? 논문 -> 학교 상품/서비스 -> 회사 AI를 다루는 회사의 종류 AI for X AI로 기존 비즈니스를 더 잘하려는 회사 AI가 보조수단으로, 비용을 줄이고 품질을 높히는데 활용 AI centric AI로 새로운 비즈니스를 창출하는 회사 AI가 비즈니스의 중심 새로운 가치창출을 AI로 같은 ML Engineer라고 부르더라도 자세히 보면 다른 일들을 하는 경우가 많다. 각 position에 대한 공통적인 표현이 정립되지 않았기 때문에 채용 공고를 잘 읽어보아야 한다. Trends in AI engineering positions 현재는 데이터 준비, 모델링, 평가에 많은 인력이 투입되지만, autoML 등으로 앞으로는 ..
[Day20] AI 서비스 개발 특강 4. Full Stack ML Engineer Full stack ML Engineer ML Engineer ML 기술을 이해하고 연구하고 product에 적용 ML Enginer은 ML researcher와 software engineer 의 사이 Deep learning의 경우 researcher과 engineer간의 경계가 모호한데, 빠르게 발전해서 연구와 product 적용이 동시에 일어났기 때문이다. 그래서 연구와 product 적용을 동시에 하는 poisition이 ML Engineer이다. Full Stack Engineer client와 server software를 구현할 수 있는 사람 Front-end는 client part, API Server와 Database를 합쳐서 back-end라고 하는 server part이다. 각 파트..
[Day 18] AI 서비스 개발 4. Docker : 가상화, docker 실행, docker image build Docker docker가 나아가서 쿠버네티스까지 확장된다. 가상화 : 특정 소프트웨어 환경을 만들고, local&production 서버에 동일하게 그대로 활용 개발할 때는 local환경에서 하고, 개발이 완료되면, staging서버와 production서버에 배포하게 된다. local 환경 != production 서버 환경 local 환경 = production 서버 환경 윈도우 -> Linux 이면 OS이기 때문에 라이브러리나 언어를 설치할 때 다르게 해야한다. 같은 OS이더라도, 환경변수, permission을 맞춰주어야 한다. 설정을 할 때 readme에 기록하고 실행하게끔 해야한다. 하지만 서버마다 설치하는게 번거롭고 사람이 하기 때문에 기존과 다른 점이 생길 수 있다. 또한 서버가 1개가 ..