ゼロベース入門推奨システム-ニュース推奨-Task 1(DataWhale学習グループ)


ゼロ基礎入門推薦システム-ニュース推薦-Task 1 DataWhale学習グループ
  • 試合問題理解とBaseline
  • Baseline
  • 新知識点

  • 試合問題の理解とBaseline
    Datawhaleが天池で開催したゼロベース入門試合:https://tianchi.aliyun.com/competition/entrance/531842/information
    Baseline
    主にフォーラムが提供するbaselineを通じて初歩的な探索を行った.使用するデータは主にtrain_click_log(ニュースの内容を考慮していないarticles_emb)、使用するアルゴリズムはitemCF(商品の協同フィルタリングに基づく)
    新しい知識ポイント
  • forループの進捗バーは
  • を表示します.
    from tqdm import tqdm
    for i in tqdm(range(n)):
    
  • 比較的大きなデータセットに対する処理tips:
  • 変数タイプを変更してメモリを節約する
  • 訓練セットからデータの一部を切り出してコード
  • をデバッグする
  • 必要な一時データをpickleファイルとして格納し、
  • のインポートとエクスポートを容易にする.
  • itemCFの原理:ユーザのクリック日記に基づいて類似行列を生成し,類似行列を用いて新しい文章の推薦を行う.
  • itemの類似度計算:
  • ユーザーが閲覧するitemの数を考慮する
  • itemが閲覧する数を考慮する
  • DataFrameおよび辞書におけるデータ処理方法
  • パケット化後applyを使用して各グループの最値を問合せ、assertの使用
  • tmp = recall_df.groupby('user_id').apply(lambda x: x['rank'].max()) assert tmp.min() >= topk
    
  • データボックス再構成
  • submit = recall_df[recall_df['rank'] <= topk].set_index(['user_id', 'rank']).unstack(-1).reset_index()
    
    submit.columns = [int(col) if isinstance(col, int) else col for col in submit.columns.droplevel(0)]
    
  • 辞書並べ替えtopk値
  • item_rank = sorted(item_rank.items(), key=lambda x: x[1], reverse=True)[:recall_item_num]
    
  • その他:天池実験室のnotebookの使用