권장 알고리즘 아키텍처 7: 특성 추출(면접관을 때리세요, 역사상 가장 포괄적입니다!)

시리즈 기사, 더 많은 관심을 가져주세요

추천 알고리즘 아키텍처 1: 재현

권장 알고리즘 아키텍처 2: 대략적인 정렬

권장 알고리즘 아키텍처 3: 세부 순위

권장 알고리즘 아키텍처 4: 재배치

권장 알고리즘 아키텍처 5: 전체 링크 특수 최적화

권장 알고리즘 아키텍처 6: 데이터 샘플

권장 알고리즘 아키텍처 7: 특성 추출

1. 개요

Feature Engineering [1](Feature Engineering)은 추천 알고리즘의 기본으로 수집된 원시 데이터를 분석하고 변환하여 모델이 요구하는 정보를 추출하는 것입니다. 풍부하고 고품질의 특징을 채굴하고 이를 적절하게 처리함으로써 모델 예측의 정확성을 향상시킬 수 있으며, 이를 통해 추천 시스템의 비즈니스 효율성이 향상됩니다. 기능 엔지니어링은 숙달되어야 하는 기술입니다.

이 기사에서는 먼저 기능 카테고리 시스템을 설명하고 추천 시스템에서 일반적으로 발견되는 기능이 무엇인지 분석합니다. 그런 다음 특성 처리 패러다임과 특성에 대한 이산화, 정규화, 풀링 및 결측값 채우기를 수행하는 방법을 설명합니다. 마지막으로, 특징 해석성을 향상시키고, 선별하고, 더 높은 품질의 특징을 추출하기 위해 특징 중요도 평가를 설명합니다. 기능 엔지니어링의 기술 아키텍처는 그림 1에 나와 있습니다.

그림 1 기능 엔지니어링 기술 아키텍처

2 기능 카테고리 시스템

기능 카테고리 시스템을 마스터하면 기능의 풍부함을 향상하고 기능 엔지니어링 시스템을 개선하는 데 도움이 됩니다. 특정 비즈니스 시나리오에서는 자신을 실제 사용자로 상상하고 어떤 기능이 사용자 클릭 및 전환에 더 큰 영향을 미치는지 생각해 볼 수 있습니다. 딥러닝은 기능을 자동으로 교차하는 기능을 제공하고 도메인 지식에 대한 요구 사항을 줄여주지만 비즈니스 이해 기능을 강화할 필요가 없다는 의미는 아닙니다.

일반적으로 말하면 주로 컨텍스트 기능 , 사용자 기능항목 기능의 세 가지 범주가 포함됩니다. 환경 기능을 얻으려면 일반적으로 사용자 인증이 필요합니다. 다양한 비즈니스 시나리오에 필요한 환경 기능은 다르며 다음과 같이 열거할 수 있습니다.

  1. 요청시간 : 예를 들어 요청이 발생한 요일, 공휴일인지, 몇시에 발생하는지, 현재 시즌 등.

  2. 지리적 위치: 현재 사용자가 위치한 국가, 지방, 도시, 지역 날씨, 기온 등

  3. 기기 정보: 휴대폰 모델, 휴대폰 제조사, 운영체제(Android/IOS) 등

  4. 네트워크 정보: 통신사 채널, 네트워크 유형(WIFI/5G/4G) 등

  5. 클라이언트 정보: 요청 채널(APP/미니 프로그램/H5/PC 등), 앱 버전 번호 등

  6. 추천 시나리오: 홈페이지 추천, 관련 추천, 상세 페이지 추천 등

사용자 특성은 일반적으로 사용자 초상화라고도 하며 주로 사용자 정적 특성, 통계적 특성 및 행동 순서 특성의 세 가지 범주를 포함하며 일반적으로 획득하고 사용하려면 사용자 승인이 필요합니다. 사용자 특성은 개인화된 배포 능력을 향상시키는 데 도움이 되며 다음과 같이 열거할 수 있습니다.

  1. 정적 기능 : 사용자 ID, 성별, 나이, 등록 도시, 직업, 등록 시간, VIP 여부, 신규 사용자인지, 결혼 여부, 자녀 유무 등 정적 특징은 일반적으로 매우 차별적이며 추천 시스템에서 강력한 신호입니다. 예를 들어, 성별과 연령이 다른 사용자는 관심분야가 매우 다릅니다. 자녀 유무는 사용자가 임산부 및 유아용 제품에 관심이 있는지 여부를 직접적으로 결정합니다. 정적 기능은 일반적으로 거의 변경되지 않고 광범위한 애플리케이션을 가지며 다양한 비즈니스 시나리오에 적용될 수 있습니다. 어려운 점은 수집이 어렵고, 이를 사용하기 위해서는 사용자의 적극적인 제공과 승인이 필요하다는 점입니다. 또한, 이용자의 개인정보가 유출되는 것을 방지하기 위해 일반적으로 암호화된 저장장치가 요구됩니다.

  2. 통계적 특성 : 최근 30일, 14일, 7일 동안 사용자에게 노출된 상품수, 클릭수, 구매수, 클릭률, 전환율 등 통계적 특성에는 절대값과 상대값이 있는데, 절대값은 교통정보를 나타내고, 상대값은 효율성 정보를 나타낸다. 상대값은 신뢰도에 주의해야 합니다. 예를 들어 "2노출, 1클릭"과 "200노출, 100클릭"은 두 가지 기능 집합입니다. 클릭률은 모두 0.5이지만 신뢰 수준은 전자는 분명 불충분하다. 통계적 특징의 대부분은 사후 특징으로 실제 시나리오에서 완벽하게 검증되었으며 모델에 큰 도움이 됩니다. 마지막으로, 통계적 특징은 데이터 교차 문제가 발생하기 쉬우므로 이를 생성할 때 주의해야 합니다. 예를 들어, 일 단위 표본을 구성할 때 해당 날짜의 통계 데이터를 포함하지 않도록 주의하세요.

  3.  행동 순서 특성 : 현재 현재 알고리즘 모델의 효과를 향상시키는 핵심인 사용자 행동 순서 특성에 대한 많은 연구가 진행되고 있습니다. 과거 동작에는 작업을 수행하는 항목의 ID(예: 클릭)뿐만 아니라 카테고리 ID, 브랜드 ID, 판매자 ID와 같은 항목 속성 특성, 그리고 클릭 사이의 시간 간격과 같은 환경적 특성이 포함될 수 있습니다. 역사적 행동과 현재 시간. 시간 창에 따라 세션 수준 동작 시퀀스, 단기 동작 시퀀스 및 장기 동작 시퀀스가 ​​있습니다. 긍정적인 사용자 피드백과 부정적인 사용자 피드백에 따라 클릭, 구매, 수집과 같은 긍정적인 피드백 시퀀스와 클릭 없이 노출되는 부정적인 피드백 시퀀스가 ​​있습니다. 포괄적이고 풍부한 사용자 행동 시퀀스를 구축하면 사용자 관심 사항을 완전히 탐색하고 모델 효과와 사용자 경험을 개선하는 데 도움이 될 수 있습니다.

품목 특성은 크게 품목의 정적 특성, 통계적 특성, 교차 특성의 세 가지 범주로 구성됩니다. 아이템은 이러한 행동을 권장하는 개체이며, 아이템의 특성을 충분히 탐색하면 사용자가 좋아하는 고품질 아이템을 선택하는 데 도움이 됩니다. 품목 특성은 다음과 같이 열거할 수 있습니다.

  1. 정적 기능 : 항목 ID, 카테고리 ID, 브랜드 ID, 판매자 ID, 가격, 제목, 판매 기간 등 전자상거래 시나리오, 짧은 비디오 시나리오 등 다양한 시나리오에는 일정한 차이가 있습니다. 이러한 기능은 기계 인식, 운영 주석, 판매자(또는 작성자) 입력 등을 통해 생성될 수 있습니다.

  2. 통계적 특성 : 최근 30일, 14일, 7일 동안의 상품 노출수, 클릭수, 구매수, 클릭률, 전환율 등. 통계적 특징은 아이템의 인기도, 품질, 전환 효율 등의 정보를 나타낼 수 있으며 중요성이 높습니다. 기간에 따라 최근 30일, 최근 14일, 최근 7일, 최근 3일 등의 구축 방법이 있습니다. 통계객체로 나누어 노출수, 클릭수, 구매수 등의 절대값과 클릭률, 전환율 등의 상대값이 있습니다. 통계적 세분성에 따라 상품 자체의 데이터뿐만 아니라 상품 판매자, 해당 카테고리, 해당 브랜드의 데이터까지 집계될 수 있습니다. 통계적 시나리오에 따라 분류되어 추천, 검색, 운영 활동, 전체 사이트 등 여러 시나리오를 별도로 집계할 수 있습니다. 사용자 측과 마찬가지로 아이템의 통계적 특성 역시 데이터 교차 문제에 주의해야 한다.

  3. 교차 특성 : 성별, 연령별 사용자에 대한 아이템의 통계적 특성 등 아이템과 사용자 간의 교차 특성입니다. 다양한 그룹의 사람들 사이에서 항목의 흐름과 효율성 성능을 탐색하고 "심슨의 역설" 문제를 완화하여 개인화된 배포를 보다 정확하게 만드는 데 도움이 됩니다. 심층 모델은 자동 기능 교차를 달성할 수 있지만 교차가 반드시 충분하지는 않습니다. 또한 교차 특징은 강력한 신호 특징으로, 모델의 학습 난이도를 줄여 더 많은 학습이 필요한 다른 영역에 에너지를 소비할 수 있습니다. 따라서 주요 교차점 특징을 수동으로 구성하는 것은 여전히 ​​​​큰 의미를 갖습니다. 일반적으로 사용자 특성과 아이템 특성의 교차점은 사용자 특성이나 아이템 특성의 교차점보다 더 중요합니다.

3 특징 처리 패러다임

원본 특성을 수집한 후 모델에 입력하기 전에 이산화, 정규화, 풀링, 결측값 채우기 등의 추가 처리가 필요합니다. 특성 처리는 모델 학습을 더욱 효율적이고 강력하게 만드는 데 도움이 되므로 매우 중요합니다. 다양한 유형의 기능에 대해 다양한 처리 방법이 있습니다. 기능 유형에는 주로 이산형, 연속형 및 다중 값 기능의 세 가지 범주가 포함됩니다.

개별 기능은 일반적으로 항목 ID, 카테고리 ID, 브랜드 ID 등과 같은 카테고리 기능이라고도 합니다. 카테고리 특성에는 열거 값이 많고 차별성이 높으며 이는 추천 시스템의 강력한 신호입니다. 게다가 대부분이 정적 특성이어서 사후 데이터가 필요하지 않으며 콜드 스타트 ​​효과도 좋습니다. 이산 피쳐에는 주로 다음과 같은 처리 방법이 있습니다.

  1. 원-핫 인코딩 : 각 카테고리는 바이너리 벡터이고, 벡터의 각 차원은 카테고리 값을 나타내며, 한 차원만 1의 값을 갖고 나머지는 0입니다. 원-핫 코딩은 간단하고 사용하기 쉬우며 머신러닝에서 자주 사용되는 코딩 방법입니다. 그러나 기능 범주 값이 많으면 "차원성의 저주" 문제가 발생합니다.

  2. 해시 코딩 : 해시 함수를 사용하여 원래 값의 차원을 변환하고 축소합니다. 강력한 압축 능력을 갖고 있어 카테고리 값이 많은 기능에 특히 적합합니다. 동시에 계산 속도는 매우 빠르며 추가 오버헤드도 적습니다. 그러나 서로 다른 원래 값이 동일한 값으로 해싱될 확률이 있으며, 해시 충돌 문제가 발생하여 알고리즘의 정확성에 영향을 미칠 수 있습니다. 또한, 해시 인코딩은 원래 값을 식별하기 어렵게 만들고 해석 가능성을 저하시킵니다.

사용자 측, 아이템 측의 다양한 통계적 특징 등 지속적인 특징 . 사용자 활동, 아이템 품질, 아이템 전환 효율 등의 정보를 효과적으로 표현할 수 있어 매우 중요합니다. 또한, 많은 연속 특징은 사후 특징이기도 하며, 이는 다수의 실제 사용자에 의해 테스트되었으며 모델 예측의 정확도를 향상시킬 수 있습니다. 연속 기능에는 주로 다음과 같은 처리 방법이 있습니다.

  1. 원래 값 유지 : 연속 특성을 범주형 특성의 Embedding 인코딩 벡터와 직접 연결한 다음 모델에 입력할 수 있습니다. DeepCrossing[2]과 같은 초기 심층 모델은 일반적으로 이 솔루션을 채택합니다. 조작이 간단하고 구현하기 쉽지만 일반화 능력이 부족하고 이상값의 영향을 받기 쉽습니다.

  2. 버킷 이산화 : 현재 일반적으로 사용되는 방법은 미리 정의된 버킷 경계값을 사용하여 연속된 값을 해당 버킷으로 분류하는 것입니다. 이 방법은 모델의 일반화 능력을 향상시키고, 과적합 문제를 줄이는 데 유용하며, 이상값에 민감하지 않아 널리 사용됩니다. 등간격 버킷팅, 동일 주파수 버킷팅 등 구체적인 구현 방법이 많이 있는데, 일반적으로 양성 샘플을 동일 주파수 버킷팅하는 것이 효과가 더 좋습니다. 버킷팅 방식의 단점은 버킷 경계 근처에 위치한 값들이 차이가 작더라도 서로 다른 버킷으로 분류될 수 있다는 점이다. 마지막으로 버킷팅 방식에서는 각 버킷에 충분한 샘플이 있는지 확인하고 샘플이 개별 버킷에 집중되지 않도록 주의해야 합니다.

  3. 정규화 : 최대값과 최소값 정규화, 로그함수 변환, 간격 스케일링 방법 등 다양한 방법이 있습니다. 정규화는 개별 기능의 지배력을 줄이고 모델 학습을 더욱 원활하게 하며 수렴 속도를 높이는 데 도움이 될 수 있습니다.

다중 값 기능 , 가장 일반적인 기능은 사용자 행동 순서뿐 아니라 사용자 태그, 항목 태그, 항목 제목과 같은 기능입니다. 추천 시스템에서 대부분의 기능은 사용자 성별 및 연령과 같은 단일 값입니다. 그러나 일부 기능은 배열과 같은 다중 값 형식입니다. 예를 들어 항목 제목은 여러 단어로 구성되고 사용자 행동 시퀀스는 여러 역사적 행동으로 구성됩니다. 다중값 특성의 배열 길이는 고정되어 있지 않으며 모델에 직접 입력할 수 없으므로 고정 길이로 변환해야 합니다. 주요 방법은 다음과 같습니다.

  1. 풀링(Pooling) : 최대풀링, 합계풀링, 평균풀링 등의 방법. 먼저, 개별 특징 또는 연속 특징의 처리 방법을 사용하여 다중 값 특징의 각 특징 값을 변환하고 Embedding 인코딩을 수행합니다. 그런 다음 최대화, 합산 또는 평균화되어 단일 값 임베딩 벡터로 압축됩니다. 이 방법은 상대적으로 간단하고 계산 시간이 많이 소요되지만 다양한 특성 값 간의 중요도 차이를 고려하지 않습니다. 이 문제를 해결하기 위해 Attention[3] 풀링이 제안되었습니다. 먼저 각 특성 값의 가중치를 계산한 다음 가중치 합계를 더합니다. 현재 항목 제목과 같은 일반적인 다중 값 기능은 평균 풀링을 사용하는 경우가 많지만 사용자 행동 시퀀스는 주의 풀링을 사용할 수 있습니다.

  2. 시퀀스 모델링 : 사용자 행동 시퀀스 특성을 처리하는 데 일반적으로 사용됩니다. LSTM[4]이나 GRU[5]와 같은 순환 신경망이나 Transformer[6] 네트워크를 사용하여 정보를 추출하고 원래 가변 길이의 시퀀스를 고정 길이 벡터로 변환한 후 상위 계층에 입력합니다. 모델의 네트워크. Transformer는 강력한 표현력과 빠른 병렬 컴퓨팅을 갖추고 있어 행동 시퀀스 모델링의 주류 솔루션이 되었습니다.

기능 엔지니어링에서는 누락된 값과 이상값이 자주 발생합니다. 누락된 값의 경우 평균, 고정 값, 중앙값 또는 가장 가까운 이웃 값을 사용하여 채우거나 채우지 않고 정규 값으로 처리할 수 있습니다. 이상값의 경우 최대값 자르기, 평활화 또는 직접 제거와 같은 작업을 수행할 수 있습니다.

4 기능 중요도 평가

한편으로 기능 중요도 평가는 기능을 선별하고 불필요한 기능을 간소화하여 오프라인 및 온라인 컴퓨팅 및 저장 부담을 줄이는 데 사용할 수 있습니다. 한편, 알고리즘의 해석성을 향상시키고 판매자(또는 창작자)가 효율적으로 운영하는 데 도움을 줄 수 있습니다. 또한 더 중요한 기능의 후속 구성을 용이하게 하기 위해 기능 마이닝에 대한 지침을 찾을 수도 있습니다.

기능 중요도 평가는 오프라인 기능 방법, 오프라인 모델 방법 및 온라인 모델 방법의 세 가지 범주로 나눌 수 있습니다.

오프라인 기능 방법은 평가할 기능과 태그(예: 클릭, 구매) 간의 상관관계를 계산하여 강력한 기능인지 여부를 측정합니다. 계산 방법에는 Pearson 계수, Spearman 계수, 단일 특징 AUC[7] 등이 있습니다. AUC는 일반적으로 모델 순위 능력을 측정하는 데 사용되며 가장 널리 사용됩니다. 오프라인 특징 방법은 모델 훈련이 필요하지 않고 간단하고 사용하기 쉽지만 교차 후 특징의 중요성을 설명할 수 없어 정확도가 높지 않습니다.

오프라인 모델 방법은 평가할 기능을 제거하기 전과 후에 두 모델을 훈련한 다음 AUC, GAUC[8] 및 기타 지표를 비교할 수 있습니다. 기능을 제거한 후 오프라인 색인이 더 많이 떨어질수록 해당 기능의 중요성이 더 커집니다. 오프라인 모델 방법은 평가할 특성이 다른 특성과 교차한 후 평가할 특성의 중요성을 충분히 고려할 수 있으며 정확도가 높습니다.

온라인 모델 방법에서는 기능 제거 전후의 두 가지 모델을 온라인 AB 테스트에 사용합니다. 정확도가 가장 높지만 가격도 가장 비쌉니다. 또한, 실제 교통이 필요하므로 주의해서 운행해야 합니다.

5 참고문헌

[1] Turner, CR, Fuggetta, A., Lavazza, L., Wolf, AL: 기능 엔지니어링의 개념적 기초. 시스템 및 소프트웨어 저널 49(1), 3–15 (1999)

[2] Ying Shan, T Ryan Hoens 등. 2016. 딥 크로싱: 수동으로 제작된 조합 기능이 없는 웹 규모 모델링. 지식 발견 및 데이터 마이닝에 관한 제22차 ACM SIGKDD 국제 컨퍼런스 진행 중. ACM, 255-262.

[3] Dzmitry Bahdanau, 조경현, 요슈아 벤지오. 2015. 정렬 및 번역을 공동으로 학습하여 신경 기계 번역. 제3차 학습 표현에 관한 국제 회의(ICLR'15) 진행 중

[4] Sepp Hochreiter와 Jurgen Schmidhuber. 1997. 장단기 기억. 신경 컴퓨팅. 9, 8 (1997), 1735-1780.

[5] 조경현, Bart van Merrienboer, C¸ aglar Gulc¸ehre, ¨ Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk, Yoshua Bengio. 통계적 기계 번역을 위해 RNN 인코더-디코더를 사용하여 구문 표현을 학습합니다. Proc에서 자연어 처리의 경험적 방법에 관한 컨퍼런스(EMNLP), 2014년.

[6] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser 및 Illia Polosukhin. 2017. 관심만 있으면 됩니다. 신경 정보 처리 시스템의 발전. 5998-6008.

[7] T. Fawcett, ''ROC 분석 소개', 패턴 인식. Lett., vol. 27, 아니. 8, pp. 861–874, 2006년 6월.

[8] Guorui Zhou, Xiaoqiang Zhu, 그 외 여러분. 2018. 클릭률 예측을 위한 심층 관심 네트워크. 지식 발견 및 데이터 마이닝에 관한 제24차 ACM SIGKDD 국제 컨퍼런스 진행 중. ACM, 1059-1068.

시리즈 기사, 더 많은 관심을 가져주세요

추천 알고리즘 아키텍처 1: 재현

권장 알고리즘 아키텍처 2: 대략적인 정렬

권장 알고리즘 아키텍처 3: 세부 순위

권장 알고리즘 아키텍처 4: 재배치

권장 알고리즘 아키텍처 5: 전체 링크 특수 최적화

권장 알고리즘 아키텍처 6: 데이터 샘플

권장 알고리즘 아키텍처 7: 특성 추출

Supongo que te gusta

Origin blog.csdn.net/u013510838/article/details/135123291
Recomendado
Clasificación