51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

电商场景中,用户行为数据(浏览、购买、评论)和商品数据(SKU、属性、价格)多源异构,如何进行数据清洗、特征工程,为模型训练提供高质量数据?请说明数据整合流程和关键步骤。

淘天集团大语言模型难度:中等

答案

1) 【一句话结论】
电商多源异构数据需分阶段处理,通过差异化清洗(如用户行为时间序列去重、商品属性标准化)与特征工程(如卡方检验或模型重要性选择),构建高质量特征集,核心是标准化数据格式并挖掘多源关联性。

2) 【原理/概念讲解】
多源异构数据指用户行为(浏览、购买、评论,时间序列、文本)与商品属性(SKU、属性、价格,结构化但属性维度多)等数据源在格式、结构、粒度上差异大。数据清洗是预处理环节,处理缺失、异常、重复,确保数据质量;特征工程是从原始数据中提取对模型有用的特征,如聚合用户行为、衍生商品属性特征。类比:数据清洗像给数据“体检”,去除杂质;特征工程像“信息提炼”,聚焦有用信息。

3) 【对比与适用场景】

  • 数据清洗差异:
    数据源定义关键步骤注意点
    用户行为数据用户交互行为(浏览、购买、评论)时间窗口去重(1天内重复行为过滤)、文本去重(TF-IDF相似度>0.9合并评论)、缺失值填充(如评论用“无内容”填充)需考虑时间序列特性,避免过度去重导致信息丢失
    商品属性数据商品结构化属性(SKU、价格、属性)属性值标准化(如颜色“red”统一为“红色”、价格单位统一为元)、异常值过滤(如负价格、价格极值)、缺失值处理(如属性值用常见值填充)需保证属性一致性,避免业务逻辑冲突
  • 特征工程方法:
    方法定义使用场景注意点
    卡方检验筛选与目标变量(如购买)高相关的特征离散特征与分类目标变量避免多重共线性,选择p值低的特征
    信息增益衡量特征对目标变量的信息量分类问题(如用户是否购买)结合业务逻辑,优先选择高增益特征
    模型重要性排序基于训练后模型(如XGBoost)的特征重要性任意模型,尤其是树模型需验证特征有效性,避免过拟合

4) 【示例】
伪代码(Python):

# 1. 用户行为数据清洗(含评论去重)
def clean_user_behavior(df):
    # 时间窗口去重(1天内重复行为)
    df = df.sort_values('date').drop_duplicates(subset=['user_id', 'sku_id'], keep='first')
    # 文本去重(评论相似度>0.9合并)
    from sklearn.feature_extraction.text import TfidfVectorizer
    vectorizer = TfidfVectorizer()
    tfidf_matrix = vectorizer.fit_transform(df['comment'].fillna(''))
    from sklearn.metrics.pairwise import cosine_similarity
    similarity = cosine_similarity(tfidf_matrix)
    # 合并重复评论(保留一条,合并内容)
    for i in range(len(similarity)):
        for j in range(i+1, len(similarity)):
            if similarity[i][j] > 0.9:
                df.loc[df.index[j], 'comment'] = df.loc[df.index[i], 'comment'] + ' ' + df.loc[df.index[j], 'comment']
    # 缺失值填充
    df['comment'] = df['comment'].fillna('无评论')
    df['purchase_amount'] = df['purchase_amount'].fillna(df['purchase_amount'].median())
    return df

# 2. 商品属性数据清洗(属性标准化)
def clean_product_sku(df):
    # 属性值标准化(颜色)
    df['color'] = df['color'].replace({'red': '红色', 'blue': '蓝色', 'green': '绿色'})
    # 价格单位统一(假设原数据有美元)
    df['price'] = df['price'].replace({'$99': 99, '$199': 199})
    # 异常值过滤(价格>1000或<1)
    df = df[(df['price'] > 1) & (df['price'] < 1000)]
    return df

# 3. 数据整合(关联用户行为与商品属性)
def integrate_data(user_clean, product_clean):
    merged = pd.merge(user_clean, product_clean, on='sku_id', how='left')
    merged['price'] = merged['price'].fillna(merged['price'].mean())
    return merged

# 4. 特征工程(用户行为聚合)
def feature_engineer(user_integrated):
    user_features = user_integrated.groupby('user_id')['browse_count'].sum().reset_index()
    user_features['active_days'] = (user_integrated.groupby('user_id')['date'].max() - user_integrated.groupby('user_id')['date'].min()).dt.days
    user_features['avg_price'] = user_integrated.groupby('user_id')['price'].mean()
    # 筛选高相关特征(假设用卡方检验)
    from sklearn.feature_selection import SelectKBest, chi2
    X = user_features[['browse_count', 'active_days', 'avg_price']]
    y = user_integrated.groupby('user_id')['purchase_amount'].sum() > 0  # 是否购买
    selector = SelectKBest(chi2, k=2)
    X_selected = selector.fit_transform(X, y)
    # 提取重要特征
    selected_features = X.columns[selector.get_support()]
    return user_features[selected_features]

5) 【面试口播版答案】
“面试官您好,针对淘天集团电商场景的多源异构数据问题,我的处理思路是分三步:首先做差异化数据清洗,比如用户行为数据要处理时间窗口去重(1天内重复浏览过滤),评论通过TF-IDF相似度>0.9合并重复内容;商品属性数据则做属性标准化(颜色统一为中文、价格单位统一为元),过滤异常值。接着整合数据,通过商品ID关联用户行为与商品属性,构建用户-商品-属性关联表。然后做特征工程,比如聚合用户对某类商品的浏览次数,用卡方检验筛选与购买行为高相关的特征(如活跃天数、平均价格),最终为模型提供高质量特征。核心是针对不同数据源做定制化清洗,并有效提取业务相关的特征。”

6) 【追问清单】

  • 问题1:如何处理用户评论中的重复内容?
    回答要点:通过TF-IDF计算评论文本的余弦相似度,相似度>0.9则合并为一条评论,保留一条并合并内容。
  • 问题2:特征工程中如何选择特征?
    回答要点:结合业务逻辑(如用户活跃度、商品价格)和模型效果(如卡方检验或XGBoost特征重要性排序),选择与目标变量(如购买)高相关的特征。
  • 问题3:多源数据整合时如何保证数据一致性?
    回答要点:通过主键(如商品SKU ID)关联,统一时间戳格式(如转换为Unix时间戳),并验证合并后数据的完整性(如检查缺失值比例)。
  • 问题4:处理大规模数据时,数据清洗和特征工程如何优化?
    回答要点:使用分布式计算框架(如Spark)处理数据清洗,采用增量处理(如只处理新数据或变化数据),特征工程用在线学习模型(如FTRL)实时更新特征。

7) 【常见坑/雷区】

  • 坑1:忽略用户行为数据的时间序列特性,直接全局去重,导致用户近期行为信息丢失,影响模型对用户兴趣的捕捉。
  • 坑2:特征工程过度复杂,引入噪声特征(如用户ID、商品ID等无关主键),反而降低模型性能。
  • 坑3:商品属性数据未做属性值标准化,导致“红色”和“red”被视为不同属性,影响特征表示的一致性。
  • 坑4:未验证数据清洗和特征工程的效果,比如缺失值填充后数据分布是否合理,导致模型训练偏差。
  • 坑5:数据整合时未处理时间维度不一致(如用户行为数据是实时数据,商品属性数据是静态数据),导致特征时间错配,影响模型预测准确性。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1