달력

3

« 2024/3 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'netflix prize/일지'에 해당되는 글 16

  1. 2008.03.23 사용자의 점수 분포도
  2. 2008.03.16 34번째
  3. 2008.03.12 33번쨰
  4. 2008.02.25 32번째
  5. 2008.02.21 32번째
  6. 2008.02.17 day 27~31
  7. 2008.02.10 day 26_2
  8. 2008.02.08 day 27
  9. 2008.02.04 day 26
  10. 2008.02.03 day19~25
2008. 3. 23. 09:38

사용자의 점수 분포도 netflix prize/일지2008. 3. 23. 09:38

분포는 분명히 내가 예측한대로 나오는데
사용자 삽입 이미지

어째서 , 어째서 , 분산을 좌, 우 따로 생각했을때는 값이 시원찮을까.?
:
Posted by Kwang-sung Jun
2008. 3. 16. 22:02

34번째 netflix prize/일지2008. 3. 16. 22:02

전날밤 열심히 돌려두었던 프로그램은 엉뚱한 결과를 생성해내고야 말았다...
실수 계산할 때는 곳곳에 assert(false == isnan(fnum));을 해주어야 한다는 매우 기초적인 사실...


덕분에 월요일로 테스트를 미루게 되었고...

MovieLens데이터 이식과정..

6040 users( 1 ~ 6040 ), each at least 20 ratings for each users
3883 movies( 1 ~ 3952 ), sparse...

1000209 ratings w/ probe
30200 ratings in probe set
970009 ratings w/o probe

after changing to netflix format

6040 users(0 ~ 6039)
3883 movies(1 ~ 3883)
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
완료... 이제 netflix_prize에서 옵션을 줌으로써 가능하게 만들어야 한다.

• -건드린 부분. env_vars_loader.cpp에서 데이터 로드하는 부분..
• recommender.cpp.... 에서 movielens data를 읽어올 수 있도록하기.

할일들은??
• matrix_gen, corr_gen, similarity_gen.이 모두 잘 작동하도록 해주어야 한다.
• 무지막지하게 variable을 건드려야 할듯.
• AVG_DIAGONAL 밸류 실험후 집어넣기..
• 파일 경로들... 모두 수정..

이제는 사실 여기에다가 로그를 남기는게 의미없어진듯하다.  시간투자를 많이 할수 있으면 좋으련만.
아무튼 수요일 전까지는 끝내야하는 일들이니 ㅠㅠ

오늘은 집에가다가 근택이네 한번 들려주어야 겟다...
:
Posted by Kwang-sung Jun
2008. 3. 12. 22:19

33번쨰 netflix prize/일지2008. 3. 12. 22:19

벌써 33번쨰가 되었다.

글을 안써왔던 게으른 나... 으헉

삼성SDS 전시회때문이라고 핑계되도 될까나.

아무튼 본론은....
이제슬슬 ml.ssu.ac.kr을 이용하여 유사도를 계산하기 시작했다

아까 낮에는 그거 때문에 삽질했다. 그쪽 서버가 64비트인줄 모르고 신나게 쓰고 있었던 거다. 컴퓨터를 돌려놓고 집에 갔다올 생각이다.

p-norm에서 p값을 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9 까지 9개로하고서는
쉘프로그램으로 돌려놓고 왔다.
아마 끝나고나면 ml.ssu.ac.kr서버 용량을 5기가 이상 차지해 놓았을 거다. 뭐 문제 없길바래야지.

오늘 600위대 진입은 박수보내 마땅한 일이다.
사실, 사용자 평균과 분산까지도 고려하면 더욱 더 훌륭한 수치가 나올 수 있지만,... 컴퓨터 사양이 딸린다 -_-;

결국 이런 문제로 귀결되는가...

아무튼 잡소리는 그만하고...

할일 1순위는 p-norm 기반 유사도 방법의 효율를 먼저 조사하는 것이고,
(아마 여기서 성공한다면, p-norm기반 유사도를 논문에 언급하겠지..)

아무튼.. 힘내야지... 어서 논문 쓰고 학교 공부 열심히 해야겠다.
이번학기까지는 학점이 잘 나와야 원서쓸때 무리없겠구나...

할일 2순위는... movie lens 데이터에 적용시키는 것!
:
Posted by Kwang-sung Jun
2008. 2. 25. 00:12

32번째 netflix prize/일지2008. 2. 25. 00:12

32번째작업일지..

흠... 그동안 내가 probe set을 training 에 포함시킨 채로 알고리즘을 돌리고는 성능측정하는데 probe를 사용한건 나의 크나큰 삽질 중의 하나다.
지난번포스트를 보면 알겠지만, 어쩐지 성능이 좋더라니... 하는 말이 나온다.

  1. 최근, probe set을 제외하도록 프로그램을 수정하였다.(은근 빡심)
     -> 컴파일할때 FOR_QUALIFYING 이라는 식별자정의를 포함시켜주어야 한다.
  2. recommender(실제 추론하는 부분)이 스레드를 활용하여 작동하도록 수정하였다.
  3. 파라미터에 대한 실험.. Beta = 120000, similarity는 15가 매우 적당하다.
다음은 해야할 일
  1. 더이상 global effect를 추진할 시간이 없다. 어서 다른 프로그램들을 준비하여, SDS 페스티벌에 낼 시연 형태, 그리고 프레젠 테이션 연습 및 작성을 해야한다.
  2. 상관계수로 weight구하는 방식을 구현해 본다.(추후에 비교 분석 해야하므로.)
  3. 그리고는 논문작성은 교수님께 말씀드려서 조금 천천히 해야지.

:
Posted by Kwang-sung Jun
2008. 2. 21. 19:34

32번째 netflix prize/일지2008. 2. 21. 19:34

32번째 일지

날짜세는게 귀찮아져서 앞으로는 그냥 이렇게 하기로 마음머겄다.

오늘 처음으로 submission을 날렸다!

최근 작업현황ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
1. global mean from userdata_gen
3.604290
2. global mean from moviedata_gen
3.604290
3.  from global mean, RMSE = 1.129834
4. tried to use QuadProg++, but too complicated.
가장 수상한건 매트릭스 !!!!!!!!!!!!!!!!!!!!
둘째로 수상한것 -> 사용자 데이터를 한박자 늦게 읽는다거나.
매트릭스에서 이상한 결과가 나오거나..
아니면 BestNeighbor[]를 이용하는과정에서 엉뚱한 이웃이 들어갔다든지 또는 NonNegativeQuadraticOpt 이 잘못됐든지..
먼저, QuadProg부터 수정하고 보자.
5. RMSE = 1.308381, 8.296 sec elapsed.( weights are 1 / K )
from global mean, RMSE = 1.129834
6.
RMSE = 1.288206, 10.65321 sec elapsed. (alpha =
2816795 from global mean, RMSE 816796 average prediction = 3.822552
7.
couldn't find 1865(movie) from user scaled 360787(1989766 in user id).. movieID = 1.
해결후
8.
0.949893... k = 10, Beta = 80000 average = 3.677862, Over = 0, Below = 5650.949893... k = 10, Beta = 60000 average = 3.677862, Over = 0, Below = 565(iterations were all 2)
<iterations were all 2> =======> result from odd A(모두 평균값으로  채워져있었다.. 대각은 대각 평균으로, 나머지는 나머지 평균으로..)
9. 자료는 모두 엑셀로 옮겼다.
10. 프로그램을 좀더 테스트에 편하도록 자동화시켰다.
11. 발견한 사실 - shinkage를 낮추니까 Ax=b에서 루프가 매우 조금만 돌고도 답이 나온다.


RMSE K Beta Alpha naïve average average OverRangeCnt BelowRangeCnt
1.086715 20 500 1
0.000000 x x
1.087711 20 500 5
3.811471 x x
1.066420 20 500 5
3.772584 x x
1.062754 15 500 5
3.763922 x x
1.060523 10 500 5
3.751026 x x
1.059561 10 500 5
3.671148 x x
1.058549 10 500 5
3.671544 x x
1.082158 10 50 5
3.679396 x x
1.043956 10 1000 5
3.669001 x x
0.999239 10 5000 5
3.672115 61274 1823
0.977306 10 10000 5
3.671869 33801 1240
0.960570 10 20000 5
3.672174 16041 793
0.951201 10 40000 5
x 8467 631
0.946785 10 80000 5
3.673125 4348 607
0.944558 10 160000 5 3.579016 3.673185 1700 588
0.944167 10 240000 5 3.582144 3.673198 704 582
0.946210 10 240000 10 3.583814 3.673236 704 551
0.943102 10 240000 1 3.579747 3.673172 702 605
0.944175 10 320000 5 3.584546 3.673181 287 576
0.944596 10 480000 5 3.587935 3.673000 18 568
0.945135 10 640000 5 3.590200 3.673006 1 568
0.948938 20 240000 1 3.634656 3.673611 1187 282
0.950472 20 320000 1 3.638476 3.673582 728 277
0.947117 20 160000 1 3.629352 3.673597 2206 290
0.945321 20 80000 1 3.621160 3.673425 4868 303
0.946892 20 40000 1 3.615978 3.673165 9207 329








0.952628 20 320000 1 3.638476 3.638590 728 277

qualifying set.






20 80000 1 3.616442
9908 1773

흠..  신기한건
파라미터들이 별의별 조합을 다이뤄가며 희한한 결과를 만들어낸다는 거다.. 현재 제출한 조합은 맨 아래 있는 것과 같고.....
:
Posted by Kwang-sung Jun
2008. 2. 17. 22:32

day 27~31 netflix prize/일지2008. 2. 17. 22:32

netflix prize research day 27~31

이번 한주동안 한일은 다음과같다. (매우 많은데 이렇게 보니 또 별거 없어보인다.)

  • NonNegativeQuadraticOpt알고리즘 최종적으로 정리(Robust!!)
  • =>유효한건 stepSize가 nan이거나 0일때 강제로 0.001을 넣어준 것이었다.
  • => BellKor가 제안한 구현조차 먹히지 않았기에 노가다를 통해 직접 깨닳았다.
  • probe_rmse작성 통해 값을 내 보니 약 1.2정도 된다.
  • UserRating구조체는 bitfield를 사용하여 1바이트 압축. MovieRating역시 1바이트. (날짜 데이터를 제외시켰다.)

  • moviedata_set을 저장할때 userScaled를 키값으로 정렬되도록 하였다.

TODO

global effect구현
볼츠만 머신 구현
SVD로 구현

문제해결법에 대한 IDEA

*. 영화제목으로부터 연관관계를 끌어낼 수 있을까(시리즈물, 어두운 분위기, 공포 등)

 - WWE
 - soldier
 - Dark
 - dragon ball
 - national geographic
 - 영화제목에 위의 단어가 들어있다면. 이용자가 시리즈물을 보고 평가한 결고를 반영할 수 있다.
 - (user base + item base)
 - 자주 검색되는 단어를 이용해도 된다.
 
*. 시간적으로 '최근' 취향이 비슷할 수록 가중치가 높아진다.
 - user간에 얼마나 '많은' 영화의 평점이 얼마나 '많이'같은지, 그 각각의 영화가 얼마나 시기적으로 '가까운'지에
대하여 유사도를 계산한다..

=> 뭐 이딴것들은 다 논문에 나와있더라.. user-based approach와 item-based approach는 이미 다 나와있고... 상대적으로 item-based approach가 더 좋은 속도와 결과를 내지만,
나중에 데이터 짬뽕시키는게 적중률을 향상시키기에 시도는 했다 하더라.
:
Posted by Kwang-sung Jun
2008. 2. 10. 18:07

day 26_2 netflix prize/일지2008. 2. 10. 18:07

netflix prize research day 26_2

오늘 한일은 다음과같다

  • NonNegativeQuadraticOpt알고리즘을 잠정적으로 완성

  • probe_gen(probe.txt 를 probe라는 바이너라 피일로 변환)완성 및 테스트 완료
  • ProbeReader(바이너리 파일 probe를 읽어낸다.)클래스 완성 및 테스트 완료


TODO

각 유져와 무비 페어에 대해.
• N(i;u)를 구한다. 즉 u가 rating했던 아이템중 i와 비슷한 아이템 20개를 선정한다.(20이 안되는 경우는 assert걸어둔다.)
• 20 * 20 매트릭스 A, 20 * 1 벡터 b를 작성하고, 알고리즘을 이용하여 w를 구한다. (->여기서 문제가 발생하고 있다. length가 점점 커지다가 조건에 걸려서 종료되어야 하는데, length는 갈수록 작아져만 간다...) => K값을 줄인후 알고리즘을 하나하나 추적하여 뭐가 잘못된지 발견해내자.
• ProbeReader를 이용하여 probeset을 읽고 정답을 채우자.
* 정답을 채워넣는 클래스도 만들어내면 편할 듯.


  - 통계프로그램을 구했으니 슬슬 자료 분석도 시작해 봐야지

문제해결법에 대한 IDEA

*. 영화제목으로부터 연관관계를 끌어낼 수 있을까(시리즈물, 어두운 분위기, 공포 등)

 - WWE
 - soldier
 - Dark
 - dragon ball
 - national geographic
 - 영화제목에 위의 단어가 들어있다면. 이용자가 시리즈물을 보고 평가한 결고를 반영할 수 있다.
 - (user base + item base)
 - 자주 검색되는 단어를 이용해도 된다.
 
*. 시간적으로 '최근' 취향이 비슷할 수록 가중치가 높아진다.
 - user간에 얼마나 '많은' 영화의 평점이 얼마나 '많이'같은지, 그 각각의 영화가 얼마나 시기적으로 '가까운'지에
대하여 유사도를 계산한다..

=> 뭐 이딴것들은 다 논문에 나와있더라.. user-based approach와 item-based approach는 이미 다 나와있고... 상대적으로 item-based approach가 더 좋은 속도와 결과를 내지만,
나중에 데이터 짬뽕시키는게 적중률을 향상시키기에 시도는 했다 하더라.
:
Posted by Kwang-sung Jun
2008. 2. 8. 15:25

day 27 netflix prize/일지2008. 2. 8. 15:25

netflix prize research day 26

오늘 한일은 다음과같다

  • NonNegativeQuadraticOpt알고리즘의 코딩을 완료하였다.

이를 위해서
  • 매트릭스와 벡터의 K-nearest원소를 채워넣는 루틴완성
  • 알고리즘에 필요한 자잘한 매트릭스 연산 함수들 완성.

TODO

각 유져와 무비 페어에 대해.
• N(i;u)를 구한다. 즉 u가 rating했던 아이템중 i와 비슷한 아이템 20개를 선정한다.(20이 안되는 경우는 assert걸어둔다.)
• 20 * 20 매트릭스 A, 20 * 1 벡터 b를 작성하고, 알고리즘을 이용하여 w를 구한다. (->여기서 문제가 발생하고 있다. length가 점점 커지다가 조건에 걸려서 종료되어야 하는데, length는 갈수록 작아져만 간다...) => K값을 줄인후 알고리즘을 하나하나 추적하여 뭐가 잘못된지 발견해내자.
• 레이팅을 채운다..


  - 통계프로그램을 구했으니 슬슬 자료 분석도 시작해 봐야지

문제해결법에 대한 IDEA

*. 영화제목으로부터 연관관계를 끌어낼 수 있을까(시리즈물, 어두운 분위기, 공포 등)

 - WWE
 - soldier
 - Dark
 - dragon ball
 - national geographic
 - 영화제목에 위의 단어가 들어있다면. 이용자가 시리즈물을 보고 평가한 결고를 반영할 수 있다.
 - (user base + item base)
 - 자주 검색되는 단어를 이용해도 된다.
 
*. 시간적으로 '최근' 취향이 비슷할 수록 가중치가 높아진다.
 - user간에 얼마나 '많은' 영화의 평점이 얼마나 '많이'같은지, 그 각각의 영화가 얼마나 시기적으로 '가까운'지에
대하여 유사도를 계산한다..

=> 뭐 이딴것들은 다 논문에 나와있더라.. user-based approach와 item-based approach는 이미 다 나와있고... 상대적으로 item-based approach가 더 좋은 속도와 결과를 내지만,
나중에 데이터 짬뽕시키는게 적중률을 향상시키기에 시도는 했다 하더라.
:
Posted by Kwang-sung Jun
2008. 2. 4. 21:46

day 26 netflix prize/일지2008. 2. 4. 21:46

netflix prize research day 26

오늘 한일은 다음과같다

  • N(i; u)를 구했다. 즉, u가 rating했던 아이템중 i와 비슷한 아이템 20개를 선정한다.(20이 안되는 경우는 assert걸어둔다.)

이를 위해서 오늘

  • recommender.cpp작성
  • similarity_loader 모듈작성
  • matrix_loader 모듈작성
  • userdata_loader 모듈작성

TODO

각 유져와 무비 페어에 대해.
• N(i;u)를 구한다. 즉 u가 rating했던 아이템중 i와 비슷한 아이템 20개를 선정한다.(20이 안되는 경우는 assert걸어둔다.)
• 20 * 20 매트릭스 A, 20 * 1 벡터 b를 작성하고, 알고리즘을 이용하여 w를 구한다.
• 레이팅을 채운다..


  - 통계프로그램을 구했으니 슬슬 자료 분석도 시작해 봐야지

문제해결법에 대한 IDEA

*. 영화제목으로부터 연관관계를 끌어낼 수 있을까(시리즈물, 어두운 분위기, 공포 등)

 - WWE
 - soldier
 - Dark
 - dragon ball
 - national geographic
 - 영화제목에 위의 단어가 들어있다면. 이용자가 시리즈물을 보고 평가한 결고를 반영할 수 있다.
 - (user base + item base)
 - 자주 검색되는 단어를 이용해도 된다.
 
*. 시간적으로 '최근' 취향이 비슷할 수록 가중치가 높아진다.
 - user간에 얼마나 '많은' 영화의 평점이 얼마나 '많이'같은지, 그 각각의 영화가 얼마나 시기적으로 '가까운'지에
대하여 유사도를 계산한다..

=> 뭐 이딴것들은 다 논문에 나와있더라.. user-based approach와 item-based approach는 이미 다 나와있고... 상대적으로 item-based approach가 더 좋은 속도와 결과를 내지만,
나중에 데이터 짬뽕시키는게 적중률을 향상시키기에 시도는 했다 하더라.
:
Posted by Kwang-sung Jun
2008. 2. 3. 21:51

day19~25 netflix prize/일지2008. 2. 3. 21:51

netflix prize research day 19 ~ 25
일본여행을 1월29일부터 2월 1일까지 3박 4일로 다녀오는 바람에 제대로 한게 아무것도 없다.

다만 이전에 계산해 두었던 매트릭스 A^ 를 읽어보니 nan이 무척이나 많아서 당황..

  • 시간측정모듈 작성(클래스..)
  • nan(Not A Number)버그 수정.(0으로 나누게 되는 경우가 있던것이 그 원인이다.)
  • 알고리즘 정상적으로 수행하여 A^를 계산해냄
처음 시작할 때는 똑같이 논문을 보고 쓴건데 논문 저자는 계산을 15분 내로 해낸다고 했다. 무척 열받았었는데, 이제는 나도 7분내로 끝낸다 T_T.
처음에는 120시간정도는 돌려야 끝이나는 알고리즘을 짰던 것이 생각난다...우웩.

TODO

각 유져와 무비 페어에 대해.
• N(i;u)를 구한다. 즉 u가 rating했던 아이템중 i와 비슷한 아이템 20개를 선정한다.(20이 안되는 경우는 assert걸어둔다.)
• 20 * 20 매트릭스 A, 20 * 1 벡터 b를 작성하고, 알고리즘을 이용하여 w를 구한다.
• 레이팅을 채운다..


  - 통계프로그램을 구했으니 슬슬 자료 분석도 시작해 봐야지

문제해결법에 대한 IDEA

*. user들을 군집화시킨 후 알고리즘을 적용한다.(합리적...)
 
*. 영화제목으로부터 연관관계를 끌어낼 수 있을까(시리즈물, 어두운 분위기, 공포 등)
 - WWE
 - soldier
 - Dark
 - dragon ball
 - national geographic
 - 영화제목에 위의 단어가 들어있다면. 이용자가 시리즈물을 보고 평가한 결고를 반영할 수 있다.
 - (user base + item base)
 - 자주 검색되는 단어를 이용해도 된다.
 
*. 시간적으로 '최근' 취향이 비슷할 수록 가중치가 높아진다.
 - user간에 얼마나 '많은' 영화의 평점이 얼마나 '많이'같은지, 그 각각의 영화가 얼마나 시기적으로 '가까운'지에
대하여 유사도를 계산한다..

=> 뭐 이딴것들은 다 논문에 나와있더라.. user-based approach와 item-based approach는 이미 다 나와있고... 상대적으로 item-based approach가 더 좋은 속도와 결과를 내지만,
나중에 데이터 짬뽕시키는게 적중률을 향상시키기에 시도는 했다 하더라.
:
Posted by Kwang-sung Jun