2018년 4월 19일 목요일

코넬식 필기

오늘 웹서핑 하다가 발견한 것..

상당히 유용할 듯..

울집 얘들한데 함 시켜봐야 겠다..


2018년 4월 11일 수요일

[번역] 아마존 베스트 셀러 랭크 (BSR) 의 이해 - 확실한 안내

회사에서 통계내기 위해 공부 차...

쓸데없는건 번역 안함.. 그리고.. 내맘대로 번역.. ㅎㅎ

원문 : https://viral-launch.com/amazon-blog/amazon-tips/amazon-best-sellers-rank-bsr-guide/

아마존 최고 판매 순위 (BSR) 이해 - 확실한 안내


At Viral Launch, we thrive on understanding and discovering the intricacies of the “science” of Amazon’s marketplace and the process of selling successfully. One of our recent targets was reverse engineering the Amazon Best Sellers Rank (BSR) algorithm with the intent of building an incredibly robust Amazon sales estimation algorithm with unprecedented accuracy. While we have built a far more accurate BSR to sales mapping algorithm than what is currently available, reverse engineering the BSR algorithm requires a far greater amount of data plus more sophisticated machine learning tactics.
Here are our findings on BSR and the downfalls of using Amazon’s Best Sellers Rank as a tool to estimate sales. This is a technical piece so I apologize for it being so dry. 

 아마존의 최고 판매 순위란?

what is amazon best seller rank
상품의 최고 판매 순위는 상품의 상세정보 페이지에서 볼 수 있다. 일반적으로 상품들은 여러 분류로 내열된다. 보통은 최상위 분류가 있고 (이 예로는 미용 & 개인 위생 용품의 #2,235), 그리고 하위 분류가 있으며, 이 경우 41번째 최고 판매 상품은 아래 아래 아래 아래 분류의, 세럼이다. 자주 여러 아래 아래 하위 분류들에서 상품을 찾고 여러 상위 수준의 분류들에서는 덜 찾게 된다. 판매 추정 방정식에서는, 그것이 알고리즘이 관심을 갖는 최상위 분류이다. 누군가가 현재 64,000+ 하위 분듀들 중 아무거나 펼쳐놓을 충분한 자료를 갖고 있다면, 그 숫자들을 사용할 수는 있겠지만, 그다지 가능성은 없어보인다.

아마존 최고 판매 순위 (BSR)은 어떻게 계산되는가?

한 상품의 최고 판매 순위 또는 BSR은 부여된 시간내에 같은 분류안의 다른 상품들과의 주문 수를 비교하여 계산된다.
간단히 말해서, 분류내의 "최고 판매" 상품은 그 분류에서 #1의 BSR을 갖게된다. 분류 내의 두번째 "최고 판매" 상품은 그 분류에서 #2의 BSR을 갖게된다.
그러면 "최고 판매"는 정확히 무엇인가? 주문을 고려한 시간은 무엇인가?
다양한 시간대에서 아마존에 주문이 접수되는것에 대한 가중치 양을 계산하기 위해 선형 회귀 분석(Linear Regression)이라 하는 가장 논리적/성공적인 기계 학습 알고리즘을 여러번 사용했었다 (알지는 모르겠지만, 산림 회귀 분석 결정, 베지언 선형 회귀 분석, 그리고 증폭 의사결정 회귀 분석 알고리즘도 시도했었다). 따라서 일반적으로는, 이런 종류의 데이터셋을 사용하면, 각 시간별 아마존 판매 가중치에 대한 이해를 돕기 위한 선형 회귀 분석을 예측하곤 했다. 예전의 하루 판매는 BSR을 계산시 1년 전에 비해 크게 증가했다. BSR 방정식을 역분석하는 데 도움이 되기에 선형 회귀 분석 방법을 간단하게 설명하자면, 선형 회귀 분석은 방대한 양의 데이터를 다루는 방정식에 적당한 계수를 찾는 것을 도와주는 AI 방정식이다. 방정식은 BSR = X(a)+ Y(b) + Z(c)… 처럼 보여진다. a, b 그리고 c는 각 시간대 별 주문 수이며, X, Y, Z는 각 기간대 별 가중치들이다. 지난 1시간 동안의 판매 (a)는 RSR 계산에서 40%의 값 (X)이고 2시간 전의 판매 (b)는 RSR 계산에서 20%의 값 (Y)가 된다.
불행히도, 이 접근 방법으론 구하고자 하는 정확한 계산 값을 반환하진 못했지만 어떤 굉장한 통찰력을 알게 해줬다.
BSR은 작업하기가 어려웠지만, 시행착오를 거쳤고, 방대한 양의 데이터를 간단하게 분석하는 것으로, 확실히 많이 배웠다! 이들 중 일부는 새로운 발견들은 아니지만, 당신처럼 익숙하지 않은 사람들에겐 다음처럼 적용된다:
  • BSR은 2-3시간 이내에 판매된 상품에 대해 업데이트 한다 (아마존의 마켓의 BSR 업데이트에 대해선 결제가 확실히 완료됐을 때라고 가정).
  • BSR 계산은 최근 판매에 더 큰 가중치를 준다.
  • 판매 이력은 여전히 계산에서 많은 비중을 차지한다.
  • 우리는 BSR이 거의 동일한 두 개의 상품들이 지난 한 달 동안 몇 배의 판매 차이가 생긴 것을 보았다. (예. BSR #76,430 과 #76,433의 각각의 월 판매는 94 와 310이다.)
  • 우리는 BSR이 많이 낮은 상품이 훨씬 적은 판매를 하는 것을 보았다 (예. BSR #720은 지난 한 달 간 366 판매).
  • 판매가 없는 새 품목들은 아마존 최고 판매 순위를 갖지 않는다.
  • 파생 상품을 나열해보면. 파생의 일부 유형은 자체 BSR을 갖지 않고 그들의 판매를 살펴보면 그들의 부모 ASIN(Amazon Standard Identification Number:아마존 표준 식별 번호)와 마찬가지인 것을 보인다. 다른 파생 유형들은 자체적인 최고 판매 순위를 갖지 않는다.
  • BSR은 주문에 의존적이고 개수에 독립적이다. (예. 단일 주문의 품목 90개는 1개의 주문보다 더 영향을 끼친다).
  • BSR은 한 번의 판매로 10단계, 심지어 수십만 단계 아래 순위로 흔들릴 수 있다. 마찬가지로, BSR은 급속히 떨어질 수 있다 (우리는 다음 판매가 발생하기까지 시간 당 10,000번의 하락을 봤습니다).
  • BSR은 모든 상품별로 매 시간마다 재-계산 된다. 같은 시간에 같은 BSR을 갖는 두 개의 상품들을 본 적이 없기에.. 일부 사람들의 제안처럼 각 시간별 상위 X개의 상품들을 재-계산할 수는 없다.
보시다시피, BSR은 상품이 과거에 얼마나 잘 팔렸고 지난 몇 시간 동안 얼마나 잘 팔렸는지에 대한 지표가 될 수 있다. 문제는 상세한 BSR 이력이 없다면, 정확하게 말할 수 없다는 것이다.

BSR 변동의 예시

상품 A와 B로 해보자. 상품 A는 지난 6개월 동안 정원 관리 부분에서 일 별로 40개씩 꾸준히 판매되었으며 상품 B는 31일 전에 1번 판매되었을 뿐이다.
amazon best seller example
제품 B를 함께 구입하고 그들을 상품을 실제로 홍보하기 시작해서 지난 이틀 동안 총 120 개를 팔았다고 해보자. 지난 30일 동안 상품 B가 120개 그리고 상품 A가 1200개 판매되었다고 해도 상품 B는 상품 A와 아주 비슷한 BSR을 가질 것이라고 예측하게 된다.
amazon best sellers rank example
좀 미쳤지?

동일한 판매지만 다른 순위

분류별로 수백만 개의 상품들이 있기에 같은 판매 수를 갖는 2개의 ASIN 이 있을 수는 있지만,아주 다른 BSR을 갖는다.
지난 30일 동안 상품 A가 197 개를 판매했고 상품 B가 200 개를 판매하여 각각의 BSR은 12,000과 10,0000으로 지정되었다고 하자. 자, 이제 지난 3시간 이내에 상품 A가 3번 판매됐고, 상품 B는 없다고 하자. 상품 A가 지난 1달 동안 같은 판매 수를 발생했지만 순위는 8,000등 언저리가 될 것으로 예측할 수 있다.

시기가 전부다

상품 A는 아마존에서 18개월 전에 2번만 판매되었고 이제 정원 관리 부분에서 BSR이 2,000,000로 지정되었다. 상품 B는 12개월 전에 1번 판매되었다고 하면, 이 상품의 BSR은 1,000,000 정도라고 예측할 수 있다. 상품 A가 판매량이 더 많아도, 판매가 일찍 발생하여 BSR 계산의 "하위"에 이르렀지만, 상품 B는 훨씬 나중까지 BSR 계산의 "하위"를 찍지 않았다. BSR이 매시간 업데이트됨에 따라, 판매가 보고되지 않는 상품들은 일반적으로 (BSR이 증가하여) 순위에서 밀려나고, 판매가 오른 상품이 올라간다.

BSR은 판매 예측에는 좋지 않다 (하지만 최선이다)

가장 정확한 판매 예측 알고리즘을 작성하는 여정에서, 아마존 플랫폼에서 가능한 모든 판매 지표를 떠올렸었다. 한가지 생각은 마켓 당 가정된 평균 상품 평점을 기반으로, 대략 다음처럼, 한 달 이내에 상품 당 평균 25개의 상품평이 추가되었고 상품 평점이 유기농 판매의 1%라 가정한 다음 그 달에 2,500 건의 판매가 있었다고 하자. 이것은 확실히 적절한 접근 방법은 아니지만, 아이디어 구상에선, 아무 생각 없는게 안 좋은 생각이다. 가장 보편적인 대안은 몇가지 주요 약점이 있지만, 재고 수준을 추적하는 것이다. 이 접근 방법은 판매자가 외부 요인으로부터 판매를 이끌어내는 상황과 재고 수준이 999 개 이상인 목록, 또는 최대 주문 수량 설정이 있는 목록에는 허용되지 않는다
이런 접근 방법과 상당히 정확한 기존 도구가 있는데도 BSR에 의해 사용하지 않게 된 것은 왜일까? 우리는 이러한 변동이 심한 측정으로 인해 최고 판매 순위 사용을 반대해 왔다. BSR은 매 시간 세계적으로 업데이트되어 각 상품들의 최고 판매 순위를 측정하여 매 시간별로 계산하고 조정된다. 아마존이 BSR 업데이트를 내보낼 때마다, 주어진 상품의 순위는 크게 변동될 수 있다. 예를들면, 우린 상품의 최고 판매 순위가 90,000에서 뛰어올라, 1시간 뒤 한번의 판매로 38,000으로 이동되고, 다음 시간 순위가 76,000으로 떨어지는 것을 관찰했다. 이것은 항상 장터 전반에 걸쳐 발생하고 있다.
향후, 아마존에서 발견한 BSR을 "스냅샷"이라 부르자 (매 시간 변경되는 BSR의 시간당 스냅샷이기에).
그래서 판매량 측정에 대한 나쁜 척도가 될 스냅샷 BSR의 예시로, 차 주전자를 갖고 싶다고 상상해보자. 언제 사람들이 새 차 주전자를 구매해야 한다고 떠올릴 것 같나? 예를들면 사람들이 업무 전에 아침 차/커피를 마실 때 아침에 새 차 주전자를 구매해야 한다고 떠올린다고 해보자. 그 의미는, 차 주전자에 대한 BSR이 밤 보다 아침에 낮아질 수 (높은 구매 예측을 보일 수) 도 있다는 것이다. 그래서, 아침에 자료 조사를 해보면, 밤에 한 것보다 더 높은 판매량 예측을 할 수 있을 것이다. 요일에도 마찬가지 일 수 있다. 예를들면 차/커피를 마시는 사람의 절반만이 출근 길에 여분의 활력을 얻기 위해 업무 시간 중 차/커피를 마신다고 해보자. 그것은 BSR/판매 수치가 평일 대비 주말을 대조해 볼 때 달라질 수 있다는 뜻이다.
본질적으론 직접적인 계산이 없고, BSR은 일, 주 및 또는 월 이내에서 급격히 변동할 수 있기에, 아마존 최고 판매 순위는 빈약한 지표이다.

이 지식을 사용한 판매 예측 알고리즘 구축 방법

너무 많은 세부 사항을 공유하는 것이 편안하지는 않지만, 아마존 상품 연구 도구에서 엄청나게 정확한 예측 알고리즘을 갖을 수 있게 하는 몇가지 주요 측면이 있다.
보시다시피, 아마존 베스트 판매 순위는 시시각각, 날마자, 그리고 매주 극도로 불안정 할 수 있다. 그래서 어느 정도 정확한 판매 예측 도구를 구축하려면, 한달 내내 발생하는 BSR의 막대한 변동을 고려할 도구를 구축해야 했고, 우리는 해냈다. BSR 스냅샷을 사용하여 지난 달의 판매량을 평가하는 것은 하나의 정지 화상으로 영화의 줄거리를 예측하는 것과 같다. 그것은 상당히 부정확할 수 있다.
강조하고 싶은 알고리즘의 한가지 특징은 매일 밤 판매 매핑 알고리즘으로 BSR을 계속해서 업데이트 한다는 것이다. 이것은 우리의 계산이 마켓의 자연스러운 추세와 일치하게 유지하게 해준다. 아마존 전체의 계절별 추세와, 아마존이 인기가 올라감에 따라, 정기적으로 알고리즘을 새로 고치지 않는 예측 도구는 그 예측들이 빠르게 뒤쳐지고 시간이 지나면서 정확도가 지속적으로 감소한다.




글 추가...

위의 내용으로 부족한 듯 하여.. 좀 더 구글링을 해보니.. 다음 글도 상당히 유용하다.

https://www.makeuseof.com/tag/8-things-people-dont-know-amazons-bestsellers-rank-sales-rank/


2018년 4월 6일 금요일

ASP로 단축주소 생성하자.

전 회사에서까진 Java 개발했는데..

점점 ASP의 입지 및 자료들이 줄게 되어... 개발 기록차 남김..

ASP가 그래도 간단하고 편하긴 하다..

google의 단축주소 api를 사용하려고 했으나, 서비스를 중단할 예정에 FireBase로 이전한다고 함..

FireBase는 함 둘러봤는데 뭐가 뭔지 모르겠음..ㅎㅎ

그냥 간단한.. Bitly 로 잽싸게 결정! 코드는 아래와 같다.

  1. <%
  2. Function fnBitlyUrl(longURL)
  3.     token = "bitly에서 발급받은 토큰값"
  4.     url = "https://api-ssl.bitly.com/v3/shorten?access_token="&token&"&longUrl=" & longURL & "&format=txt"
  5.    
  6.     set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
  7.     xmlhttp.open "GET", url, false
  8.     xmlhttp.send ""    
  9.     fnBitlyUrl = xmlhttp.responseText
  10.     set xmlhttp = nothing
  11. END FUNCTION
  12. longURL = "http://www.lifebook.com" '변환하고 싶은 주소'
  13. response.write fnBitlyUrl(longURL)
  14. %>

적당히 입맛에 맞게 쓰길..

윈도우 환경에서 간단한 백업 스크립트 작성

리눅스 환경이면 간단하게 tar + find 명령어로 해결할 것을...

윈도우즈 서버 사용하는 죄로... 뻘짓을...

진행사항

1. 특정기간이 지난 파일은 삭제.

2. data란 디렉토리엔 상품이미지가 가득하여 데이터로서 백업 가치가 없어서 제외

3. 반디집은 제외 압축이 안되서 실패!

4. 윈도우즈용 tar은 뭔가 명령어가 안된다! (실력 부족일지도..)

5. 그냥 맘 편하게 7zip으로 가즈아~~

6. 작성한 bat는 다음과 같음

  1. REM 1주일 지난 파일은 자동으로 삭제...
  2.  
  3. ForFiles /P D:\workspace\\backup /S /M * /D -7 /C "cmd /c del /Q @file"
  4.  
  5.  
  6.  
  7. CD D:\workspace\압축할경로\www\
  8.  
  9. D:
  10.  
  11. 7z a -t7z D:\workspace\backup\%DATE%.7z D:\workspace\압축할경로\www\ -mx0 -x!www\data\*

7. 주의할게.. 제외 옵션인 -x뒤에 경로가.. 절대경로가 아니라 상대경로임.

8. 그래서 스크립트 안에 보면 디렉토리를 이동해서 가게 했음.

9. 끗! 뭘봐!

BE Band (비밴드) - 2024년 03월 02일 잠실새내 락앤롤욱스 공연

나의 10~20대를 보낸 잠실에서의 공연.. 오랜만에 가보니.. 여기가.. 마눌님과 자주 가던 영화관이었는데... 여긴 뭐가 있었는데... 란 추억도 떠올리며 기분좋게 감.​ 공연장은 좀 협소한 편이었고, 인천의 쥐똥나무 보다는 약간 크고... 인천 ...