Amazon Recommendation 기능은 어떻게 작동합니까?
Amazon 추천 기술의 화면 뒤에 어떤 기술이 적용됩니까? Amazon 권장 사항이 현재 시장에서 최고라고 생각하지만 이러한 권장 사항을 어떻게 제공합니까?
최근 우리는 비슷한 종류의 추천 프로젝트에 참여했지만 기술적 인 관점에서 아마존 추천 기술의 입 / 출력에 대해 알고 싶습니다.
모든 의견을 높이 평가합니다.
최신 정보:
이 특허 는 개인화 된 권장 사항이 수행되는 방법을 설명하지만 그다지 기술적이지 않으므로 통찰력을 제공 할 수 있다면 정말 좋을 것입니다.
Affinity Analysis 는 Dave의 의견으로부터 이러한 종류의 권장 사항 엔진의 기초를 형성합니다. 또한 여기 주제에 대한 좋은 읽을 거리가 있습니다
추천 독서 :
예술이자 과학입니다. 일반적인 연구 분야는 데이터 마이닝 분야의 하위 집합 인 시장 바구니 분석 (호환성 분석이라고도 함)을 중심으로 진행됩니다. 이러한 시스템의 일반적인 구성 요소에는 기본 드라이버 항목 식별 및 선호도 항목 식별 (액세서리 상향 판매, 교차 판매)이 포함됩니다.
그들이 채굴해야 할 데이터 소스를 명심하십시오.
- 구매 한 쇼핑 카트 = 실제 항목에서 소비 한 실제 사람들의 실제 돈 = 강력한 데이터 및 많은 것.
- 장바구니에 상품을 추가했지만 버렸습니다.
- 다른 가격으로 동일한 제품을 제공하고 결과를 볼 수있는 온라인 가격 책정 실험 (A / B 테스트 등)
- 다른 "번들"로 다양한 제품을 제공하거나 다양한 품목 쌍을 할인하는 포장 실험 (A / B 테스트 등)
- 위시리스트-귀하를 위해 특별히 마련된 사항-종합적으로 바스켓 분석 데이터의 다른 스트림과 유사하게 처리 할 수 있습니다.
- 추천 사이트 (귀하가 어디에서 왔는지 식별하면 다른 관심 항목을 암시 할 수 있음)
- 체류 시간 (뒤로 클릭하여 다른 항목을 선택하기까지의 시간)
- 귀하 또는 귀하의 소셜 네트워크 / 구매 서클에있는 평가
- 인구 통계 정보 (배송 주소 등)-자녀, 본인, 배우자 등 일반 지역에서 인기있는 사항을 알고 있습니다.
- 사용자 세분화 = 유아를 위해 별도의 달에 3 권의 책을 구매 했습니까? 아이 등이있을 수 있습니다.
- 직접 마케팅 클릭 연결 데이터-이메일을 받고 클릭 연결 했습니까? 그들은 어떤 이메일인지, 어떤 이메일을 클릭했는지, 그 결과 이메일을 샀는지 여부를 알고 있습니다.
- 세션에서 클릭 경로-장바구니에 넣었는지 여부에 관계없이 무엇을 보았습니까?
- 최종 구매 전에 상품을 본 횟수
- 벽돌 및 박격포 상점을 취급하는 경우 실제 구매 내역이 없어 질 수도 있습니다 (예 : 장난감 또는 온라인 상점 및 실제 상점).
- 등
운 좋게도 사람들은 총체적으로 유사하게 행동하기 때문에 구매 인구에 대해 더 많이 알수록 판매 할 것과 팔지 않을 것을 더 잘 알 수 있으며, 모든 거래와 모든 평가 / 소유자 목록에 따라 개인적으로 권장 사항을 조정하는 방법을 알고 있습니다. 이것은 권장 사항 등으로 인한 영향의 전체 집합에 대한 작은 샘플 일뿐입니다.
이제는 Amazon에서 비즈니스를 수행하는 방법에 대한 내부 지식이 없으며 온라인 상거래 문제에 대한 고전적인 접근 방식에 대해 이야기하고 있습니다. 전 Microsoft의 데이터 마이닝 및 분석 작업을 수행 한 PM이었습니다. Commerce Server라는 제품. 우리는 사람들이 비슷한 기능을 가진 사이트를 구축 할 수있게 해주는 도구를 Commerce Server에 제공했습니다. 그러나 판매량이 클수록 데이터가 더 좋고 모델이 더 좋으며 Amazon은 BIG입니다. 상거래 중심 사이트에서 많은 양의 데이터가있는 모델을 사용하는 것이 얼마나 재미 있는지 상상할 수 있습니다. 이제 커머스 서버에서 시작된 예측 변수와 같은 많은 알고리즘이 Microsoft SQL 내에서 직접 실행되었습니다 .
네 가지 중요한 조치는 다음과 같습니다.
- 아마존 (또는 모든 소매점)은 수많은 거래와 수많은 사람들에 대한 집계 데이터를 검토하고 있습니다.이를 통해 사이트의 익명 사용자에게도 아주 잘 추천 할 수 있습니다.
- 아마존 (또는 모든 정교한 소매 업체)은 로그인 한 사람의 행동과 구매를 추적하고이를 사용하여 대량의 집계 데이터를 더욱 세분화합니다.
- 축적 된 데이터를 극복하고 특정 라인 ( '디지털 카메라'카테고리를 소유 한 사람이나 '로맨틱 소설'카테고리를 수직으로 소유 한 사람과 같은)의 제품 관리자를 위해 제안을 "편집"제어하는 방법이 종종 있습니다. 전문가입니다
- 종종 프로모션 거래 (예 : 소니, 파나소닉 또는 니콘 또는 캐논 또는 스프린트 또는 버라이존이 소매점에 추가로 돈을 지불하거나 해당 라인의 대량 또는 다른 것들에 대해 더 나은 할인 혜택을 제공함)가있어 특정 "제안"이 다른 거래보다 더 자주-거래마다 더 많은 것을 만들거나 도매 비용을 줄이는 것을 목표로 한 합리적인 비즈니스 논리와 비즈니스 이유가 항상 있습니다.
실제 구현 측면에서? 거의 모든 대형 온라인 시스템은 몇 가지 파이프 라인 세트 (또는 필터 패턴 구현 또는 워크 플로우 등)로 구성되어 일련의 모듈을 적용하여 일련의 모듈에 의해 컨텍스트를 평가할 수 있습니다. 비즈니스 로직.
일반적으로 다른 파이프 라인이 페이지의 각 개별 작업과 연결됩니다. "패키지 / 업셀"을 권장하는 (예 :보고있는 항목과 함께 구매) 및 "대체"를 수행하는 (예 : 구매) 이것은 당신이보고있는 것 대신에) 그리고 다른 하나는 제품 목록 또는 유사 항목으로 위시리스트에서 가장 밀접하게 관련된 항목을 가져옵니다.
이 파이프 라인의 결과는 페이지의 여러 부분 (스크롤 막대 위, 스크롤 아래, 왼쪽, 오른쪽, 다른 글꼴, 다른 크기 이미지 등)에 배치 할 수 있으며 테스트 한 결과를 확인합니다. 베스트. 이러한 파이프 라인에 대한 비즈니스 로직을 정의하는 편리한 플러그 앤 플레이 모듈을 사용하기 때문에 다른 파이프 라인을 구축 할 때 적용하려는 비즈니스 로직에서 쉽게 선택하고 선택할 수있는 레고 블록과 동일한 도덕적 블록을 얻게됩니다. 더 빠른 혁신, 더 많은 실험, 더 높은 수익을 얻을 수 있습니다.
그게 전혀 도움이 되었습니까? 아마존뿐만 아니라 거의 모든 전자 상거래 사이트에서 이것이 어떻게 작동하는지 통찰력을 얻을 수 있기를 바랍니다. 아마존 (그곳에서 일한 친구들과 대화하기)은 매우 데이터 중심이며 사용자 경험의 효과와 가격, 판촉, 패키징 등의 효과를 지속적으로 측정합니다. 온라인에서 매우 정교한 소매점이며 최첨단에있을 가능성이 높습니다 그들이 이익을 최적화하기 위해 사용하는 많은 알고리즘들-독점적 비밀 일 것입니다 (KFC의 비밀 향신료에 대한 공식과 같습니다).
This isn't directly related to Amazon's recommendation system, but it might be helpful to study the methods used by people who competed in the Netflix Prize, a contest to develop a better recommendation system using Netflix user data. A lot of good information exists in their community about data mining techniques in general.
The team that won used a blend of the recommendations generated by a lot of different models/techniques. I know that some of the main methods used were principal component analysis, nearest neighbor methods, and neural networks. Here are some papers by the winning team:
R. Bell, Y. Koren, C. Volinsky, "The BellKor 2008 Solution to the Netflix Prize", (2008).
A. Töscher, M. Jahrer, “The BigChaos Solution to the Netflix Prize 2008", (2008).
A. Töscher, M. Jahrer, R. Legenstein, "Improved Neighborhood-Based Algorithms for Large-Scale Recommender Systems", SIGKDD Workshop on Large-Scale Recommender Systems and the Netflix Prize Competition (KDD’08) , ACM Press (2008).
Y. Koren, "The BellKor Solution to the Netflix Grand Prize", (2009).
A. Töscher, M. Jahrer, R. Bell, "The BigChaos Solution to the Netflix Grand Prize", (2009).
M. Piotte, M. Chabbert, "The Pragmatic Theory solution to the Netflix Grand Prize", (2009).
The 2008 papers are from the first year's Progress Prize. I recommend reading the earlier ones first because the later ones build upon the previous work.
I bumped on this paper today:
Maybe it provides additional information.
(Disclamer: I used to work at Amazon, though I didn't work on the recommendations team.)
ewernli's answer should be the correct one -- the paper links to Amazon's original recommendation system, and from what I can tell (both from personal experience as an Amazon shopper and having worked on similar systems at other companies), very little has changed: at its core, Amazon's recommendation feature is still very heavily based on item-to-item collaborative filtering.
Just look at what form the recommendations take: on my front page, they're all either of the form "You viewed X...Customers who also viewed this also viewed...", or else a melange of items similar to things I've bought or viewed before. If I specifically go to my "Recommended for You" page, every item describes why it's recommended for me: "Recommended because you purchased...", "Recommended because you added X to your wishlist...", etc. This is a classic sign of item-to-item collaborative filtering.
So how does item-to-item collaborative filtering work? Basically, for each item, you build a "neighborhood" of related items (e.g., by looking at what items people have viewed together or what items people have bought together -- to determine similarity, you can use metrics like the Jaccard index; correlation is another possibility, though I suspect Amazon doesn't use ratings data very heavily). Then, whenever I view an item X or make a purchase Y, Amazon suggests me things in the same neighborhood as X or Y.
Some other approaches that Amazon could potentially use, but likely doesn't, are described here: http://blog.echen.me/2011/02/15/an-overview-of-item-to-item-collaborative-filtering-with-amazons-recommendation-system/
A lot of what Dave describes is almost certainly not done at Amazon. (Ratings by those in my social network? Nope, Amazon doesn't have any of my social data. This would be a massive privacy issue in any case, so it'd be tricky for Amazon to do even if they had that data: people don't want their friends to know what books or movies they're buying. Demographic information? Nope, nothing in the recommendations suggests they're looking at this. [Unlike Netflix, who does surface what other people in my area are watching.])
I don't have any knowledge of Amazon's algorithm specifically, but one component of such an algorithm would probably involve tracking groups of items frequently ordered together, and then using that data to recommend other items in the group when a customer purchases some subset of the group.
Another possibility would be to track the frequency of item B being ordered within N days after ordering item A, which could suggest a correlation.
As far I know, it's use Case-Based Reasoning as an engine for it.
You can see in this sources: here, here and here.
There are many sources in google searching for amazon and case-based reasoning.
Someone did a presentation at our University on something similar last week, and referenced the Amazon recommendation system. I believe that it uses a form of K-Means Clustering to cluster people into their different buying habits. Hope this helps :)
Check this out too: http://www.almaden.ibm.com/cs/people/dmodha/ml02.ps and as HTML.
If you want a hands-on tutorial (using open-source R) then you could do worse than going through this: https://gist.github.com/yoshiki146/31d4a46c3d8e906c3cd24f425568d34e
It is a run-time optimised version of another piece of work: http://www.salemmarafi.com/code/collaborative-filtering-r/
However, the variation of the code on the first link runs MUCH faster so I recommend using that (I found the only slow part of yoshiki146's code is the final routine which generates the recommendation at user level - it took about an hour with my data on my machine).
I adapted this code to work as a recommendation engine for the retailer I work for.
The algorithm used is - as others have said above - collaborative filtering. This method of CF calculates a cosine similarity matrix and then sorts by that similarity to find the 'nearest neighbour' for each element (music band in the example given, retail product in my application).
The resulting table can recommend a band/product based on another chosen band/product.
The next section of the code goes a step further with USER (or customer) based collaborative filtering.
The output of this is a large table with the top 100 bands/products recommended for a given user/customer
참고URL : https://stackoverflow.com/questions/2323768/how-does-the-amazon-recommendation-feature-work
'IT' 카테고리의 다른 글
GitHub에서 닫힌 끌어 오기 요청 삭제 (0) | 2020.06.19 |
---|---|
Android 게임이 계속 해킹 당함 (0) | 2020.06.19 |
JavaScript에서 define ([, function])이란 무엇입니까? (0) | 2020.06.19 |
C #에서 양수를 음수로 변환 (0) | 2020.06.18 |
GHC-mod는 타입에 전체 이름을 사용해야합니까? (0) | 2020.06.18 |